diff options
Diffstat (limited to 'arch/x86/kernel/cpu/bugs.c')
| -rw-r--r-- | arch/x86/kernel/cpu/bugs.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index d970ddb0cc65..85168740f76a 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -86,7 +86,7 @@ void update_spec_ctrl_cond(u64 val)  		wrmsrl(MSR_IA32_SPEC_CTRL, val);  } -u64 spec_ctrl_current(void) +noinstr u64 spec_ctrl_current(void)  {  	return this_cpu_read(x86_spec_ctrl_current);  } @@ -1981,6 +1981,8 @@ static int ib_prctl_set(struct task_struct *task, unsigned long ctrl)  		if (ctrl == PR_SPEC_FORCE_DISABLE)  			task_set_spec_ib_force_disable(task);  		task_update_spec_tif(task); +		if (task == current) +			indirect_branch_prediction_barrier();  		break;  	default:  		return -ERANGE;  |