--- /dev/null
+From e68c636d88db3fda74e664ecb1a213ae0d50a7d8 Mon Sep 17 00:00:00 2001
+From: Hans-Christian Egtvedt <egtvedt@samfundet.no>
+Date: Mon, 13 May 2013 22:22:10 +0200
+Subject: avr32: fix relocation check for signed 18-bit offset
+
+From: Hans-Christian Egtvedt <egtvedt@samfundet.no>
+
+commit e68c636d88db3fda74e664ecb1a213ae0d50a7d8 upstream.
+
+Caught by static code analysis by David.
+
+Reported-by: David Binderman <dcb314@hotmail.com>
+Signed-off-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/avr32/kernel/module.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/avr32/kernel/module.c
++++ b/arch/avr32/kernel/module.c
+@@ -271,7 +271,7 @@ int apply_relocate_add(Elf32_Shdr *sechd
+ break;
+ case R_AVR32_GOT18SW:
+ if ((relocation & 0xfffe0003) != 0
+- && (relocation & 0xfffc0003) != 0xffff0000)
++ && (relocation & 0xfffc0000) != 0xfffc0000)
+ return reloc_overflow(module, "R_AVR32_GOT18SW",
+ relocation);
+ relocation >>= 2;