From 551506c29c55c392737ed600432e09829ced3084 Mon Sep 17 00:00:00 2001 From: kaloz Date: Mon, 8 Feb 2010 21:25:46 +0000 Subject: [PATCH] [arm]: add a backported fix for the uncompression code git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19555 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../057-arm_fix_uncompress_code.patch | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 target/linux/generic-2.6/patches-2.6.32/057-arm_fix_uncompress_code.patch diff --git a/target/linux/generic-2.6/patches-2.6.32/057-arm_fix_uncompress_code.patch b/target/linux/generic-2.6/patches-2.6.32/057-arm_fix_uncompress_code.patch new file mode 100644 index 000000000..d11d11ba0 --- /dev/null +++ b/target/linux/generic-2.6/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 +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 +Signed-off-by: Russell King +--- + 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