On Thu, Feb 26, 2026 at 11:31 PM Evgenii Burenchev <[email protected]> wrote: > > 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 <[email protected]> > --- > drivers/vdpa/ifcvf/ifcvf_main.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c > index d46c1606c97a..ab6d6ab3b3d8 100644 > --- a/drivers/vdpa/ifcvf/ifcvf_main.c > +++ b/drivers/vdpa/ifcvf/ifcvf_main.c > @@ -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) > -- > 2.43.0 >
Acked-by: Zhu Lingshan <[email protected]>

