linux-stable/arch/s390/kvm
Christian Borntraeger 5df3b81a56 KVM: s390: vsie: fix race during shadow creation
[ Upstream commit fe752331d4 ]

Right now it is possible to see gmap->private being zero in
kvm_s390_vsie_gmap_notifier resulting in a crash.  This is due to the
fact that we add gmap->private == kvm after creation:

static int acquire_gmap_shadow(struct kvm_vcpu *vcpu,
                               struct vsie_page *vsie_page)
{
[...]
        gmap = gmap_shadow(vcpu->arch.gmap, asce, edat);
        if (IS_ERR(gmap))
                return PTR_ERR(gmap);
        gmap->private = vcpu->kvm;

Let children inherit the private field of the parent.

Reported-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Fixes: a3508fbe9d ("KVM: s390: vsie: initial support for nested virtualization")
Cc: <stable@vger.kernel.org>
Cc: David Hildenbrand <david@redhat.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Link: https://lore.kernel.org/r/20231220125317.4258-1-borntraeger@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-15 10:48:18 -04:00
..
Kconfig KVM: s390: pv: add mmu_notifier 2022-07-19 12:05:57 +00:00
Makefile KVM: s390: pci: add basic kvm_zdev structure 2022-07-11 09:54:27 +02:00
diag.c KVM: s390/diag: fix racy access of physical cpu number in diag 9c handler 2023-07-19 16:21:57 +02:00
gaccess.c KVM: s390: add stat counter for shadow gmap events 2024-03-15 10:48:18 -04:00
gaccess.h KVM: s390: Cleanup ipte lock access and SIIF facility checks 2022-07-20 10:57:36 +02:00
guestdbg.c
intercept.c KVM: s390: fix sthyi error handling 2023-08-11 12:08:11 +02:00
interrupt.c KVM: s390: interrupt: use READ_ONCE() before cmpxchg() 2023-02-01 08:34:32 +01:00
irq.h
kvm-s390.c KVM: s390: add stat counter for shadow gmap events 2024-03-15 10:48:18 -04:00
kvm-s390.h KVM: s390: pv: don't allow userspace to set the clock under PV 2022-11-07 10:14:15 +01:00
pci.c KVM: s390: pci: Fix allocation size of aift kzdev elements 2022-11-07 10:14:15 +01:00
pci.h KVM: s390: pci: fix plain integer as NULL pointer warnings 2022-09-21 16:18:30 +02:00
priv.c KVM: s390: guest support for topology function 2022-07-20 10:57:36 +02:00
pv.c KVM: s390: pv: destroy the configuration before its memory 2022-07-19 12:06:56 +00:00
sigp.c KVM: s390: pv: don't present the ecall interrupt twice 2022-07-19 15:48:14 +02:00
trace-s390.h
trace.h
vsie.c KVM: s390: vsie: fix race during shadow creation 2024-03-15 10:48:18 -04:00