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] = { | |||
89 | 89 | ||
90 | static void sched_feat_disable(int i) | 90 | static void sched_feat_disable(int i) |
91 | { | 91 | { |
92 | static_key_disable(&sched_feat_keys[i]); | 92 | static_key_disable_cpuslocked(&sched_feat_keys[i]); |
93 | } | 93 | } |
94 | 94 | ||
95 | static void sched_feat_enable(int i) | 95 | static void sched_feat_enable(int i) |
96 | { | 96 | { |
97 | static_key_enable(&sched_feat_keys[i]); | 97 | static_key_enable_cpuslocked(&sched_feat_keys[i]); |
98 | } | 98 | } |
99 | #else | 99 | #else |
100 | static void sched_feat_disable(int i) { }; | 100 | static void sched_feat_disable(int i) { }; |
@@ -146,9 +146,11 @@ sched_feat_write(struct file *filp, const char __user *ubuf, | |||
146 | 146 | ||
147 | /* Ensure the static_key remains in a consistent state */ | 147 | /* Ensure the static_key remains in a consistent state */ |
148 | inode = file_inode(filp); | 148 | inode = file_inode(filp); |
149 | cpus_read_lock(); | ||
149 | inode_lock(inode); | 150 | inode_lock(inode); |
150 | ret = sched_feat_set(cmp); | 151 | ret = sched_feat_set(cmp); |
151 | inode_unlock(inode); | 152 | inode_unlock(inode); |
153 | cpus_read_unlock(); | ||
152 | if (ret < 0) | 154 | if (ret < 0) |
153 | return ret; | 155 | return ret; |
154 | 156 | ||