Re: [syzbot] INFO: task hung in add_early_randomness (2)

From: Jason Wang
Date: Wed Jun 08 2022 - 00:45:44 EST


On Wed, Jun 8, 2022 at 9:37 AM syzbot
<syzbot+5b59d6d459306a556f54@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hello,
>
> syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> INFO: task hung in add_early_randomness
>

Ok, looking at virtio-rng.c, probe_common() tries to kick the
virtqueue before DRIVER_OK which is kind of violates the spec.

Please test the following patch:

#syz test
git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next

diff --git a/drivers/char/hw_random/virtio-rng.c
b/drivers/char/hw_random/virtio-rng.c
index e856df7e285c..a6f3a8a2aca6 100644
--- a/drivers/char/hw_random/virtio-rng.c
+++ b/drivers/char/hw_random/virtio-rng.c
@@ -159,6 +159,8 @@ static int probe_common(struct virtio_device *vdev)
goto err_find;
}

+ virtio_device_ready(vdev);
+
/* we always have a pending entropy request */
request_entropy(vi);