--- /dev/null
+From af9719c3062dfe216a0c3de3fa52be6d22b4456c Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Thu, 30 Jun 2011 13:55:27 +0000
+Subject: powerpc: Use -mtraceback=no
+
+From: Anton Blanchard <anton@samba.org>
+
+commit af9719c3062dfe216a0c3de3fa52be6d22b4456c upstream.
+
+gcc 4.7 will be more strict about parsing the -mtraceback option:
+
+ gcc: error: unrecognized argument in option '-mtraceback=none'
+ gcc: note: valid arguments to '-mtraceback=' are: full no part
+
+gcc used to do a 2 char compare so both "no" and "none" would
+match. Switch to using -mtraceback=no should work everywhere.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/Makefile
++++ b/arch/powerpc/Makefile
+@@ -67,7 +67,7 @@ LDFLAGS_vmlinux-yy := -Bstatic
+ LDFLAGS_vmlinux-$(CONFIG_PPC64)$(CONFIG_RELOCATABLE) := -pie
+ LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-yy)
+
+-CFLAGS-$(CONFIG_PPC64) := -mminimal-toc -mtraceback=none -mcall-aixdesc
++CFLAGS-$(CONFIG_PPC64) := -mminimal-toc -mtraceback=no -mcall-aixdesc
+ CFLAGS-$(CONFIG_PPC32) := -ffixed-r2 -mmultiple
+ KBUILD_CPPFLAGS += -Iarch/$(ARCH)
+ KBUILD_AFLAGS += -Iarch/$(ARCH)
genetlink-fix-family-dump-race.patch
usb-add-two-quirky-touchscreen.patch
usb-mos7720-fix-broken-control-requests.patch
+sparc32-add-ucmpdi2.patch
+sparc32-add-ucmpdi2.o-to-obj-y-instead-of-lib-y.patch
+powerpc-use-mtraceback-no.patch
--- /dev/null
+From 74c7b28953d4eaa6a479c187aeafcfc0280da5e8 Mon Sep 17 00:00:00 2001
+From: "David S. Miller" <davem@davemloft.net>
+Date: Sat, 19 May 2012 15:27:01 -0700
+Subject: sparc32: Add ucmpdi2.o to obj-y instead of lib-y.
+
+From: "David S. Miller" <davem@davemloft.net>
+
+commit 74c7b28953d4eaa6a479c187aeafcfc0280da5e8 upstream.
+
+Otherwise if no references exist in the static kernel image,
+we won't export the symbol properly to modules.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/sparc/lib/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/sparc/lib/Makefile
++++ b/arch/sparc/lib/Makefile
+@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi
+ lib-$(CONFIG_SPARC32) += copy_user.o locks.o
+ lib-y += atomic_$(BITS).o
+ lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
+-lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ucmpdi2.o
++lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o
+
+ lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o
+ lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o
+@@ -40,7 +40,7 @@ lib-$(CONFIG_SPARC64) += copy_in_user.o
+ lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o hweight.o ffs.o
+
+ obj-y += iomap.o
+-obj-$(CONFIG_SPARC32) += atomic32.o
++obj-$(CONFIG_SPARC32) += atomic32.o ucmpdi2.o
+ obj-y += ksyms.o
+ obj-$(CONFIG_SPARC64) += PeeCeeI.o
+ obj-y += usercopy.o
--- /dev/null
+From de36e66d5fa52bc6e2dacd95c701a1762b5308a7 Mon Sep 17 00:00:00 2001
+From: Sam Ravnborg <sam@ravnborg.org>
+Date: Sat, 19 May 2012 11:54:11 +0200
+Subject: sparc32: add ucmpdi2
+
+From: Sam Ravnborg <sam@ravnborg.org>
+
+commit de36e66d5fa52bc6e2dacd95c701a1762b5308a7 upstream.
+
+Based on copy from microblaze add ucmpdi2 implementation.
+This fixes build of niu driver which failed with:
+
+drivers/built-in.o: In function `niu_get_nfc':
+niu.c:(.text+0x91494): undefined reference to `__ucmpdi2'
+
+This driver will never be used on a sparc32 system,
+but patch added to fix build breakage with all*config builds.
+
+Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/sparc/lib/Makefile | 2 +-
+ arch/sparc/lib/ucmpdi2.c | 19 +++++++++++++++++++
+ 2 files changed, 20 insertions(+), 1 deletion(-)
+
+--- a/arch/sparc/lib/Makefile
++++ b/arch/sparc/lib/Makefile
+@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi
+ lib-$(CONFIG_SPARC32) += copy_user.o locks.o
+ lib-y += atomic_$(BITS).o
+ lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
+-lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o
++lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ucmpdi2.o
+
+ lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o
+ lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o
+--- /dev/null
++++ b/arch/sparc/lib/ucmpdi2.c
+@@ -0,0 +1,19 @@
++#include <linux/module.h>
++#include "libgcc.h"
++
++word_type __ucmpdi2(unsigned long long a, unsigned long long b)
++{
++ const DWunion au = {.ll = a};
++ const DWunion bu = {.ll = b};
++
++ if ((unsigned int) au.s.high < (unsigned int) bu.s.high)
++ return 0;
++ else if ((unsigned int) au.s.high > (unsigned int) bu.s.high)
++ return 2;
++ if ((unsigned int) au.s.low < (unsigned int) bu.s.low)
++ return 0;
++ else if ((unsigned int) au.s.low > (unsigned int) bu.s.low)
++ return 2;
++ return 1;
++}
++EXPORT_SYMBOL(__ucmpdi2);