From: Greg Kroah-Hartman Date: Mon, 31 Dec 2012 20:49:37 +0000 (-0800) Subject: 3.0: remove sgi patch, it broke the build X-Git-Tag: v3.0.58~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f2f2d6b8c87a91be263d5f49a43789972e01ceba;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0: remove sgi patch, it broke the build --- diff --git a/queue-3.0/series b/queue-3.0/series index 2ac9ae645a2..6b32a3eb2e1 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -6,5 +6,4 @@ ne2000-add-the-right-platform-device.patch irda-sir_dev-fix-copy-paste-typo.patch usb-ipheth-add-iphone-5-support.patch pnpacpi-fix-incorrect-test_alpha-test.patch -sgi-xp-handle-non-fatal-traps.patch exec-do-not-leave-bprm-interp-on-stack.patch diff --git a/queue-3.0/sgi-xp-handle-non-fatal-traps.patch b/queue-3.0/sgi-xp-handle-non-fatal-traps.patch deleted file mode 100644 index 5ff9a691cb2..00000000000 --- a/queue-3.0/sgi-xp-handle-non-fatal-traps.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 891348ca0f66206f1dc0e30d63757e3df1ae2d15 Mon Sep 17 00:00:00 2001 -From: Robin Holt -Date: Thu, 20 Dec 2012 15:05:50 -0800 -Subject: SGI-XP: handle non-fatal traps - -From: Robin Holt - -commit 891348ca0f66206f1dc0e30d63757e3df1ae2d15 upstream. - -We found a user code which was raising a divide-by-zero trap. That trap -would lead to XPC connections between system-partitions being torn down -due to the die_chain notifier callouts it received. - -This also revealed a different issue where multiple callers into -xpc_die_deactivate() would all attempt to do the disconnect in parallel -which would sometimes lock up but often overwhelm the console on very -large machines as each would print at least one line of output at the -end of the deactivate. - -I reviewed all the users of the die_chain notifier and changed the code -to ignore the notifier callouts for reasons which will not actually lead -to a system to continue on to call die(). - -[akpm@linux-foundation.org: fix ia64] -Signed-off-by: Robin Holt -Cc: Thomas Gleixner -Cc: Ingo Molnar -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/misc/sgi-xp/xpc_main.c | 34 ++++++++++++++++++++++++++++++++-- - 1 file changed, 32 insertions(+), 2 deletions(-) - ---- a/drivers/misc/sgi-xp/xpc_main.c -+++ b/drivers/misc/sgi-xp/xpc_main.c -@@ -53,6 +53,10 @@ - #include - #include "xpc.h" - -+#ifdef CONFIG_X86_64 -+#include -+#endif -+ - /* define two XPC debug device structures to be used with dev_dbg() et al */ - - struct device_driver xpc_dbg_name = { -@@ -1079,6 +1083,9 @@ xpc_system_reboot(struct notifier_block - return NOTIFY_DONE; - } - -+/* Used to only allow one cpu to complete disconnect */ -+static unsigned int xpc_die_disconnecting; -+ - /* - * Notify other partitions to deactivate from us by first disengaging from all - * references to our memory. -@@ -1092,6 +1099,9 @@ xpc_die_deactivate(void) - long keep_waiting; - long wait_to_print; - -+ if (cmpxchg(&xpc_die_disconnecting, 0, 1)) -+ return; -+ - /* keep xpc_hb_checker thread from doing anything (just in case) */ - xpc_exiting = 1; - -@@ -1159,7 +1169,7 @@ xpc_die_deactivate(void) - * about the lack of a heartbeat. - */ - static int --xpc_system_die(struct notifier_block *nb, unsigned long event, void *unused) -+xpc_system_die(struct notifier_block *nb, unsigned long event, void *_die_args) - { - #ifdef CONFIG_IA64 /* !!! temporary kludge */ - switch (event) { -@@ -1191,7 +1201,27 @@ xpc_system_die(struct notifier_block *nb - break; - } - #else -- xpc_die_deactivate(); -+ struct die_args *die_args = _die_args; -+ -+ switch (event) { -+ case DIE_TRAP: -+ if (die_args->trapnr == X86_TRAP_DF) -+ xpc_die_deactivate(); -+ -+ if (((die_args->trapnr == X86_TRAP_MF) || -+ (die_args->trapnr == X86_TRAP_XF)) && -+ !user_mode_vm(die_args->regs)) -+ xpc_die_deactivate(); -+ -+ break; -+ case DIE_INT3: -+ case DIE_DEBUG: -+ break; -+ case DIE_OOPS: -+ case DIE_GPF: -+ default: -+ xpc_die_deactivate(); -+ } - #endif - - return NOTIFY_DONE;