]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
copy_xstate_to_kernel: Fix typo which caused GDB regression
authorKevin Buettner <kevinb@redhat.com>
Sat, 18 Jul 2020 07:20:03 +0000 (00:20 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Jul 2020 07:33:04 +0000 (09:33 +0200)
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/fpu/xstate.c

index c94fec268ef24582a3360b66a5c10ec427207afa..755eb26cbec04304f9f016719c101de9ff87dcb7 100644 (file)
@@ -1017,7 +1017,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: