mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
virtio: disable notification hardening by default
We try to harden virtio device notifications in 8b4ec69d7e
("virtio:
harden vring IRQ"). It works with the assumption that the driver or
core can properly call virtio_device_ready() at the right
place. Unfortunately, this seems to be not true and uncover various
bugs of the existing drivers, mainly the issue of using
virtio_device_ready() incorrectly.
So let's add a Kconfig option and disable it by default. It gives
us time to fix the drivers and then we can consider re-enabling it.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20220622012940.21441-1-jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
This commit is contained in:
committed by
Michael S. Tsirkin
parent
03d9571706
commit
c346dae4f3
@@ -257,6 +257,7 @@ void virtio_device_ready(struct virtio_device *dev)
|
||||
|
||||
WARN_ON(status & VIRTIO_CONFIG_S_DRIVER_OK);
|
||||
|
||||
#ifdef CONFIG_VIRTIO_HARDEN_NOTIFICATION
|
||||
/*
|
||||
* The virtio_synchronize_cbs() makes sure vring_interrupt()
|
||||
* will see the driver specific setup if it sees vq->broken
|
||||
@@ -264,6 +265,7 @@ void virtio_device_ready(struct virtio_device *dev)
|
||||
*/
|
||||
virtio_synchronize_cbs(dev);
|
||||
__virtio_unbreak_device(dev);
|
||||
#endif
|
||||
/*
|
||||
* The transport should ensure the visibility of vq->broken
|
||||
* before setting DRIVER_OK. See the comments for the transport
|
||||
|
Reference in New Issue
Block a user