From 091e46c6028619f536ff3f835b630850d2a5ef41 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 20 Jul 2020 08:52:10 +0200 Subject: [PATCH] 5.7-stable patches added patches: copy_xstate_to_kernel-fix-typo-which-caused-gdb-regression.patch --- ...fix-typo-which-caused-gdb-regression.patch | 47 +++++++++++++++++++ queue-5.7/series | 1 + 2 files changed, 48 insertions(+) create mode 100644 queue-5.7/copy_xstate_to_kernel-fix-typo-which-caused-gdb-regression.patch diff --git a/queue-5.7/copy_xstate_to_kernel-fix-typo-which-caused-gdb-regression.patch b/queue-5.7/copy_xstate_to_kernel-fix-typo-which-caused-gdb-regression.patch new file mode 100644 index 00000000000..f9d606bfc68 --- /dev/null +++ b/queue-5.7/copy_xstate_to_kernel-fix-typo-which-caused-gdb-regression.patch @@ -0,0 +1,47 @@ +From 5714ee50bb4375bd586858ad800b1d9772847452 Mon Sep 17 00:00:00 2001 +From: Kevin Buettner +Date: Sat, 18 Jul 2020 00:20:03 -0700 +Subject: copy_xstate_to_kernel: Fix typo which caused GDB regression + +From: Kevin Buettner + +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 +Fixes: 9e4636545933 ("copy_xstate_to_kernel(): don't leave parts of destination uninitialized") +Cc: Al Viro +Cc: Dave Airlie +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kernel/fpu/xstate.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/x86/kernel/fpu/xstate.c ++++ b/arch/x86/kernel/fpu/xstate.c +@@ -1022,7 +1022,7 @@ int copy_xstate_to_kernel(void *kbuf, st + 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: diff --git a/queue-5.7/series b/queue-5.7/series index 7fcbf7553ea..8bfb5f2ffca 100644 --- a/queue-5.7/series +++ b/queue-5.7/series @@ -114,3 +114,4 @@ arm64-dts-spcfpga-align-gic-nand-and-uart-nodenames-.patch keys-asymmetric-fix-error-return-code-in-software_ke.patch nvme-explicitly-update-mpath-disk-capacity-on-revali.patch regmap-debugfs-don-t-sleep-while-atomic-for-fast_io-.patch +copy_xstate_to_kernel-fix-typo-which-caused-gdb-regression.patch -- 2.47.3