{
if (ibrs_supported && !ibrs_disabled) {
use_ibrs |= SPEC_CTRL_IBRS_INUSE;
+ /* Update what sysfs shows. */
+ sysctl_ibrs_enabled = true;
return true;
} else {
return false;
static inline void clear_ibrs_inuse(void)
{
use_ibrs &= ~SPEC_CTRL_IBRS_INUSE;
+ /* Update what sysfs shows. */
+ sysctl_ibrs_enabled = false;
}
static inline int check_ibrs_inuse(void)
use_ibrs |= SPEC_CTRL_IBRS_ADMIN_DISABLED;
if (check_ibrs_inuse())
clear_ibrs_inuse();
- /* Update what sysfs shows. */
- sysctl_ibrs_enabled = ibrs_inuse ? 1 : 0;
}
static inline void clear_ibrs_disabled(void)
{
use_ibrs &= ~SPEC_CTRL_IBRS_ADMIN_DISABLED;
(void)set_ibrs_inuse();
- /* Update what sysfs shows. */
- sysctl_ibrs_enabled = ibrs_inuse ? 1 : 0;
}
static inline void set_ibrs_firmware(void)
{
if (ibpb_supported && !ibpb_disabled) {
use_ibpb |= SPEC_CTRL_IBPB_INUSE;
+ sysctl_ibpb_enabled = true;
return true;
} else {
return false;
static inline void clear_ibpb_inuse(void)
{
use_ibpb &= ~SPEC_CTRL_IBPB_INUSE;
+ sysctl_ibpb_enabled = false;
}
static inline int check_ibpb_inuse(void)
use_ibpb |= SPEC_CTRL_IBPB_ADMIN_DISABLED;
if (check_ibpb_inuse())
clear_ibpb_inuse();
- /* Update what sysfs shows. */
- sysctl_ibpb_enabled = ibpb_inuse ? 1 : 0;
}
static inline void clear_ibpb_disabled(void)
{
use_ibpb &= ~SPEC_CTRL_IBPB_ADMIN_DISABLED;
(void)set_ibpb_inuse();
- /* Update what sysfs shows. */
- sysctl_ibpb_enabled = ibpb_inuse ? 1 : 0;
}
/*
* would re-enable it (say if spectre_v2=off is used).
*/
set_ibrs_firmware();
- sysctl_ibrs_enabled = ibrs_inuse ? 1 : 0;
}
- if (cpu_has(c, X86_FEATURE_IBPB)) {
+ if (cpu_has(c, X86_FEATURE_IBPB))
set_ibpb_supported();
- sysctl_ibpb_enabled = ibpb_inuse ? 1 : 0;
- }
mutex_unlock(&spec_ctrl_mutex);
}
}