vdpa: Fix an error handling path in eni_vdpa_probe()
[ Upstream commitc1b9f2c66e
] After a successful vp_legacy_probe() call, vp_legacy_remove() should be called in the error handling path, as already done in the remove function. Add the missing call. Fixes:e85087beed
("eni_vdpa: add vDPA driver for Alibaba ENI") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Message-Id: <a7b0ef1eabd081f1c7c894e9b11de01678e85dee.1666293559.git.christophe.jaillet@wanadoo.fr> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
b2cb99d26e
commit
8ed3eb92a5
|
@ -497,7 +497,7 @@ static int eni_vdpa_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||||
if (!eni_vdpa->vring) {
|
if (!eni_vdpa->vring) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
ENI_ERR(pdev, "failed to allocate virtqueues\n");
|
ENI_ERR(pdev, "failed to allocate virtqueues\n");
|
||||||
goto err;
|
goto err_remove_vp_legacy;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < eni_vdpa->queues; i++) {
|
for (i = 0; i < eni_vdpa->queues; i++) {
|
||||||
|
@ -509,11 +509,13 @@ static int eni_vdpa_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||||
ret = vdpa_register_device(&eni_vdpa->vdpa, eni_vdpa->queues);
|
ret = vdpa_register_device(&eni_vdpa->vdpa, eni_vdpa->queues);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
ENI_ERR(pdev, "failed to register to vdpa bus\n");
|
ENI_ERR(pdev, "failed to register to vdpa bus\n");
|
||||||
goto err;
|
goto err_remove_vp_legacy;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
err_remove_vp_legacy:
|
||||||
|
vp_legacy_remove(&eni_vdpa->ldev);
|
||||||
err:
|
err:
|
||||||
put_device(&eni_vdpa->vdpa.dev);
|
put_device(&eni_vdpa->vdpa.dev);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue