--- /dev/null
+From aea1181b0bd0a09c54546399768f359d1e198e45 Mon Sep 17 00:00:00 2001
+From: Sam Ravnborg <sam@ravnborg.org>
+Date: Tue, 27 Dec 2011 21:46:53 +0100
+Subject: sparc32: support atomic64_t
+
+From: Sam Ravnborg <sam@ravnborg.org>
+
+commit aea1181b0bd0a09c54546399768f359d1e198e45 upstream, Needed to
+compile ext4 for sparc32 since commit
+503f4bdcc078e7abee273a85ce322de81b18a224
+
+There is no-one that really require atomic64_t support on sparc32.
+But several drivers fails to build without proper atomic64 support.
+And for an allyesconfig build for sparc32 this is annoying.
+
+Include the generic atomic64_t support for sparc32.
+This has a text footprint cost:
+
+$size vmlinux (before atomic64_t support)
+ text data bss dec hex filename
+3578860 134260 108781 3821901 3a514d vmlinux
+
+$size vmlinux (after atomic64_t support)
+ text data bss dec hex filename
+3579892 130684 108781 3819357 3a475d vmlinux
+
+text increase (3579892 - 3578860) = 1032 bytes
+
+data decreases - but I fail to explain why!
+I have rebuild twice to check my numbers.
+
+Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Andreas Larsson <andreas@gaisler.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/sparc/Kconfig | 1 +
+ arch/sparc/include/asm/atomic_32.h | 2 ++
+ 2 files changed, 3 insertions(+)
+
+--- a/arch/sparc/Kconfig
++++ b/arch/sparc/Kconfig
+@@ -31,6 +31,7 @@ config SPARC
+
+ config SPARC32
+ def_bool !64BIT
++ select GENERIC_ATOMIC64
+
+ config SPARC64
+ def_bool 64BIT
+--- a/arch/sparc/include/asm/atomic_32.h
++++ b/arch/sparc/include/asm/atomic_32.h
+@@ -15,6 +15,8 @@
+
+ #ifdef __KERNEL__
+
++#include <asm-generic/atomic64.h>
++
+ #include <asm/system.h>
+
+ #define ATOMIC_INIT(i) { (i) }