Skip to content

Commit 0f54755

Browse files
author
Claudio Imbrenda
committed
KVM: s390: vsie: Fix dat_split_ste()
If the guest misbehaves and puts the page tables for its nested guest inside the memory of the nested guest itself, and the guest and nested guest are being mapped with large pages, the shadow mapping will lose synchronization with the actual mapping, since this will cause the large page with the vsie notification bit to be split, but the vsie notification bit will not be propagated to the resulting small pages. Fix this by propagating the vsie_notif bit from large pages to normal pages when splitting a large page. Fixes: 2db149a ("KVM: s390: KVM page table management functions: walks") Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com> Reviewed-by: Steffen Eiden <seiden@linux.ibm.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
1 parent 0138af2 commit 0f54755

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

arch/s390/kvm/dat.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ static int dat_split_ste(struct kvm_s390_mmu_cache *mc, union pmd *pmdp, gfn_t g
292292
pt->ptes[i].val = init.val | i * PAGE_SIZE;
293293
/* No need to take locks as the page table is not installed yet. */
294294
pgste_init.prefix_notif = old.s.fc1.prefix_notif;
295+
pgste_init.vsie_notif = old.s.fc1.vsie_notif;
295296
pgste_init.pcl = uses_skeys && init.h.i;
296297
dat_init_pgstes(pt, pgste_init.val);
297298
} else {

0 commit comments

Comments
 (0)