Skip to contentSkip to conversation

Patch "s390/fpu: signals vs. floating point control register" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Mar 1, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

s390/fpu: signals vs. floating point control register

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
s390-fpu-signals-vs.-floating-point-control-register.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 1b17cb796f5d40ffa239c6926385abd83a77a49b Mon Sep 17 00:00:00 2001

From: Martin Schwidefsky <[email protected]>
Date: Fri, 19 Feb 2016 15:29:05 +0100
Subject: s390/fpu: signals vs. floating point control register

From: Martin Schwidefsky <[email protected]>

commit 1b17cb796f5d40ffa239c6926385abd83a77a49b upstream.

git commit 904818e2f229f3d94ec95f6932a6358c81e73d78 "s390/kernel: introduce fpu-internal.h with fpu helper functions" introduced the fpregs_store / fp_regs_load helper. These function fail to save and restore the floating pointer control registers.

The effect is that the FPC is not correctly handled on signal delivery and signal return.

---
 arch/s390/include/asm/fpu/internal.h |    2 ++
 1 file changed, 2 insertions(+)
arch/s390/include/asm/fpu/internal.h +2 -0
@@ -48,6 +48,7 @@ static inline void convert_fp_to_vx(__ve
 static inline void fpregs_store(_s390_fp_regs *fpregs, struct fpu *fpu)
 {
 	fpregs->pad = 0;
+	fpregs->fpc = fpu->fpc;
 	if (MACHINE_HAS_VX)
 		convert_vx_to_fp((freg_t *)&fpregs->fprs, fpu->vxrs);
 	else
@@ -57,6 +58,7 @@ static inline void fpregs_store(_s390_fp
 
 static inline void fpregs_load(_s390_fp_regs *fpregs, struct fpu *fpu)
 {
+	fpu->fpc = fpregs->fpc;
 	if (MACHINE_HAS_VX)
 		convert_fp_to_vx(fpu->vxrs, (freg_t *)&fpregs->fprs);
 	else

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/s390-kvm-remove-dependency-on-struct-save_area-definition.patch queue-4.4/s390-fix-normalization-bug-in-exception-table-sorting.patch queue-4.4/s390-dasd-prevent-incorrect-length-error-under-z-vm-after-pav-changes.patch queue-4.4/s390-fpu-signals-vs.-floating-point-control-register.patch queue-4.4/s390-dasd-fix-refcount-for-pav-reassignment.patch queue-4.4/s390-compat-correct-restore-of-high-gprs-on-signal-return.patch queue-4.4/s390-dasd-fix-performance-drop.patch