x86, extable: Use .pushsection ... .popsection for _ASM_EXTABLE()
authorH. Peter Anvin <hpa@zytor.com>
Fri, 20 Apr 2012 19:12:27 +0000 (12:12 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Fri, 20 Apr 2012 20:51:38 +0000 (13:51 -0700)
Instead of using .section ... .previous, use .pushsection
... .popsection; this is (hopefully) a bit more robust, especially in
complex assembly code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: David Daney <david.daney@cavium.com>
Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
arch/x86/include/asm/asm.h

index 9412d6558c88099e428dc370366bfd9db663546b..ff3f6bffcbf9595fd56b366923c890c10948f66b 100644 (file)
 
 /* Exception table entry */
 #ifdef __ASSEMBLY__
-# define _ASM_EXTABLE(from,to)     \
-       __ASM_EX_SEC ;              \
-       _ASM_ALIGN ;                \
-       _ASM_PTR from , to ;        \
-       .previous
+# define _ASM_EXTABLE(from,to)                 \
+       .pushsection "__ex_table","a" ;         \
+       _ASM_ALIGN ;                            \
+       _ASM_PTR from , to ;                    \
+       .popsection
 #else
-# define _ASM_EXTABLE(from,to) \
-       __ASM_EX_SEC    \
-       _ASM_ALIGN "\n" \
-       _ASM_PTR #from "," #to "\n" \
-       " .previous\n"
+# define _ASM_EXTABLE(from,to)                 \
+       " .pushsection \"__ex_table\",\"a\"\n"  \
+       _ASM_ALIGN "\n"                         \
+       _ASM_PTR #from "," #to "\n"             \
+       " .popsection\n"
 #endif
 
 #endif /* _ASM_X86_ASM_H */
This page took 0.027345 seconds and 5 git commands to generate.