| From 6fb7a975797c2e0f317ca6ee975b1dfb288b3335 Mon Sep 17 00:00:00 2001 |
| From: Kevin Buettner <kevinb@redhat.com> |
| Date: Sat, 18 Jul 2020 00:20:03 -0700 |
| Subject: [PATCH] copy_xstate_to_kernel: Fix typo which caused GDB regression |
| |
| commit 5714ee50bb4375bd586858ad800b1d9772847452 upstream. |
| |
| This fixes a regression encountered while running the |
| gdb.base/corefile.exp test in GDB's test suite. |
| |
| In my testing, the typo prevented the sw_reserved field of struct |
| fxregs_state from being output to the kernel XSAVES area. Thus the |
| correct mask corresponding to XCR0 was not present in the core file for |
| GDB to interrogate, resulting in the following behavior: |
| |
| [kev@f32-1 gdb]$ ./gdb -q testsuite/outputs/gdb.base/corefile/corefile testsuite/outputs/gdb.base/corefile/corefile.core |
| Reading symbols from testsuite/outputs/gdb.base/corefile/corefile... |
| [New LWP 232880] |
| |
| warning: Unexpected size of section `.reg-xstate/232880' in core file. |
| |
| With the typo fixed, the test works again as expected. |
| |
| Signed-off-by: Kevin Buettner <kevinb@redhat.com> |
| Fixes: 9e4636545933 ("copy_xstate_to_kernel(): don't leave parts of destination uninitialized") |
| Cc: Al Viro <viro@zeniv.linux.org.uk> |
| Cc: Dave Airlie <airlied@gmail.com> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c |
| index 68bf07f6dffe..085afecd878c 100644 |
| --- a/arch/x86/kernel/fpu/xstate.c |
| +++ b/arch/x86/kernel/fpu/xstate.c |
| @@ -1024,7 +1024,7 @@ int copy_xstate_to_kernel(void *kbuf, struct xregs_state *xsave, unsigned int of |
| copy_part(offsetof(struct fxregs_state, st_space), 128, |
| &xsave->i387.st_space, &kbuf, &offset_start, &count); |
| if (header.xfeatures & XFEATURE_MASK_SSE) |
| - copy_part(xstate_offsets[XFEATURE_MASK_SSE], 256, |
| + copy_part(xstate_offsets[XFEATURE_SSE], 256, |
| &xsave->i387.xmm_space, &kbuf, &offset_start, &count); |
| /* |
| * Fill xsave->i387.sw_reserved value for ptrace frame: |
| -- |
| 2.27.0 |
| |