From: Christian Borntraeger Date: Tue, 17 Nov 2020 19:00:33 +0000 (+0100) Subject: s390/uv: handle destroy page legacy interface X-Git-Tag: v5.15~2265^2~11^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4c80d05714d347405865802b7098f1c97362cbef;p=platform%2Fkernel%2Flinux-starfive.git s390/uv: handle destroy page legacy interface Older firmware can return rc=0x107 rrc=0xd for destroy page if the page is already non-secure. This should be handled like a success as already done by newer firmware. Signed-off-by: Christian Borntraeger Fixes: 1a80b54d1ce1 ("s390/uv: add destroy page call") Reviewed-by: David Hildenbrand Acked-by: Cornelia Huck Reviewed-by: Janosch Frank --- diff --git a/arch/s390/kernel/uv.c b/arch/s390/kernel/uv.c index 14bd9d5..883bfed 100644 --- a/arch/s390/kernel/uv.c +++ b/arch/s390/kernel/uv.c @@ -129,8 +129,15 @@ int uv_destroy_page(unsigned long paddr) .paddr = paddr }; - if (uv_call(0, (u64)&uvcb)) + if (uv_call(0, (u64)&uvcb)) { + /* + * Older firmware uses 107/d as an indication of a non secure + * page. Let us emulate the newer variant (no-op). + */ + if (uvcb.header.rc == 0x107 && uvcb.header.rrc == 0xd) + return 0; return -EINVAL; + } return 0; }