x86/mce: Drop copyin special case for #MC
authorTony Luck <tony.luck@intel.com>
Wed, 18 Aug 2021 00:29:42 +0000 (17:29 -0700)
committerBorislav Petkov <bp@suse.de>
Mon, 20 Sep 2021 19:18:23 +0000 (21:18 +0200)
Fixes to the iterator code to handle faults that are not on page
boundaries mean that the special case for machine check during copy from
user is no longer needed.

For a full list of those fixes, see the output of:

  git log --oneline v5.14 ^v5.13 -- lib/iov_iter.c

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20210818002942.1607544-4-tony.luck@intel.com
arch/x86/lib/copy_user_64.S

index 57b79c5..2797e63 100644 (file)
@@ -234,24 +234,11 @@ EXPORT_SYMBOL(copy_user_enhanced_fast_string)
  */
 SYM_CODE_START_LOCAL(.Lcopy_user_handle_tail)
        movl %edx,%ecx
-       cmp $X86_TRAP_MC,%eax           /* check if X86_TRAP_MC */
-       je 3f
 1:     rep movsb
 2:     mov %ecx,%eax
        ASM_CLAC
        ret
 
-       /*
-        * Return zero to pretend that this copy succeeded. This
-        * is counter-intuitive, but needed to prevent the code
-        * in lib/iov_iter.c from retrying and running back into
-        * the poison cache line again. The machine check handler
-        * will ensure that a SIGBUS is sent to the task.
-        */
-3:     xorl %eax,%eax
-       ASM_CLAC
-       ret
-
        _ASM_EXTABLE_CPY(1b, 2b)
 SYM_CODE_END(.Lcopy_user_handle_tail)