thanks for the findings.
Let me make furture patches to make consistent.
在 2021/7/20 下午3:54, Jason Wang 写道:
在 2021/7/20 下午3:13, Xianting Tian 写道:
Add the missed virtio_device_ready() to set vsock frontend ready.
Signed-off-by: Xianting Tian <xianting.tian@xxxxxxxxxxxxxxxxx>
---
net/vmw_vsock/virtio_transport.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/vmw_vsock/virtio_transport.c
b/net/vmw_vsock/virtio_transport.c
index e0c2c992a..dc834b8fd 100644
--- a/net/vmw_vsock/virtio_transport.c
+++ b/net/vmw_vsock/virtio_transport.c
@@ -639,6 +639,8 @@ static int virtio_vsock_probe(struct
virtio_device *vdev)
mutex_unlock(&the_virtio_vsock_mutex);
+ virtio_device_ready(vdev);
+
return 0;
out:
Just notice this:
commit 5b40a7daf51812b35cf05d1601a779a7043f8414
Author: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Date: Tue Feb 17 16:12:44 2015 +1030
virtio: don't set VIRTIO_CONFIG_S_DRIVER_OK twice.
I noticed this with the console device. It's not *wrong*, just a bit
weird.
Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c
index b9f70dfc4751..5ce2aa48fc6e 100644
--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -236,7 +236,10 @@ static int virtio_dev_probe(struct device *_d)
if (err)
goto err;
- add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK);
+ /* If probe didn't do it, mark device DRIVER_OK ourselves. */
+ if (!(dev->config->get_status(dev) & VIRTIO_CONFIG_S_DRIVER_OK))
+ virtio_device_ready(dev);
+
if (drv->scan)
drv->scan(dev);
So I think we need to be consistent: switch to use
virtio_device_ready() for all the drivers, and then we can remove this
step and warn if (DRIVER_OK) is not set.
Thanks