+1
−0
+2
−1
+1
−0
+2
−1
+57
−3
Loading
In some cases (i.e. under extreme memory pressure on the host), attempting to shadow memory will result in the same memory being unshadowed, causing a loop. Add a PGSTE bit to distinguish between shadowed memory and shadowed DAT tables, fix the unshadowing logic in _gmap_ptep_xchg() to prevent unnecessary unshadowing and perform better checks. Also fix the unshadowing logic in _gmap_crstep_xchg_atomic() which did not unshadow properly when the large page would become unprotected. Opportunistically add a check in gmap_protect_rmap() to make sure it won't be called with level == TABLE_TYPE_PAGE_TABLE. Signed-off-by:Claudio Imbrenda <imbrenda@linux.ibm.com> Fixes: a2c17f92 ("KVM: s390: New gmap code") Reviewed-by:
Christian Borntraeger <borntraeger@linux.ibm.com> Signed-off-by:
Christian Borntraeger <borntraeger@linux.ibm.com>