mirror of
https://github.com/torvalds/linux.git
synced 2026-07-31 11:37:06 +02:00
Merge be83f04d25 ("virtio: allow to unbreak virtqueue") into android-mainline
Steps on the way to 5.19-rc1 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Icfc6cca8e0cb5f02deb28f60ea448f1133934bf4
This commit is contained in:
commit
435497317d
|
|
@ -2395,6 +2395,28 @@ void virtio_break_device(struct virtio_device *dev)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(virtio_break_device);
|
||||
|
||||
/*
|
||||
* This should allow the device to be used by the driver. You may
|
||||
* need to grab appropriate locks to flush the write to
|
||||
* vq->broken. This should only be used in some specific case e.g
|
||||
* (probing and restoring). This function should only be called by the
|
||||
* core, not directly by the driver.
|
||||
*/
|
||||
void __virtio_unbreak_device(struct virtio_device *dev)
|
||||
{
|
||||
struct virtqueue *_vq;
|
||||
|
||||
spin_lock(&dev->vqs_list_lock);
|
||||
list_for_each_entry(_vq, &dev->vqs, list) {
|
||||
struct vring_virtqueue *vq = to_vvq(_vq);
|
||||
|
||||
/* Pairs with READ_ONCE() in virtqueue_is_broken(). */
|
||||
WRITE_ONCE(vq->broken, false);
|
||||
}
|
||||
spin_unlock(&dev->vqs_list_lock);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__virtio_unbreak_device);
|
||||
|
||||
dma_addr_t virtqueue_get_desc_addr(struct virtqueue *_vq)
|
||||
{
|
||||
struct vring_virtqueue *vq = to_vvq(_vq);
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ void unregister_virtio_device(struct virtio_device *dev);
|
|||
bool is_virtio_device(struct device *dev);
|
||||
|
||||
void virtio_break_device(struct virtio_device *dev);
|
||||
void __virtio_unbreak_device(struct virtio_device *dev);
|
||||
|
||||
void virtio_config_changed(struct virtio_device *dev);
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user