From: Konrad Rzeszutek Wilk Date: Tue, 27 Feb 2018 01:13:00 +0000 (-0500) Subject: Revert "x86/spec: Add 'lfence_enabled' in sysfs" X-Git-Tag: v4.1.12-124.31.3~1118 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=df80b1408dfcaa524b2cf9afa8be58f94e925a0c;p=users%2Fjedix%2Flinux-maple.git Revert "x86/spec: Add 'lfence_enabled' in sysfs" This reverts commit d4ac621c1079ddd1b390ab2f56eedbda4aa8d1d7. OraBug: 27601789 Reviewed-by: Mihai Carabas Signed-off-by: Konrad Rzeszutek Wilk --- diff --git a/arch/x86/include/asm/spec_ctrl.h b/arch/x86/include/asm/spec_ctrl.h index 1d5af4745446..4d3577c54e51 100644 --- a/arch/x86/include/asm/spec_ctrl.h +++ b/arch/x86/include/asm/spec_ctrl.h @@ -273,13 +273,6 @@ extern u32 sysctl_lfence_enabled; static inline void set_lfence_disabled(void) { use_ibrs |= SPEC_CTRL_LFENCE_OFF; - sysctl_lfence_enabled = 0; -} - -static inline void clear_lfence_disabled(void) -{ - use_ibrs &= ~SPEC_CTRL_LFENCE_OFF; - sysctl_lfence_enabled = 1; } /* indicate usage of IBPB to control execution speculation */ diff --git a/arch/x86/kernel/cpu/spec_ctrl.c b/arch/x86/kernel/cpu/spec_ctrl.c index 93aa00cede93..ec3e307f0289 100644 --- a/arch/x86/kernel/cpu/spec_ctrl.c +++ b/arch/x86/kernel/cpu/spec_ctrl.c @@ -15,8 +15,6 @@ */ u32 sysctl_ibrs_enabled = 0, sysctl_ibpb_enabled = 0; -/* By default it is enabled. */ -u32 sysctl_lfence_enabled = 1; EXPORT_SYMBOL(sysctl_ibrs_enabled); EXPORT_SYMBOL(sysctl_ibpb_enabled); @@ -148,71 +146,12 @@ static const struct file_operations fops_ibpb_enabled = { .llseek = default_llseek, }; -static ssize_t lfence_enabled_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) -{ - uint32_t dummy = 0; - - if (ibrs_disabled) - return __enabled_read(file, user_buf, count, ppos, &sysctl_lfence_enabled); - - return __enabled_read(file, user_buf, count, ppos, &dummy); -} - -static ssize_t lfence_enabled_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) -{ - char buf[32]; - ssize_t len; - unsigned int enable; - - /* You have to disable IBRS first. */ - if (ibrs_inuse || retpoline_enabled()) { - pr_warn("%s is enabled. Ignoring request to change lfence_enabled state.\n", - ibrs_inuse ? "IBRS" : "retpoline"); - return -EINVAL; - } - - len = min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) - return -EFAULT; - - buf[len] = '\0'; - if (kstrtouint(buf, 0, &enable)) - return -EINVAL; - - /* Only 0 and 1 are allowed */ - if (enable > 1) - return -EINVAL; - - mutex_lock(&spec_ctrl_mutex); - - if (!enable) - set_lfence_disabled(); - else - clear_lfence_disabled(); - - refresh_set_spectre_v2_enabled(); - - mutex_unlock(&spec_ctrl_mutex); - return count; -} - -static const struct file_operations fops_lfence_enabled = { - .read = lfence_enabled_read, - .write = lfence_enabled_write, - .llseek = default_llseek, -}; - static int __init debugfs_spec_ctrl(void) { debugfs_create_file("ibrs_enabled", S_IRUSR | S_IWUSR, arch_debugfs_dir, NULL, &fops_ibrs_enabled); debugfs_create_file("ibpb_enabled", S_IRUSR | S_IWUSR, arch_debugfs_dir, NULL, &fops_ibpb_enabled); - debugfs_create_file("lfence_enabled", S_IRUSR | S_IWUSR, - arch_debugfs_dir, NULL, &fops_lfence_enabled); return 0; } late_initcall(debugfs_spec_ctrl);