Skip to content

Commit 772ca41

Browse files
jgross1bp3tk0v
authored andcommitted
x86/paravirt: Introduce ALT_NOT_XEN
Introduce the macro ALT_NOT_XEN as a short form of ALT_NOT(X86_FEATURE_XENPV). No functional changes. Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/r/20231129133332.31043-2-jgross@suse.com
1 parent fe22bc4 commit 772ca41

2 files changed

Lines changed: 21 additions & 24 deletions

File tree

arch/x86/include/asm/paravirt.h

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@ static inline void write_cr0(unsigned long x)
142142
static __always_inline unsigned long read_cr2(void)
143143
{
144144
return PVOP_ALT_CALLEE0(unsigned long, mmu.read_cr2,
145-
"mov %%cr2, %%rax;",
146-
ALT_NOT(X86_FEATURE_XENPV));
145+
"mov %%cr2, %%rax;", ALT_NOT_XEN);
147146
}
148147

149148
static __always_inline void write_cr2(unsigned long x)
@@ -154,13 +153,12 @@ static __always_inline void write_cr2(unsigned long x)
154153
static inline unsigned long __read_cr3(void)
155154
{
156155
return PVOP_ALT_CALL0(unsigned long, mmu.read_cr3,
157-
"mov %%cr3, %%rax;", ALT_NOT(X86_FEATURE_XENPV));
156+
"mov %%cr3, %%rax;", ALT_NOT_XEN);
158157
}
159158

160159
static inline void write_cr3(unsigned long x)
161160
{
162-
PVOP_ALT_VCALL1(mmu.write_cr3, x,
163-
"mov %%rdi, %%cr3", ALT_NOT(X86_FEATURE_XENPV));
161+
PVOP_ALT_VCALL1(mmu.write_cr3, x, "mov %%rdi, %%cr3", ALT_NOT_XEN);
164162
}
165163

166164
static inline void __write_cr4(unsigned long x)
@@ -182,7 +180,7 @@ extern noinstr void pv_native_wbinvd(void);
182180

183181
static __always_inline void wbinvd(void)
184182
{
185-
PVOP_ALT_VCALL0(cpu.wbinvd, "wbinvd", ALT_NOT(X86_FEATURE_XENPV));
183+
PVOP_ALT_VCALL0(cpu.wbinvd, "wbinvd", ALT_NOT_XEN);
186184
}
187185

188186
static inline u64 paravirt_read_msr(unsigned msr)
@@ -390,27 +388,25 @@ static inline void paravirt_release_p4d(unsigned long pfn)
390388
static inline pte_t __pte(pteval_t val)
391389
{
392390
return (pte_t) { PVOP_ALT_CALLEE1(pteval_t, mmu.make_pte, val,
393-
"mov %%rdi, %%rax",
394-
ALT_NOT(X86_FEATURE_XENPV)) };
391+
"mov %%rdi, %%rax", ALT_NOT_XEN) };
395392
}
396393

397394
static inline pteval_t pte_val(pte_t pte)
398395
{
399396
return PVOP_ALT_CALLEE1(pteval_t, mmu.pte_val, pte.pte,
400-
"mov %%rdi, %%rax", ALT_NOT(X86_FEATURE_XENPV));
397+
"mov %%rdi, %%rax", ALT_NOT_XEN);
401398
}
402399

403400
static inline pgd_t __pgd(pgdval_t val)
404401
{
405402
return (pgd_t) { PVOP_ALT_CALLEE1(pgdval_t, mmu.make_pgd, val,
406-
"mov %%rdi, %%rax",
407-
ALT_NOT(X86_FEATURE_XENPV)) };
403+
"mov %%rdi, %%rax", ALT_NOT_XEN) };
408404
}
409405

410406
static inline pgdval_t pgd_val(pgd_t pgd)
411407
{
412408
return PVOP_ALT_CALLEE1(pgdval_t, mmu.pgd_val, pgd.pgd,
413-
"mov %%rdi, %%rax", ALT_NOT(X86_FEATURE_XENPV));
409+
"mov %%rdi, %%rax", ALT_NOT_XEN);
414410
}
415411

416412
#define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION
@@ -444,14 +440,13 @@ static inline void set_pmd(pmd_t *pmdp, pmd_t pmd)
444440
static inline pmd_t __pmd(pmdval_t val)
445441
{
446442
return (pmd_t) { PVOP_ALT_CALLEE1(pmdval_t, mmu.make_pmd, val,
447-
"mov %%rdi, %%rax",
448-
ALT_NOT(X86_FEATURE_XENPV)) };
443+
"mov %%rdi, %%rax", ALT_NOT_XEN) };
449444
}
450445

