diff options
Diffstat (limited to 'patches/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch')
-rw-r--r-- | patches/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/patches/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch b/patches/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch index cd3ec8bb3f7a..12489119adef 100644 --- a/patches/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch +++ b/patches/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch @@ -30,7 +30,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h -@@ -303,11 +303,7 @@ static inline int rcu_preempt_depth(void +@@ -118,11 +118,7 @@ static inline int rcu_preempt_depth(void /* Internal to kernel */ void rcu_init(void); void rcu_sched_qs(void); @@ -44,7 +44,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> void rcu_cpu_starting(unsigned int cpu); --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c -@@ -262,7 +262,14 @@ void rcu_sched_qs(void) +@@ -246,7 +246,14 @@ void rcu_sched_qs(void) this_cpu_ptr(&rcu_sched_data), true); } @@ -59,7 +59,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> +#else void rcu_bh_qs(void) { - if (__this_cpu_read(rcu_bh_data.cpu_no_qs.s)) { + RCU_LOCKDEP_WARN(preemptible(), "rcu_bh_qs() invoked with preemption enabled!!!"); --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -29,6 +29,7 @@ @@ -69,8 +69,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> +#include <linux/jiffies.h> #include <uapi/linux/sched/types.h> #include "../time/tick-internal.h" - -@@ -1246,7 +1247,7 @@ static void rcu_prepare_kthreads(int cpu + #include "../locking/rtmutex_common.h" +@@ -1285,7 +1286,7 @@ static void rcu_prepare_kthreads(int cpu #endif /* #else #ifdef CONFIG_RCU_BOOST */ @@ -79,9 +79,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * Check to see if any future RCU-related work will need to be done -@@ -1263,7 +1264,9 @@ int rcu_needs_cpu(u64 basemono, u64 *nex - return IS_ENABLED(CONFIG_RCU_NOCB_CPU_ALL) - ? 0 : rcu_cpu_has_callbacks(NULL); +@@ -1301,7 +1302,9 @@ int rcu_needs_cpu(u64 basemono, u64 *nex + *nextevt = KTIME_MAX; + return rcu_cpu_has_callbacks(NULL); } +#endif /* !defined(CONFIG_RCU_FAST_NO_HZ) || defined(CONFIG_PREEMPT_RT_FULL) */ @@ -89,7 +89,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * Because we do not have RCU_FAST_NO_HZ, don't bother cleaning up * after it. -@@ -1359,6 +1362,8 @@ static bool __maybe_unused rcu_try_advan +@@ -1397,6 +1400,8 @@ static bool __maybe_unused rcu_try_advan return cbs_ready; } @@ -98,7 +98,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * Allow the CPU to enter dyntick-idle mode unless it has callbacks ready * to invoke. If the CPU has callbacks, try to advance them. Tell the -@@ -1404,6 +1409,7 @@ int rcu_needs_cpu(u64 basemono, u64 *nex +@@ -1439,6 +1444,7 @@ int rcu_needs_cpu(u64 basemono, u64 *nex *nextevt = basemono + dj * TICK_NSEC; return 0; } |