Re: [PATCH V6 8/8] virtio: Intel IFC VF driver for VDPA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 3/18/2020 8:22 PM, Jason Gunthorpe wrote:
On Wed, Mar 18, 2020 at 04:03:27PM +0800, Jason Wang wrote:
From: Zhu Lingshan <lingshan.zhu@xxxxxxxxx>
+
+static int ifcvf_vdpa_attach(struct ifcvf_adapter *adapter)
+{
+	int ret;
+
+	adapter->vdpa_dev  = vdpa_alloc_device(adapter->dev, adapter->dev,
+					       &ifc_vdpa_ops);
+	if (IS_ERR(adapter->vdpa_dev)) {
+		IFCVF_ERR(adapter->dev, "Failed to init ifcvf on vdpa bus");
+		put_device(&adapter->vdpa_dev->dev);
+		return -ENODEV;
+	}
The point of having an alloc call is so that the drivers
ifcvf_adaptor memory could be placed in the same struct - eg use
container_of to flip between them, and have a kref for both memories.

It seem really weird to have an alloc followed immediately by
register.

Hi Jason,

Thanks for your comments, but I failed to understand this. In IFCVF driver, we call ifcvf_vdpa_attach() at the end at probe(), at this point, PCIE initialization almost done, then try to alloc vdpa device, if successful, we can register it to VDPA bus.

Are you suggesting to wait for anything else done?

THanks,
BR
Zhu Linghsan

diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c
index c30eb55030be..de64b88ee7e4 100644
+++ b/drivers/virtio/virtio_vdpa.c
@@ -362,6 +362,7 @@ static int virtio_vdpa_probe(struct vdpa_device *vdpa)
  		goto err;
vdpa_set_drvdata(vdpa, vd_dev);
+	dev_info(vd_dev->vdev.dev.parent, "device attached to VDPA bus\n");
return 0;
This hunk seems out of place

Jason



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux