diff --git a/blacklist.conf b/blacklist.conf index 2acf061..552d696 100644 --- a/blacklist.conf +++ b/blacklist.conf @@ -160,3 +160,4 @@ f2a9797b4efe54c94cc5ceb82ce1a4fba8b70a51 # usb:xhci-mtk: reverting the above 424b650f35c77defbb3cbd6e5221d3697af42250 # cleanup, not needed thanks to our configuration 27e4b467d94e216b365da388358c9407af818662 # Duplicate of 320ad343ea3023b4035dc4b5091eb19060391dbc: drm/i915: Use the correct IRQ during resume 3dd6c11b60d2f1e4082221a8831f91093c4494aa # Duplicate of 91b96f0008a2d66d76b525556e4818f5a4a089e4: drm/i915: Drop all references to DRM IRQ midlayer +711885906b5c2df90746a51f4cd674f1ab9fbb1d # Kconfig item is not set in our trees diff --git a/patches.suse/x86-fpu-mask-out-the-invalid-mxcsr-bits-properly.patch b/patches.suse/x86-fpu-mask-out-the-invalid-mxcsr-bits-properly.patch new file mode 100644 index 0000000..587d0d4 --- /dev/null +++ b/patches.suse/x86-fpu-mask-out-the-invalid-mxcsr-bits-properly.patch @@ -0,0 +1,41 @@ +From: Borislav Petkov +Date: Fri, 15 Oct 2021 12:46:25 +0200 +Subject: x86/fpu: Mask out the invalid MXCSR bits properly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Git-commit: b2381acd3fd9bacd2c63f53b2c610c89959b31cc +Patch-mainline: v5.15-rc6 +References: bsc#1190497 + +This is a fix for the fix (yeah, /facepalm). + +The correct mask to use is not the negation of the MXCSR_MASK but the +actual mask which contains the supported bits in the MXCSR register. + +Reported and debugged by Ville Syrjälä + +Fixes: d298b03506d3 ("x86/fpu: Restore the masking out of reserved MXCSR bits") +Signed-off-by: Borislav Petkov +Tested-by: Ville Syrjälä +Tested-by: Ser Olmy +Cc: +Link: https://lore.kernel.org/r/YWgYIYXLriayyezv@intel.com +--- + arch/x86/kernel/fpu/signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c +index fa17a27390ab..831b25c5e705 100644 +--- a/arch/x86/kernel/fpu/signal.c ++++ b/arch/x86/kernel/fpu/signal.c +@@ -385,7 +385,7 @@ static int __fpu_restore_sig(void __user *buf, void __user *buf_fx, + return -EINVAL; + } else { + /* Mask invalid bits out for historical reasons (broken hardware). */ +- fpu->state.fxsave.mxcsr &= ~mxcsr_feature_mask; ++ fpu->state.fxsave.mxcsr &= mxcsr_feature_mask; + } + + /* Enforce XFEATURE_MASK_FPSSE when XSAVE is enabled */ + diff --git a/series.conf b/series.conf index d65eb1c..c00cf66 100644 --- a/series.conf +++ b/series.conf @@ -2889,6 +2889,7 @@ patches.suse/eeprom-93xx46-fix-MODULE_DEVICE_TABLE.patch patches.suse/driver-core-Reject-pointless-SYNC_STATE_ONLY-device-.patch patches.suse/drivers-bus-simple-pm-bus-Add-support-for-probing-si.patch + patches.suse/x86-fpu-mask-out-the-invalid-mxcsr-bits-properly.patch patches.suse/edac-armada-xp-fix-output-of-uncorrectable-error-counter.patch patches.suse/nvme-pci-Fix-abort-command-id.patch patches.suse/pata_legacy-fix-a-couple-uninitialized-variable-bugs.patch