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:39:35 +0000 (09:39 +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 9d21bf0f155eed65fa150d71e6b92104fd701960..980df853ee4970ba4c4291bb9bd4d0c382c97307 100644 (file)
@@ -878,6 +878,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: