x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_noc...
authorH. Peter Anvin <hpa@zytor.com>
Fri, 20 Apr 2012 19:19:51 +0000 (12:19 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 1 Apr 2016 00:54:33 +0000 (01:54 +0100)
commit 0d8559feafbc9dc5a2c17ba42aea7de824b18308 upstream.

Remove open-coded exception table entries in arch/x86/lib/copy_user_nocache_64.S,
and replace them with _ASM_EXTABLE() macros; this will allow us to
change the format and type of the exception table entries.

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
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/x86/lib/copy_user_nocache_64.S

index cb0c112..cacddc7 100644 (file)
@@ -14,6 +14,7 @@
 #include <asm/current.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 #include <asm/current.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
+#include <asm/asm.h>
 
        .macro ALIGN_DESTINATION
 #ifdef FIX_ALIGNMENT
 
        .macro ALIGN_DESTINATION
 #ifdef FIX_ALIGNMENT
        jmp copy_user_handle_tail
        .previous
 
        jmp copy_user_handle_tail
        .previous
 
-       .section __ex_table,"a"
-       .align 8
-       .quad 100b,103b
-       .quad 101b,103b
-       .previous
+       _ASM_EXTABLE(100b,103b)
+       _ASM_EXTABLE(101b,103b)
 #endif
        .endm
 
 #endif
        .endm
 
@@ -111,27 +109,25 @@ ENTRY(__copy_user_nocache)
        jmp copy_user_handle_tail
        .previous
 
        jmp copy_user_handle_tail
        .previous
 
-       .section __ex_table,"a"
-       .quad 1b,30b
-       .quad 2b,30b
-       .quad 3b,30b
-       .quad 4b,30b
-       .quad 5b,30b
-       .quad 6b,30b
-       .quad 7b,30b
-       .quad 8b,30b
-       .quad 9b,30b
-       .quad 10b,30b
-       .quad 11b,30b
-       .quad 12b,30b
-       .quad 13b,30b
-       .quad 14b,30b
-       .quad 15b,30b
-       .quad 16b,30b
-       .quad 18b,40b
-       .quad 19b,40b
-       .quad 21b,50b
-       .quad 22b,50b
-       .previous
+       _ASM_EXTABLE(1b,30b)
+       _ASM_EXTABLE(2b,30b)
+       _ASM_EXTABLE(3b,30b)
+       _ASM_EXTABLE(4b,30b)
+       _ASM_EXTABLE(5b,30b)
+       _ASM_EXTABLE(6b,30b)
+       _ASM_EXTABLE(7b,30b)
+       _ASM_EXTABLE(8b,30b)
+       _ASM_EXTABLE(9b,30b)
+       _ASM_EXTABLE(10b,30b)
+       _ASM_EXTABLE(11b,30b)
+       _ASM_EXTABLE(12b,30b)
+       _ASM_EXTABLE(13b,30b)
+       _ASM_EXTABLE(14b,30b)
+       _ASM_EXTABLE(15b,30b)
+       _ASM_EXTABLE(16b,30b)
+       _ASM_EXTABLE(18b,40b)
+       _ASM_EXTABLE(19b,40b)
+       _ASM_EXTABLE(21b,50b)
+       _ASM_EXTABLE(22b,50b)
        CFI_ENDPROC
 ENDPROC(__copy_user_nocache)
        CFI_ENDPROC
 ENDPROC(__copy_user_nocache)