x86/checksum_32: Remove .fixup usage
authorPeter Zijlstra <peterz@infradead.org>
Wed, 10 Nov 2021 10:01:19 +0000 (11:01 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Sat, 11 Dec 2021 08:09:49 +0000 (09:09 +0100)
Simply add EX_FLAG_CLEAR_AX to do as the .fixup used to do.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20211110101325.899657959@infradead.org
arch/x86/lib/checksum_32.S

index 929ad17..23318c3 100644 (file)
@@ -260,9 +260,9 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst,
  * Copy from ds while checksumming, otherwise like csum_partial
  */
 
-#define EXC(y...)                      \
-       9999: y;                        \
-       _ASM_EXTABLE_UA(9999b, 6001f)
+#define EXC(y...)                                              \
+       9999: y;                                                \
+       _ASM_EXTABLE_TYPE(9999b, 7f, EX_TYPE_UACCESS | EX_FLAG_CLEAR_AX)
 
 #ifndef CONFIG_X86_USE_PPRO_CHECKSUM
 
@@ -358,15 +358,6 @@ EXC(       movb %cl, (%edi)        )
        adcl $0, %eax
 7:
 
-# Exception handler:
-.section .fixup, "ax"                                                  
-
-6001:
-       xorl %eax, %eax
-       jmp 7b
-
-.previous
-
        popl %ebx
        popl %esi
        popl %edi
@@ -439,10 +430,6 @@ EXC(       movb %dl, (%edi)         )
 6:     addl %edx, %eax
        adcl $0, %eax
 7:
-.section .fixup, "ax"
-6001:  xorl %eax, %eax
-       jmp  7b                 
-.previous                              
 
        popl %esi
        popl %edi