|
@@ -12,6 +12,7 @@
|
|
#include <linux/module.h>
|
|
#include <linux/module.h>
|
|
#include <asm/cacheflush.h>
|
|
#include <asm/cacheflush.h>
|
|
#include <asm/sections.h>
|
|
#include <asm/sections.h>
|
|
|
|
+#include <asm/asm.h>
|
|
|
|
|
|
int rodata_test(void)
|
|
int rodata_test(void)
|
|
{
|
|
{
|
|
@@ -42,14 +43,7 @@ int rodata_test(void)
|
|
".section .fixup,\"ax\"\n"
|
|
".section .fixup,\"ax\"\n"
|
|
"2: jmp 1b\n"
|
|
"2: jmp 1b\n"
|
|
".previous\n"
|
|
".previous\n"
|
|
- ".section __ex_table,\"a\"\n"
|
|
|
|
- " .align 16\n"
|
|
|
|
-#ifdef CONFIG_X86_32
|
|
|
|
- " .long 0b,2b\n"
|
|
|
|
-#else
|
|
|
|
- " .quad 0b,2b\n"
|
|
|
|
-#endif
|
|
|
|
- ".previous"
|
|
|
|
|
|
+ _ASM_EXTABLE(0b,2b)
|
|
: [rslt] "=r" (result)
|
|
: [rslt] "=r" (result)
|
|
: [rodata_test] "r" (&rodata_test_data), [zero] "r" (0UL)
|
|
: [rodata_test] "r" (&rodata_test_data), [zero] "r" (0UL)
|
|
);
|
|
);
|