Add fix for virtio rmg
Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
This commit is contained in:
parent
23870fea93
commit
96bb34013d
@ -3016,3 +3016,47 @@ index 188b8f782220..dab400de2335 100644
|
|||||||
#ifdef CONFIG_PERF_EVENTS
|
#ifdef CONFIG_PERF_EVENTS
|
||||||
int security_perf_event_open(struct perf_event_attr *attr, int type)
|
int security_perf_event_open(struct perf_event_attr *attr, int type)
|
||||||
{
|
{
|
||||||
|
From 228432551bd8783211e494ab35f42a4344580502 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jason Wang <jasowang@redhat.com>
|
||||||
|
Date: Wed, 8 Jun 2022 14:14:22 +0800
|
||||||
|
Subject: [PATCH] virtio-rng: make device ready before making request
|
||||||
|
|
||||||
|
Current virtio-rng does a entropy request before DRIVER_OK, this
|
||||||
|
violates the spec:
|
||||||
|
|
||||||
|
virtio spec requires that all drivers set DRIVER_OK
|
||||||
|
before using devices.
|
||||||
|
|
||||||
|
Further, kernel will ignore the interrupt after commit
|
||||||
|
8b4ec69d7e09 ("virtio: harden vring IRQ").
|
||||||
|
|
||||||
|
Fixing this by making device ready before the request.
|
||||||
|
|
||||||
|
Cc: stable@vger.kernel.org
|
||||||
|
Fixes: 8b4ec69d7e09 ("virtio: harden vring IRQ")
|
||||||
|
Fixes: f7f510ec1957 ("virtio: An entropy device, as suggested by hpa.")
|
||||||
|
Reported-and-tested-by: syzbot+5b59d6d459306a556f54@syzkaller.appspotmail.com
|
||||||
|
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||||||
|
Message-Id: <20220608061422.38437-1-jasowang@redhat.com>
|
||||||
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/char/hw_random/virtio-rng.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.36.1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user