Commit b95e0e79 authored by Heiko Carstens's avatar Heiko Carstens Committed by Alexander Gordeev
Browse files

s390/mm: Fix phys_to_folio() usage in do_secure_storage_access()



In case of a Secure-Storage-Access exception the effective aka virtual
address which caused the exception is contained within the TEID.

do_secure_storage_access() incorrectly uses phys_to_folio() instead of
virt_to_folio() to translate the virtual address to the corresponding
folio.

Fix this by using virt_to_folio() instead of phys_to_folio().

Fixes: 084ea4d6 ("s390/mm: add (non)secure page access exceptions handlers")
Reviewed-by: default avatarChristian Borntraeger <borntraeger@linux.ibm.com>
Reviewed-by: default avatarClaudio Imbrenda <imbrenda@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
parent 8587af9c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -438,7 +438,7 @@ void do_secure_storage_access(struct pt_regs *regs)
		panic("Unexpected PGM 0x3d with TEID bit 61=0");
	}
	if (is_kernel_fault(regs)) {
		folio = phys_to_folio(addr);
		folio = virt_to_folio((void *)addr);
		if (unlikely(!folio_try_get(folio)))
			return;
		rc = uv_convert_from_secure(folio_to_phys(folio));