Commit 69065847 authored by Tony Luck's avatar Tony Luck Committed by Borislav Petkov
Browse files

x86/mce: Drop copyin special case for #MC



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: default avatarTony Luck <tony.luck@intel.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20210818002942.1607544-4-tony.luck@intel.com
parent a6e3cf70
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -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)