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 */
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. */
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;
#include <asm/intel-family.h>
/*
- * 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);
#include <asm/cpufeature.h>
#include <asm/microcode.h>
-/*
- * 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);