|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH] plat/virtio: Fix virtio-bus init getting hanged
This patch fixes getting hanged in virtio-bus initialization. The inner
while loop does not iterate through all the dev_ids, and failing to find
a match against the first dev_id results in an infinite loop.
Signed-off-by: Cristian Banu <cristb@xxxxxxxxx>
---
plat/drivers/virtio/virtio_bus.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plat/drivers/virtio/virtio_bus.c b/plat/drivers/virtio/virtio_bus.c
index 48a24678ea78..3fc86ea827f6 100644
--- a/plat/drivers/virtio/virtio_bus.c
+++ b/plat/drivers/virtio/virtio_bus.c
@@ -79,11 +79,13 @@ static struct virtio_driver *find_match_drv(struct
virtio_dev *vdev)
struct virtio_driver *drv = NULL;
UK_TAILQ_FOREACH(drv, &virtio_drvs, next) {
+ i = 0;
while (drv->dev_ids[i].virtio_device_id != VIRTIO_ID_INVALID) {
if (virtio_device_id_match(&drv->dev_ids[i],
&vdev->id)) {
return drv;
}
+ i++;
}
}
return NULL;
--
2.11.0
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |