| From 90c6b9e54a96652f4f2354332573d6c70d29b833 Mon Sep 17 00:00:00 2001 |
| From: Tony Luck <tony.luck@intel.com> |
| Date: Mon, 20 Mar 2017 14:40:30 -0700 |
| Subject: [PATCH] x86/mce: Fix copy/paste error in exception table entries |
| |
| commit 26a37ab319a26d330bab298770d692bb9c852aff upstream. |
| |
| Back in commit: |
| |
| 92b0729c34cab ("x86/mm, x86/mce: Add memcpy_mcsafe()") |
| |
| ... I made a copy/paste error setting up the exception table entries |
| and ended up with two for label .L_cache_w3 and none for .L_cache_w2. |
| |
| This means that if we take a machine check on: |
| |
| .L_cache_w2: movq 2*8(%rsi), %r10 |
| |
| then we don't have an exception table entry for this instruction |
| and we can't recover. |
| |
| Fix: s/3/2/ |
| |
| Signed-off-by: Tony Luck <tony.luck@intel.com> |
| Cc: <stable@vger.kernel.org> |
| Cc: Andy Lutomirski <luto@kernel.org> |
| Cc: Borislav Petkov <bp@alien8.de> |
| Cc: Brian Gerst <brgerst@gmail.com> |
| Cc: Denys Vlasenko <dvlasenk@redhat.com> |
| Cc: H. Peter Anvin <hpa@zytor.com> |
| Cc: Josh Poimboeuf <jpoimboe@redhat.com> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Fixes: 92b0729c34cab ("x86/mm, x86/mce: Add memcpy_mcsafe()") |
| Link: http://lkml.kernel.org/r/1490046030-25862-1-git-send-email-tony.luck@intel.com |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S |
| index 2ec0b0abbfaa..cd30e44bea77 100644 |
| --- a/arch/x86/lib/memcpy_64.S |
| +++ b/arch/x86/lib/memcpy_64.S |
| @@ -286,7 +286,7 @@ ENDPROC(memcpy_mcsafe) |
| _ASM_EXTABLE_FAULT(.L_copy_leading_bytes, .L_memcpy_mcsafe_fail) |
| _ASM_EXTABLE_FAULT(.L_cache_w0, .L_memcpy_mcsafe_fail) |
| _ASM_EXTABLE_FAULT(.L_cache_w1, .L_memcpy_mcsafe_fail) |
| - _ASM_EXTABLE_FAULT(.L_cache_w3, .L_memcpy_mcsafe_fail) |
| + _ASM_EXTABLE_FAULT(.L_cache_w2, .L_memcpy_mcsafe_fail) |
| _ASM_EXTABLE_FAULT(.L_cache_w3, .L_memcpy_mcsafe_fail) |
| _ASM_EXTABLE_FAULT(.L_cache_w4, .L_memcpy_mcsafe_fail) |
| _ASM_EXTABLE_FAULT(.L_cache_w5, .L_memcpy_mcsafe_fail) |
| -- |
| 2.12.0 |
| |