x86/paravirt: Remove set_pte_at() pv-op

On x86 set_pte_at() is now always falling back to set_pte(). So instead
of having this fallback after the paravirt maze just drop the
set_pte_at paravirt operation and let set_pte_at() use the set_pte()
function directly.

Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20200815100641.26362-6-jgross@suse.com

authored by Juergen Gross and committed by Ingo Molnar e1ac3e66 76fdb041

+4 -42
+1 -7
arch/x86/include/asm/paravirt.h
··· 412 412 PVOP_VCALL2(mmu.set_pte, ptep, pte.pte); 413 413 } 414 414 415 - static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, 416 - pte_t *ptep, pte_t pte) 417 - { 418 - PVOP_VCALL4(mmu.set_pte_at, mm, addr, ptep, pte.pte); 419 - } 420 - 421 415 static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) 422 416 { 423 417 PVOP_VCALL2(mmu.set_pmd, pmdp, native_pmd_val(pmd)); ··· 504 510 static inline void pte_clear(struct mm_struct *mm, unsigned long addr, 505 511 pte_t *ptep) 506 512 { 507 - set_pte_at(mm, addr, ptep, __pte(0)); 513 + set_pte(ptep, __pte(0)); 508 514 } 509 515 510 516 static inline void pmd_clear(pmd_t *pmdp)
-2
arch/x86/include/asm/paravirt_types.h
··· 242 242 243 243 /* Pagetable manipulation functions */ 244 244 void (*set_pte)(pte_t *ptep, pte_t pteval); 245 - void (*set_pte_at)(struct mm_struct *mm, unsigned long addr, 246 - pte_t *ptep, pte_t pteval); 247 245 void (*set_pmd)(pmd_t *pmdp, pmd_t pmdval); 248 246 249 247 pte_t (*ptep_modify_prot_start)(struct vm_area_struct *vma, unsigned long addr,
+3 -4
arch/x86/include/asm/pgtable.h
··· 63 63 #include <asm/paravirt.h> 64 64 #else /* !CONFIG_PARAVIRT_XXL */ 65 65 #define set_pte(ptep, pte) native_set_pte(ptep, pte) 66 - #define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte) 67 66 68 67 #define set_pte_atomic(ptep, pte) \ 69 68 native_set_pte_atomic(ptep, pte) ··· 1032 1033 return res; 1033 1034 } 1034 1035 1035 - static inline void native_set_pte_at(struct mm_struct *mm, unsigned long addr, 1036 - pte_t *ptep , pte_t pte) 1036 + static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, 1037 + pte_t *ptep, pte_t pte) 1037 1038 { 1038 - native_set_pte(ptep, pte); 1039 + set_pte(ptep, pte); 1039 1040 } 1040 1041 1041 1042 static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr,
-1
arch/x86/kernel/paravirt.c
··· 360 360 .mmu.release_p4d = paravirt_nop, 361 361 362 362 .mmu.set_pte = native_set_pte, 363 - .mmu.set_pte_at = native_set_pte_at, 364 363 .mmu.set_pmd = native_set_pmd, 365 364 366 365 .mmu.ptep_modify_prot_start = __ptep_modify_prot_start,
-8
arch/x86/xen/mmu_pv.c
··· 285 285 __xen_set_pte(ptep, pteval); 286 286 } 287 287 288 - static void xen_set_pte_at(struct mm_struct *mm, unsigned long addr, 289 - pte_t *ptep, pte_t pteval) 290 - { 291 - trace_xen_mmu_set_pte_at(mm, addr, ptep, pteval); 292 - __xen_set_pte(ptep, pteval); 293 - } 294 - 295 288 pte_t xen_ptep_modify_prot_start(struct vm_area_struct *vma, 296 289 unsigned long addr, pte_t *ptep) 297 290 { ··· 2098 2105 .release_pmd = xen_release_pmd_init, 2099 2106 2100 2107 .set_pte = xen_set_pte_init, 2101 - .set_pte_at = xen_set_pte_at, 2102 2108 .set_pmd = xen_set_pmd_hyper, 2103 2109 2104 2110 .ptep_modify_prot_start = __ptep_modify_prot_start,
-20
include/trace/events/xen.h
··· 153 153 154 154 DEFINE_XEN_MMU_SET_PTE(xen_mmu_set_pte); 155 155 156 - TRACE_EVENT(xen_mmu_set_pte_at, 157 - TP_PROTO(struct mm_struct *mm, unsigned long addr, 158 - pte_t *ptep, pte_t pteval), 159 - TP_ARGS(mm, addr, ptep, pteval), 160 - TP_STRUCT__entry( 161 - __field(struct mm_struct *, mm) 162 - __field(unsigned long, addr) 163 - __field(pte_t *, ptep) 164 - __field(pteval_t, pteval) 165 - ), 166 - TP_fast_assign(__entry->mm = mm; 167 - __entry->addr = addr; 168 - __entry->ptep = ptep; 169 - __entry->pteval = pteval.pte), 170 - TP_printk("mm %p addr %lx ptep %p pteval %0*llx (raw %0*llx)", 171 - __entry->mm, __entry->addr, __entry->ptep, 172 - (int)sizeof(pteval_t) * 2, (unsigned long long)pte_val(native_make_pte(__entry->pteval)), 173 - (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval) 174 - ); 175 - 176 156 TRACE_DEFINE_SIZEOF(pmdval_t); 177 157 178 158 TRACE_EVENT(xen_mmu_set_pmd,