]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mshv: Fix missing error code on VP allocation failure
authorStanislav Kinsburskii <skinsburskii@linux.microsoft.com>
Thu, 7 May 2026 15:44:37 +0000 (15:44 +0000)
committerWei Liu <wei.liu@kernel.org>
Fri, 31 Jul 2026 20:01:57 +0000 (20:01 +0000)
In mshv_partition_ioctl_create_vp(), when kzalloc for the VP struct
fails, the code jumps to the cleanup path without setting ret. At that
point ret is 0 from the preceding successful mshv_vp_stats_map() call,
so the function returns success to userspace despite having failed to
create the VP. No fd is installed and no VP is registered in pt_vp_array,
but userspace has no way to know the operation failed.

Set ret to -ENOMEM before jumping to the cleanup path.

Fixes: 621191d709b14 ("Drivers: hv: Introduce mshv_root module to expose /dev/mshv to VMMs")
Signed-off-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com>
Reviewed-by: Anirudh Rayabharam (Microsoft) <anirudh@anirudhrb.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
drivers/hv/mshv_root_main.c

index 146726cc4e9ba83025acebc81c0d6eb9302a27ab..644f9b10cbba4131b975e24bd79f6afab8407faf 100644 (file)
@@ -1117,8 +1117,10 @@ mshv_partition_ioctl_create_vp(struct mshv_partition *partition,
                goto unmap_ghcb_page;
 
        vp = kzalloc_obj(*vp);
-       if (!vp)
+       if (!vp) {
+               ret = -ENOMEM;
                goto unmap_stats_pages;
+       }
 
        vp->vp_partition = mshv_partition_get(partition);
        if (!vp->vp_partition) {