mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 01:32:21 +02:00
vdpa/ifcvf: handle dev_set_name() failure in ifcvf_vdpa_dev_add()
dev_set_name() may fail and return an error, but its return value is currently ignored and overwritten by _vdpa_register_device(). Abort device creation if dev_set_name() fails and release the device reference to avoid continuing with an improperly initialized struct device. Found by Linux Verification Center (linuxtesting.org) with SVACE. Signed-off-by: Evgenii Burenchev <evg28bur@yandex.ru> Acked-by: Jason Wang <jasowang@redhat.com> Acked-by: Zhu Lingshan <lingshan.zhu@kernel.org> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Message-ID: <20260226152924.38790-1-evg28bur@yandex.ru>
This commit is contained in:
parent
b3592a32b3
commit
4c653e8585
|
|
@ -734,15 +734,22 @@ static int ifcvf_vdpa_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
|
|||
ret = dev_set_name(&vdpa_dev->dev, "%s", name);
|
||||
else
|
||||
ret = dev_set_name(&vdpa_dev->dev, "vdpa%u", vdpa_dev->index);
|
||||
if (ret) {
|
||||
IFCVF_ERR(pdev, "Failed to set device name");
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = _vdpa_register_device(&adapter->vdpa, vf->nr_vring);
|
||||
if (ret) {
|
||||
put_device(&adapter->vdpa.dev);
|
||||
IFCVF_ERR(pdev, "Failed to register to vDPA bus");
|
||||
return ret;
|
||||
goto err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
put_device(&adapter->vdpa.dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void ifcvf_vdpa_dev_del(struct vdpa_mgmt_dev *mdev, struct vdpa_device *dev)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user