451446
static inline pmdval_t pmd_val(pmd_t pmd)
452447
{
453448
return PVOP_ALT_CALLEE1(pmdval_t, mmu.pmd_val, pmd.pmd,
454-
"mov %%rdi, %%rax", ALT_NOT(X86_FEATURE_XENPV));
449+
"mov %%rdi, %%rax", ALT_NOT_XEN);
455450
}
456451

457452
static inline void set_pud(pud_t *pudp, pud_t pud)
@@ -464,15 +459,15 @@ static inline pud_t __pud(pudval_t val)
464459
pudval_t ret;
465460

466461
ret = PVOP_ALT_CALLEE1(pudval_t, mmu.make_pud, val,
467-
"mov %%rdi, %%rax", ALT_NOT(X86_FEATURE_XENPV));
462+
"mov %%rdi, %%rax", ALT_NOT_XEN);
468463

469464
return (pud_t) { ret };
470465
}
471466

472467
static inline pudval_t pud_val(pud_t pud)
473468
{
474469
return PVOP_ALT_CALLEE1(pudval_t, mmu.pud_val, pud.pud,
475-
"mov %%rdi, %%rax", ALT_NOT(X86_FEATURE_XENPV));
470+
"mov %%rdi, %%rax", ALT_NOT_XEN);
476471
}
477472

478473
static inline void pud_clear(pud_t *pudp)
@@ -492,16 +487,15 @@ static inline void set_p4d(p4d_t *p4dp, p4d_t p4d)
492487
static inline p4d_t __p4d(p4dval_t val)
493488
{
494489
p4dval_t ret = PVOP_ALT_CALLEE1(p4dval_t, mmu.make_p4d, val,
495-
"mov %%rdi, %%rax",
496-
ALT_NOT(X86_FEATURE_XENPV));
490+
"mov %%rdi, %%rax", ALT_NOT_XEN);
497491

498492
return (p4d_t) { ret };
499493
}
500494

501495
static inline p4dval_t p4d_val(p4d_t p4d)
502496
{
503497
return PVOP_ALT_CALLEE1(p4dval_t, mmu.p4d_val, p4d.p4d,
504-
"mov %%rdi, %%rax", ALT_NOT(X86_FEATURE_XENPV));
498+
"mov %%rdi, %%rax", ALT_NOT_XEN);
505499
}
506500

507501
static inline void __set_pgd(pgd_t *pgdp, pgd_t pgd)
@@ -687,17 +681,17 @@ bool __raw_callee_save___native_vcpu_is_preempted(long cpu);
687681
static __always_inline unsigned long arch_local_save_flags(void)
688682
{
689683
return PVOP_ALT_CALLEE0(unsigned long, irq.save_fl, "pushf; pop %%rax;",
690-
ALT_NOT(X86_FEATURE_XENPV));
684+
ALT_NOT_XEN);
691685
}
692686

693687
static __always_inline void arch_local_irq_disable(void)
694688
{
695-
PVOP_ALT_VCALLEE0(irq.irq_disable, "cli;", ALT_NOT(X86_FEATURE_XENPV));
689+
PVOP_ALT_VCALLEE0(irq.irq_disable, "cli;", ALT_NOT_XEN);
696690
}
697691

698692
static __always_inline void arch_local_irq_enable(void)
699693
{
700-
PVOP_ALT_VCALLEE0(irq.irq_enable, "sti;", ALT_NOT(X86_FEATURE_XENPV));
694+
PVOP_ALT_VCALLEE0(irq.irq_enable, "sti;", ALT_NOT_XEN);
701695
}
702696

703697
static __always_inline unsigned long arch_local_irq_save(void)
@@ -769,7 +763,7 @@ void native_pv_lock_init(void) __init;
769763
.endm
770764

771765
#define SAVE_FLAGS ALTERNATIVE "PARA_IRQ_save_fl;", "pushf; pop %rax;", \
772-
ALT_NOT(X86_FEATURE_XENPV)
766+
ALT_NOT_XEN
773767
#endif
774768
#endif /* CONFIG_PARAVIRT_XXL */
775769
#endif /* CONFIG_X86_64 */

arch/x86/include/asm/paravirt_types.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,5 +557,8 @@ extern struct paravirt_patch_site __parainstructions[],
557557
__parainstructions_end[];
558558

559559
#endif /* __ASSEMBLY__ */
560+
561+
#define ALT_NOT_XEN ALT_NOT(X86_FEATURE_XENPV)
562+
560563
#endif /* CONFIG_PARAVIRT */
561564
#endif /* _ASM_X86_PARAVIRT_TYPES_H */

0 commit comments

Comments
 (0)