vdpa_sim_blk: Fix the potential leak of mgmt_dev
authorShawn.Shao <shawn.shao@jaguarmicro.com>
Mon, 21 Aug 2023 06:03:33 +0000 (14:03 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 18 Oct 2023 15:28:47 +0000 (11:28 -0400)
If the shared_buffer allocation fails, need to unregister mgmt_dev first.

Cc: stable@vger.kernel.org
Fixes: abebb16254b36 ("vdpa_sim_blk: support shared backend")
Signed-off-by: Shawn.Shao <shawn.shao@jaguarmicro.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20230821060333.1155-1-shawn.shao@jaguarmicro.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vdpa/vdpa_sim/vdpa_sim_blk.c

index 00d7d72..b3a3cb1 100644 (file)
@@ -499,12 +499,13 @@ static int __init vdpasim_blk_init(void)
                                         GFP_KERNEL);
                if (!shared_buffer) {
                        ret = -ENOMEM;
                                         GFP_KERNEL);
                if (!shared_buffer) {
                        ret = -ENOMEM;
-                       goto parent_err;
+                       goto mgmt_dev_err;
                }
        }
 
        return 0;
                }
        }
 
        return 0;
-
+mgmt_dev_err:
+       vdpa_mgmtdev_unregister(&mgmt_dev);
 parent_err:
        device_unregister(&vdpasim_blk_mgmtdev);
        return ret;
 parent_err:
        device_unregister(&vdpasim_blk_mgmtdev);
        return ret;