Commit 3e2ddda6 authored by Eugenio Pérez's avatar Eugenio Pérez Committed by Michael S. Tsirkin
Browse files

vduse: refactor vdpa_dev_add for goto err handling



Next patches introduce more error paths in this function.  Refactor it
so they can be accommodated through gotos.

Acked-by: default avatarJason Wang <jasowang@redhat.com>
Reviewed-by: default avatarXie Yongji <xieyongji@bytedance.com>
Signed-off-by: default avatarEugenio Pérez <eperezma@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Message-Id: <20260119143306.1818855-8-eperezma@redhat.com>
parent 3543b04a
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -2171,21 +2171,27 @@ static int vdpa_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
						  dev->bounce_size);
	mutex_unlock(&dev->domain_lock);
	if (!dev->domain) {
		put_device(&dev->vdev->vdpa.dev);
		return -ENOMEM;
		ret = -ENOMEM;
		goto domain_err;
	}

	ret = _vdpa_register_device(&dev->vdev->vdpa, dev->vq_num);
	if (ret) {
		put_device(&dev->vdev->vdpa.dev);
		goto register_err;
	}

	return 0;

register_err:
	mutex_lock(&dev->domain_lock);
	vduse_domain_destroy(dev->domain);
	dev->domain = NULL;
	mutex_unlock(&dev->domain_lock);
		return ret;
	}

	return 0;
domain_err:
	put_device(&dev->vdev->vdpa.dev);

	return ret;
}

static void vdpa_dev_del(struct vdpa_mgmt_dev *mdev, struct vdpa_device *dev)