]> Git Repo - linux.git/commitdiff
copy_xstate_to_kernel: Fix typo which caused GDB regression
authorKevin Buettner <[email protected]>
Sat, 18 Jul 2020 07:20:03 +0000 (00:20 -0700)
committerLinus Torvalds <[email protected]>
Mon, 20 Jul 2020 00:09:10 +0000 (17:09 -0700)
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 <[email protected]>
Fixes: 9e4636545933 ("copy_xstate_to_kernel(): don't leave parts of destination uninitialized")
Cc: Al Viro <[email protected]>
Cc: Dave Airlie <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
arch/x86/kernel/fpu/xstate.c

index bda2e5eaca0e0c5eb618f0a48ba3b064eb1fc412..ad3a2b37927d9792028856ba92453f48a97187da 100644 (file)
@@ -1074,7 +1074,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:
This page took 0.058927 seconds and 4 git commands to generate.