diff options
-rw-r--r-- | arch/um/drivers/mconsole_kern.c | 2 | ||||
-rw-r--r-- | include/linux/rcupdate.h | 2 | ||||
-rw-r--r-- | include/linux/sched.h | 8 | ||||
-rw-r--r-- | kernel/sched/core.c | 2 |
4 files changed, 4 insertions, 10 deletions
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c index 79ccfe6c7078..49e3b49e552f 100644 --- a/arch/um/drivers/mconsole_kern.c +++ b/arch/um/drivers/mconsole_kern.c | |||
@@ -648,7 +648,7 @@ static void stack_proc(void *arg) | |||
648 | struct task_struct *from = current, *to = arg; | 648 | struct task_struct *from = current, *to = arg; |
649 | 649 | ||
650 | to->thread.saved_task = from; | 650 | to->thread.saved_task = from; |
651 | rcu_switch(from, to); | 651 | rcu_user_hooks_switch(from, to); |
652 | switch_to(from, to, from); | 652 | switch_to(from, to, from); |
653 | } | 653 | } |
654 | 654 | ||
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 7c968e4f929e..5d009def7c0c 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -204,6 +204,8 @@ static inline void rcu_user_enter(void) { } | |||
204 | static inline void rcu_user_exit(void) { } | 204 | static inline void rcu_user_exit(void) { } |
205 | static inline void rcu_user_enter_after_irq(void) { } | 205 | static inline void rcu_user_enter_after_irq(void) { } |
206 | static inline void rcu_user_exit_after_irq(void) { } | 206 | static inline void rcu_user_exit_after_irq(void) { } |
207 | static inline void rcu_user_hooks_switch(struct task_struct *prev, | ||
208 | struct task_struct *next) { } | ||
207 | #endif /* CONFIG_RCU_USER_QS */ | 209 | #endif /* CONFIG_RCU_USER_QS */ |
208 | 210 | ||
209 | extern void exit_rcu(void); | 211 | extern void exit_rcu(void); |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 0dd42a02df2e..432cc5e1bbee 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1844,14 +1844,6 @@ static inline void rcu_copy_process(struct task_struct *p) | |||
1844 | 1844 | ||
1845 | #endif | 1845 | #endif |
1846 | 1846 | ||
1847 | static inline void rcu_switch(struct task_struct *prev, | ||
1848 | struct task_struct *next) | ||
1849 | { | ||
1850 | #ifdef CONFIG_RCU_USER_QS | ||
1851 | rcu_user_hooks_switch(prev, next); | ||
1852 | #endif | ||
1853 | } | ||
1854 | |||
1855 | static inline void tsk_restore_flags(struct task_struct *task, | 1847 | static inline void tsk_restore_flags(struct task_struct *task, |
1856 | unsigned long orig_flags, unsigned long flags) | 1848 | unsigned long orig_flags, unsigned long flags) |
1857 | { | 1849 | { |
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 2d8927fda712..68414fa4cd2a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -1887,7 +1887,7 @@ context_switch(struct rq *rq, struct task_struct *prev, | |||
1887 | #endif | 1887 | #endif |
1888 | 1888 | ||
1889 | /* Here we just switch the register state and the stack. */ | 1889 | /* Here we just switch the register state and the stack. */ |
1890 | rcu_switch(prev, next); | 1890 | rcu_user_hooks_switch(prev, next); |
1891 | switch_to(prev, next, prev); | 1891 | switch_to(prev, next, prev); |
1892 | 1892 | ||
1893 | barrier(); | 1893 | barrier(); |