From dd6df437132464480c51e4fb07db6670e922f35f Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 6 Oct 2010 14:04:29 -0400 Subject: [PATCH] Another day, another rcu_dereference warning. (#640673) --- kernel.spec | 5 +++++ linux-2.6-rcu-netpoll.patch | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 linux-2.6-rcu-netpoll.patch diff --git a/kernel.spec b/kernel.spec index 325026eff..f0c3231ce 100644 --- a/kernel.spec +++ b/kernel.spec @@ -682,6 +682,7 @@ Patch2912: linux-2.6-v4l-dvb-ir-core-update.patch Patch2917: hdpvr-ir-enable.patch Patch3000: linux-2.6-rcu-sched-warning.patch +Patch3010: linux-2.6-rcu-netpoll.patch # fs fixes @@ -1295,6 +1296,7 @@ ApplyPatch hdpvr-ir-enable.patch # silence another rcu_reference warning ApplyPatch linux-2.6-rcu-sched-warning.patch +ApplyPatch linux-2.6-rcu-netpoll.patch # Patches headed upstream ApplyPatch disable-i8042-check-on-apple-mac.patch @@ -1940,6 +1942,9 @@ fi # || || %changelog +* Wed Oct 06 2010 Dave Jones +- Another day, another rcu_dereference warning. (#640673) + * Tue Oct 05 2010 Kyle McMartin 2.6.36-0.34.rc6.git3 - Linux 2.6.36-rc6-git3 - Drop intel_ips patches merged upstream. diff --git a/linux-2.6-rcu-netpoll.patch b/linux-2.6-rcu-netpoll.patch new file mode 100644 index 000000000..540b39341 --- /dev/null +++ b/linux-2.6-rcu-netpoll.patch @@ -0,0 +1,16 @@ + +diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h +index 9fbc54a..435c502 100644 +--- a/include/linux/rcupdate.h ++++ b/include/linux/rcupdate.h +@@ -454,7 +454,7 @@ static inline notrace void rcu_read_unlock_sched_notrace(void) + * Makes rcu_dereference_check() do the dirty work. + */ + #define rcu_dereference_bh(p) \ +- rcu_dereference_check(p, rcu_read_lock_bh_held()) ++ rcu_dereference_check(p, rcu_read_lock_bh_held() || irqs_disabled()) + + /** + * rcu_dereference_sched - fetch RCU-protected pointer, checking for RCU-sched + +