virtio-blk: free vblk-vqs in error path of virtblk_probe()
authorHou Tao <houtao1@huawei.com>
Mon, 15 Jun 2020 04:14:59 +0000 (12:14 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jul 2020 07:37:54 +0000 (09:37 +0200)
[ Upstream commit e7eea44eefbdd5f0345a0a8b80a3ca1c21030d06 ]

Else there will be memory leak if alloc_disk() fails.

Fixes: 6a27b656fc02 ("block: virtio-blk: support multi virt queues per virtio-blk device")
Signed-off-by: Hou Tao <houtao1@huawei.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/block/virtio_blk.c

index 0cf2fe290230720fc731afb2b16dc17b09c73483..c1de270046bfee87fc9473b0df1ac05e442c5b25 100644 (file)
@@ -990,6 +990,7 @@ static int virtblk_probe(struct virtio_device *vdev)
        put_disk(vblk->disk);
 out_free_vq:
        vdev->config->del_vqs(vdev);
+       kfree(vblk->vqs);
 out_free_vblk:
        kfree(vblk);
 out_free_index: