summaryrefslogtreecommitdiff
path: root/patches/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch
diff options
context:
space:
mode:
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.patch20
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;
}