From: Greg Kroah-Hartman Date: Thu, 18 Jul 2013 06:22:39 +0000 (-0700) Subject: 3.10-stable patches X-Git-Tag: v3.9.11~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e02af9fcf38520e1f3faafa73273ee13058db81e;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10-stable patches added patches: include-linux-smp.h-on_each_cpu-switch-back-to-a-macro.patch --- diff --git a/queue-3.10/include-linux-smp.h-on_each_cpu-switch-back-to-a-macro.patch b/queue-3.10/include-linux-smp.h-on_each_cpu-switch-back-to-a-macro.patch new file mode 100644 index 00000000000..a5c2cc19ad4 --- /dev/null +++ b/queue-3.10/include-linux-smp.h-on_each_cpu-switch-back-to-a-macro.patch @@ -0,0 +1,66 @@ +From c846ef7deba2d4f75138cf6a4b137b7e0e7659af Mon Sep 17 00:00:00 2001 +From: Andrew Morton +Date: Wed, 3 Jul 2013 15:00:41 -0700 +Subject: include/linux/smp.h:on_each_cpu(): switch back to a macro + +From: Andrew Morton + +commit c846ef7deba2d4f75138cf6a4b137b7e0e7659af upstream. + +Commit f21afc25f9ed ("smp.h: Use local_irq_{save,restore}() in !SMP +version of on_each_cpu()") converted on_each_cpu() to a C function. + +This required inclusion of irqflags.h, which broke ia64 and mn10300 (at +least) due to header ordering hell. + +Switch on_each_cpu() back to a macro to fix this. + +Reported-by: Geert Uytterhoeven +Acked-by: Geert Uytterhoeven +Cc: David Daney +Cc: Ralf Baechle +Cc: Stephen Rothwell +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/smp.h | 20 ++++++++------------ + 1 file changed, 8 insertions(+), 12 deletions(-) + +--- a/include/linux/smp.h ++++ b/include/linux/smp.h +@@ -11,7 +11,6 @@ + #include + #include + #include +-#include + + extern void cpu_idle(void); + +@@ -140,17 +139,14 @@ static inline int up_smp_call_function(s + } + #define smp_call_function(func, info, wait) \ + (up_smp_call_function(func, info)) +- +-static inline int on_each_cpu(smp_call_func_t func, void *info, int wait) +-{ +- unsigned long flags; +- +- local_irq_save(flags); +- func(info); +- local_irq_restore(flags); +- return 0; +-} +- ++#define on_each_cpu(func, info, wait) \ ++ ({ \ ++ unsigned long __flags; \ ++ local_irq_save(__flags); \ ++ func(info); \ ++ local_irq_restore(__flags); \ ++ 0; \ ++ }) + /* + * Note we still need to test the mask even for UP + * because we actually can get an empty mask from diff --git a/queue-3.10/series b/queue-3.10/series index 965fe7e15a5..4b91c847fe9 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -49,3 +49,4 @@ timer-fix-jiffies-wrap-behavior-of-round_jiffies_common.patch btrfs-fix-estale-with-btrfs-send.patch btrfs-hold-the-tree-mod-lock-in-__tree_mod_log_rewind.patch btrfs-only-do-the-tree_mod_log_free_eb-if-this-is-our-last.patch +include-linux-smp.h-on_each_cpu-switch-back-to-a-macro.patch