mirror of
https://github.com/apache/nuttx.git
synced 2026-10-06 22:05:21 +00:00
virtio/vhost: assign the virtio/vhost_drvier to device->priv before probe
So the driver can get the driver pointer by vdev/hdev->priv, and later vdev/hdev->priv can be used to store other data such as the virtio/vhost drivers' private data. Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
This commit is contained in:
parent
c42576e87b
commit
51d6e8f49e
2 changed files with 7 additions and 5 deletions
|
|
@ -130,13 +130,13 @@ static void vhost_defered_probe_work(FAR void *arg)
|
|||
{
|
||||
if (item->device->id.device == driver->device)
|
||||
{
|
||||
item->device->priv = driver;
|
||||
if (driver->probe(item->device) >= 0)
|
||||
{
|
||||
vhosterr("device probe success device=%p\n", item->device);
|
||||
item->driver = driver;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -207,6 +207,7 @@ int vhost_register_driver(FAR struct vhost_driver *driver)
|
|||
* matched.
|
||||
*/
|
||||
|
||||
item->device->priv = driver;
|
||||
if (driver->probe(item->device) >= 0)
|
||||
{
|
||||
item->driver = driver;
|
||||
|
|
|
|||
|
|
@ -225,13 +225,14 @@ int virtio_register_driver(FAR struct virtio_driver *driver)
|
|||
FAR struct virtio_device_item_s *item =
|
||||
container_of(node, struct virtio_device_item_s, node);
|
||||
FAR struct virtio_device *device = item->device;
|
||||
if (driver->device == device->id.device)
|
||||
if (item->driver == NULL && driver->device == device->id.device)
|
||||
{
|
||||
/* If found the device in the device list, call driver probe,
|
||||
* if probe success, assign item->driver to indicate the device
|
||||
* matched.
|
||||
*/
|
||||
|
||||
device->priv = driver;
|
||||
if (driver->probe(device) >= 0)
|
||||
{
|
||||
item->driver = driver;
|
||||
|
|
@ -327,12 +328,12 @@ int virtio_register_device(FAR struct virtio_device *device)
|
|||
* matched.
|
||||
*/
|
||||
|
||||
device->priv = driver;
|
||||
if (driver->probe(device) >= 0)
|
||||
{
|
||||
item->driver = driver;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue