summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-2.6.32/057-arm_fix_uncompress_code.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-2.6.32/057-arm_fix_uncompress_code.patch')
-rw-r--r--target/linux/generic/patches-2.6.32/057-arm_fix_uncompress_code.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/target/linux/generic/patches-2.6.32/057-arm_fix_uncompress_code.patch b/target/linux/generic/patches-2.6.32/057-arm_fix_uncompress_code.patch
new file mode 100644
index 000000000..d11d11ba0
--- /dev/null
+++ b/target/linux/generic/patches-2.6.32/057-arm_fix_uncompress_code.patch
@@ -0,0 +1,63 @@
+From b53e9b5ebd5c6e718f54bcacd4e97b71533ca681 Mon Sep 17 00:00:00 2001
+From: Tony Lindgren <tony@atomide.com>
+Date: Thu, 14 Jan 2010 20:36:55 +0100
+Subject: [PATCH] ARM: 5882/1: ARM: Fix uncompress code compile for different defines of flush(void)
+
+Because of the include of the decompress_inflate.c file from
+boot/compress/misc.c, there are different flush() defines:
+
+In file included from arch/arm/boot/compressed/misc.c:249:
+arch/arm/boot/compressed/../../../../lib/decompress_inflate.c:138:29: error: macro "flush" passed 2 arguments, but takes just 0
+
+Fix this by removing the define of flush() in misc.c for
+CONFIG_DEBUG_ICEDCC as it's already defined in mach/uncompress.h,
+and that is being included unconditionally.
+
+Also use a static inline function instead of define
+for mach-mxc and mach-gemini to avoid similar bug
+for those platforms.
+
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+---
+ arch/arm/boot/compressed/misc.c | 1 -
+ arch/arm/mach-gemini/include/mach/uncompress.h | 4 +++-
+ arch/arm/plat-mxc/include/mach/uncompress.h | 4 +++-
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+
+--- a/arch/arm/boot/compressed/misc.c
++++ b/arch/arm/boot/compressed/misc.c
+@@ -88,7 +88,6 @@ static void icedcc_putc(int ch)
+ #endif
+
+ #define putc(ch) icedcc_putc(ch)
+-#define flush() do { } while (0)
+ #endif
+
+ static void putstr(const char *ptr)
+--- a/arch/arm/mach-gemini/include/mach/uncompress.h
++++ b/arch/arm/mach-gemini/include/mach/uncompress.h
+@@ -30,7 +30,9 @@ static inline void putc(char c)
+ UART[UART_TX] = c;
+ }
+
+-#define flush() do { } while (0)
++static inline void flush(void)
++{
++}
+
+ /*
+ * nothing to do
+--- a/arch/arm/plat-mxc/include/mach/uncompress.h
++++ b/arch/arm/plat-mxc/include/mach/uncompress.h
+@@ -60,7 +60,9 @@ static void putc(int ch)
+ UART(TXR) = ch;
+ }
+
+-#define flush() do { } while (0)
++static inline void flush(void)
++{
++}
+
+ #define MX1_UART1_BASE_ADDR 0x00206000
+ #define MX25_UART1_BASE_ADDR 0x43f90000