FAILED: patch "[PATCH] KVM: s390: do not clobber registers during guest reset/store" failed to apply to 4.14-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 55680890ea78be0df5e1384989f1be835043c084 Mon Sep 17 00:00:00 2001
From: Christian Borntraeger <[email protected]>
Date: Fri, 31 Jan 2020 05:02:00 -0500
Subject: [PATCH] KVM: s390: do not clobber registers during guest reset/store
status
The initial CPU reset clobbers the userspace fpc and the store status ioctl clobbers the guest acrs + fpr. As these calls are only done via ioctl (and not via vcpu_run), no CPU context is loaded, so we can (and must) act directly on the sync regs, not on the thread context.
arch/s390/kvm/kvm-s390.c +2 -4
@@ -2860,9 +2860,7 @@ static void kvm_s390_vcpu_initial_reset(struct kvm_vcpu *vcpu) vcpu->arch.sie_block->gcr[14 ] =CR14_UNUSED_32 |CR14_UNUSED_33 |CR14_EXTERNAL_DAMAGE_SUBMASK ; -/* make sure the new fpc will be lazily loaded */ -save_fpu_regs (); - current->thread.fpu.fpc =0 ; + vcpu->run->s.regs.fpc =0 ; vcpu->arch.sie_block->gbea =1 ; vcpu->arch.sie_block->pp =0 ; vcpu->arch.sie_block->fpf &= ~FPF_BPBC ;
@@ -4351,7 +4349,7 @@ long kvm_arch_vcpu_ioctl(struct file *filp,switch (ioctl) {case KVM_S390_STORE_STATUS : idx =srcu_read_lock (&vcpu->kvm->srcu); - r =kvm_s390_vcpu_store_status (vcpu, arg); + r =kvm_s390_store_status_unloaded (vcpu, arg);srcu_read_unlock (&vcpu->kvm->srcu, idx);break ;case KVM_S390_SET_INITIAL_PSW : {
Sasha Levin
maintainerQuoted 23 lines · On Sun, Feb 09, 2020 at 01:37:35PM +0100, [email protected] wrote:
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From
55680890ea78be0df5e1384989f1be835043c084Mon Sep 17 00:00:00 2001
From: Christian Borntraeger <[email protected]>
Date: Fri, 31 Jan 2020 05:02:00 -0500
Subject: [PATCH] KVM: s390: do not clobber registers during guest reset/store statusThe initial CPU reset clobbers the userspace fpc and the store status ioctl clobbers the guest acrs + fpr. As these calls are only done via ioctl (and not via
vcpu_run), no CPU context is loaded, so we can (and must) act directly on the sync regs, not on the thread context.
Quoted 9 lines
Fixes e1788bb995be ("KVM: s390: handle floating point registers in the run ioctl not in vcpu_put/load")Fixes 31d8b8d41a7e ("KVM: s390: handle access registers in the run ioctl not in vcpu_put/load")Signed-off-by Christian Borntraeger <[email protected]>Reviewed-by David Hildenbrand <[email protected]>Reviewed-by Cornelia Huck <[email protected]>Signed-off-by Janosch Frank <[email protected]>Signed-off-by Christian Borntraeger <[email protected]>
This was a context conflict because we don't have b9224cd7381a ("KVM:
s390: introduce defines for control registers") on 4.14. I've fixed it and queued it up on 4.14.
Signature · 2 lines
Thanks, Sasha