diff options
Diffstat (limited to 'kernel/sched/debug.c')
| -rw-r--r-- | kernel/sched/debug.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 60caf1fb94e0..6383aa6a60ca 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -89,12 +89,12 @@ struct static_key sched_feat_keys[__SCHED_FEAT_NR] = {  static void sched_feat_disable(int i)  { -	static_key_disable(&sched_feat_keys[i]); +	static_key_disable_cpuslocked(&sched_feat_keys[i]);  }  static void sched_feat_enable(int i)  { -	static_key_enable(&sched_feat_keys[i]); +	static_key_enable_cpuslocked(&sched_feat_keys[i]);  }  #else  static void sched_feat_disable(int i) { }; @@ -146,9 +146,11 @@ sched_feat_write(struct file *filp, const char __user *ubuf,  	/* Ensure the static_key remains in a consistent state */  	inode = file_inode(filp); +	cpus_read_lock();  	inode_lock(inode);  	ret = sched_feat_set(cmp);  	inode_unlock(inode); +	cpus_read_unlock();  	if (ret < 0)  		return ret;  |