From: Chuck Anderson Date: Mon, 12 Feb 2018 06:27:25 +0000 (-0800) Subject: retpoline/module: add bit defs for use_ibpb X-Git-Tag: v4.1.12-124.31.3~1113 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=8bd019739319bb4ee04d0b16094fb39a97c38bb8;p=users%2Fjedix%2Flinux-maple.git retpoline/module: add bit defs for use_ibpb Replace bit references for IBPB state in use_ibpb with: SPEC_CTRL_IBPB_INUSE SPEC_CTRL_IBPB_SUPPORTED SPEC_CTRL_IBPB_ADMIN_DISABLED Change comment block describing use_ibrs flags to use symbolic values. Remove duplicate comment block describing flag values in use_ibrs and use_ibpb. Cosmetic change to defs for sysctl_ibrs_enabled, sysctl_ibpb_enabled and sysctl_lfence_enabled in preparation for adding additional sysctl_* values. Orabug: 27457549 Signed-off-by: Chuck Anderson Signed-off-by: Brian Maly Conflicts: arch/x86/kernel/cpu/spec_ctrl.c --- diff --git a/arch/x86/include/asm/spec_ctrl.h b/arch/x86/include/asm/spec_ctrl.h index d32e6bb9fc42..f0e75ffab225 100644 --- a/arch/x86/include/asm/spec_ctrl.h +++ b/arch/x86/include/asm/spec_ctrl.h @@ -278,25 +278,29 @@ static inline void clear_ibrs_disabled(void) extern int use_ibpb; extern u32 sysctl_ibpb_enabled; -#define ibpb_supported (use_ibpb & 0x2) -#define ibpb_disabled (use_ibpb & 0x4) +#define SPEC_CTRL_IBPB_INUSE (1<<0) /* OS enables IBPB usage */ +#define SPEC_CTRL_IBPB_SUPPORTED (1<<1) /* System supports IBPB */ +#define SPEC_CTRL_IBPB_ADMIN_DISABLED (1<<2) /* Admin disables IBPB */ + +#define ibpb_supported (use_ibpb & SPEC_CTRL_IBPB_SUPPORTED) +#define ibpb_disabled (use_ibpb & SPEC_CTRL_IBPB_ADMIN_DISABLED) #define ibpb_inuse (check_ibpb_inuse()) static inline void set_ibpb_inuse(void) { if (ibpb_supported) - use_ibpb |= 0x1; + use_ibpb |= SPEC_CTRL_IBPB_INUSE; } static inline void clear_ibpb_inuse(void) { - use_ibpb &= ~0x1; + use_ibpb &= ~SPEC_CTRL_IBPB_INUSE; } static inline int check_ibpb_inuse(void) { - if (use_ibpb & 0x1) + if (use_ibpb & SPEC_CTRL_IBPB_INUSE) return 1; else /* rmb to prevent wrong speculation for security */ @@ -306,14 +310,14 @@ static inline int check_ibpb_inuse(void) static inline void set_ibpb_supported(void) { - use_ibpb |= 0x2; + use_ibpb |= SPEC_CTRL_IBPB_SUPPORTED; if (!ibpb_disabled) set_ibpb_inuse(); } static inline void set_ibpb_disabled(void) { - use_ibpb |= 0x4; + use_ibpb |= SPEC_CTRL_IBPB_ADMIN_DISABLED; if (check_ibpb_inuse()) clear_ibpb_inuse(); /* Update what sysfs shows. */ @@ -322,7 +326,7 @@ static inline void set_ibpb_disabled(void) static inline void clear_ibpb_disabled(void) { - use_ibpb &= ~0x4; + use_ibpb &= ~SPEC_CTRL_IBPB_ADMIN_DISABLED; set_ibpb_inuse(); /* Update what sysfs shows. */ sysctl_ibpb_enabled = ibpb_inuse ? 1 : 0; diff --git a/arch/x86/kernel/cpu/bugs_64.c b/arch/x86/kernel/cpu/bugs_64.c index 5ae5dcdb5464..3eeff1bcd364 100644 --- a/arch/x86/kernel/cpu/bugs_64.c +++ b/arch/x86/kernel/cpu/bugs_64.c @@ -21,19 +21,19 @@ #include /* - * use IBRS - * bit 0 = indicate if ibrs is currently in use - * bit 1 = indicate if system supports ibrs - * bit 2 = indicate if admin disables ibrs + * use_ibrs flags: + * SPEC_CTRL_IBRS_INUSE indicate if ibrs is currently in use + * SPEC_CTRL_IBRS_SUPPORTED indicate if system supports ibrs + * SPEC_CTRL_IBRS_ADMIN_DISABLED indicate if admin disables ibrs */ int use_ibrs; EXPORT_SYMBOL(use_ibrs); /* - * use IBRS - * bit 0 = indicate if ibpb is currently in use - * bit 1 = indicate if system supports ibpb - * bit 2 = indicate if admin disables ibpb + * use_ibpb flags: + * SPEC_CTRL_IBPB_INUSE indicate if ibpb is currently in use + * SPEC_CTRL_IBPB_SUPPORTED indicate if system supports ibpb + * SPEC_CTRL_IBPB_ADMIN_DISABLED indicate if admin disables ibpb */ int use_ibpb; EXPORT_SYMBOL(use_ibpb); diff --git a/arch/x86/kernel/cpu/spec_ctrl.c b/arch/x86/kernel/cpu/spec_ctrl.c index a568124222d3..a880b7065620 100644 --- a/arch/x86/kernel/cpu/spec_ctrl.c +++ b/arch/x86/kernel/cpu/spec_ctrl.c @@ -8,14 +8,8 @@ #include #include -/* - * use_ibrs - * bit 0 = indicate if ibrs is currently in use - * bit 1 = indicate if system supports ibrs - * bit 2 = indicate if admin disables ibrs - */ - -u32 sysctl_ibrs_enabled = 0, sysctl_ibpb_enabled = 0; +u32 sysctl_ibrs_enabled; +u32 sysctl_ibpb_enabled; EXPORT_SYMBOL(sysctl_ibrs_enabled); EXPORT_SYMBOL(sysctl_ibpb_enabled);