Re: [PATCH v1 01/11] KVM: s390: Properly handle NULL pointer in dat_cond_set_storage_key()

From: Christoph Schlameuss

Date: Wed Aug 12 2026 - 04:13:59 EST


On Tue Aug 11, 2026 at 5:56 PM CEST, Claudio Imbrenda wrote:
> Some callers pass NULL as oldkey. Calling page_cond_set_storage_key()
> will cause that NULL pointer to get dereferenced.
>
> Fix by checking for NULL and assigning the pointer to a dummy local
> variable to avoid crashes.
>
> Fixes: 8e03e8316eb2 ("KVM: s390: KVM page table management functions: storage keys")
> Signed-off-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx>

Reviewed-by: Christoph Schlameuss <schlameuss@xxxxxxxxxxxxx>

> ---
> arch/s390/kvm/dat.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/s390/kvm/dat.c b/arch/s390/kvm/dat.c
> index 3f2d6e8902d7..165c704fcf29 100644
> --- a/arch/s390/kvm/dat.c
> +++ b/arch/s390/kvm/dat.c
> @@ -722,9 +722,12 @@ int dat_cond_set_storage_key(struct kvm_s390_mmu_cache *mmc, union asce asce, gf
> if (rc)
> return rc;
>
> - if (!ptep)
> + if (!ptep) {
> + if (!oldkey)
> + oldkey = &prev;
> return page_cond_set_storage_key(large_crste_to_phys(*crstep, gfn), skey, oldkey,
> nq, mr, mc);
> + }
>
> old = pgste_get_lock(ptep);
> pgste = old;