Merge tag 'ras_updates_for_v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / x86 / lib / memcpy_64.S
index bbcc05bcefadb267e954714efc85591eebf89b4a..037faac46b0cc92f2a31297910ea63b35d10d83b 100644 (file)
@@ -4,7 +4,6 @@
 #include <linux/linkage.h>
 #include <asm/errno.h>
 #include <asm/cpufeatures.h>
-#include <asm/mcsafe_test.h>
 #include <asm/alternative-asm.h>
 #include <asm/export.h>
 
@@ -187,117 +186,3 @@ SYM_FUNC_START_LOCAL(memcpy_orig)
 SYM_FUNC_END(memcpy_orig)
 
 .popsection
-
-#ifndef CONFIG_UML
-
-MCSAFE_TEST_CTL
-
-/*
- * __memcpy_mcsafe - memory copy with machine check exception handling
- * Note that we only catch machine checks when reading the source addresses.
- * Writes to target are posted and don't generate machine checks.
- */
-SYM_FUNC_START(__memcpy_mcsafe)
-       cmpl $8, %edx
-       /* Less than 8 bytes? Go to byte copy loop */
-       jb .L_no_whole_words
-
-       /* Check for bad alignment of source */
-       testl $7, %esi
-       /* Already aligned */
-       jz .L_8byte_aligned
-
-       /* Copy one byte at a time until source is 8-byte aligned */
-       movl %esi, %ecx
-       andl $7, %ecx
-       subl $8, %ecx
-       negl %ecx
-       subl %ecx, %edx
-.L_read_leading_bytes:
-       movb (%rsi), %al
-       MCSAFE_TEST_SRC %rsi 1 .E_leading_bytes
-       MCSAFE_TEST_DST %rdi 1 .E_leading_bytes
-.L_write_leading_bytes:
-       movb %al, (%rdi)
-       incq %rsi
-       incq %rdi
-       decl %ecx
-       jnz .L_read_leading_bytes
-
-.L_8byte_aligned:
-       movl %edx, %ecx
-       andl $7, %edx
-       shrl $3, %ecx
-       jz .L_no_whole_words
-
-.L_read_words:
-       movq (%rsi), %r8
-       MCSAFE_TEST_SRC %rsi 8 .E_read_words
-       MCSAFE_TEST_DST %rdi 8 .E_write_words
-.L_write_words:
-       movq %r8, (%rdi)
-       addq $8, %rsi
-       addq $8, %rdi
-       decl %ecx
-       jnz .L_read_words
-
-       /* Any trailing bytes? */
-.L_no_whole_words:
-       andl %edx, %edx
-       jz .L_done_memcpy_trap
-
-       /* Copy trailing bytes */
-       movl %edx, %ecx
-.L_read_trailing_bytes:
-       movb (%rsi), %al
-       MCSAFE_TEST_SRC %rsi 1 .E_trailing_bytes
-       MCSAFE_TEST_DST %rdi 1 .E_trailing_bytes
-.L_write_trailing_bytes:
-       movb %al, (%rdi)
-       incq %rsi
-       incq %rdi
-       decl %ecx
-       jnz .L_read_trailing_bytes
-
-       /* Copy successful. Return zero */
-.L_done_memcpy_trap:
-       xorl %eax, %eax
-.L_done:
-       ret
-SYM_FUNC_END(__memcpy_mcsafe)
-EXPORT_SYMBOL_GPL(__memcpy_mcsafe)
-
-       .section .fixup, "ax"
-       /*
-        * Return number of bytes not copied for any failure. Note that
-        * there is no "tail" handling since the source buffer is 8-byte
-        * aligned and poison is cacheline aligned.
-        */
-.E_read_words:
-       shll    $3, %ecx
-.E_leading_bytes:
-       addl    %edx, %ecx
-.E_trailing_bytes:
-       mov     %ecx, %eax
-       jmp     .L_done
-
-       /*
-        * For write fault handling, given the destination is unaligned,
-        * we handle faults on multi-byte writes with a byte-by-byte
-        * copy up to the write-protected page.
-        */
-.E_write_words:
-       shll    $3, %ecx
-       addl    %edx, %ecx
-       movl    %ecx, %edx
-       jmp mcsafe_handle_tail
-
-       .previous
-
-       _ASM_EXTABLE_FAULT(.L_read_leading_bytes, .E_leading_bytes)
-       _ASM_EXTABLE_FAULT(.L_read_words, .E_read_words)
-       _ASM_EXTABLE_FAULT(.L_read_trailing_bytes, .E_trailing_bytes)
-       _ASM_EXTABLE(.L_write_leading_bytes, .E_leading_bytes)
-       _ASM_EXTABLE(.L_write_words, .E_write_words)
-       _ASM_EXTABLE(.L_write_trailing_bytes, .E_trailing_bytes)
-#endif