From: Cornelia Huck <cohuck@redhat.com>
To: Jason Wang <jasowang@redhat.com>,
mst@redhat.com, jasowang@redhat.com,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org
Cc: tglx@linutronix.de, peterz@infradead.org, paulmck@kernel.org,
maz@kernel.org, pasic@linux.ibm.com, eperezma@redhat.com,
lulu@redhat.com, sgarzare@redhat.com, xuanzhuo@linux.alibaba.com,
Vineeth Vijayan <vneethv@linux.ibm.com>,
Peter Oberparleiter <oberpar@linux.ibm.com>,
linux-s390@vger.kernel.org
Subject: Re: [PATCH V5 7/9] virtio: allow to unbreak virtqueue
Date: Wed, 18 May 2022 12:03:56 +0200 [thread overview]
Message-ID: <87r14rf983.fsf@redhat.com> (raw)
In-Reply-To: <20220518035951.94220-8-jasowang@redhat.com>
On Wed, May 18 2022, Jason Wang <jasowang@redhat.com> wrote:
> This patch allows the new introduced __virtio_break_device() to
> unbreak the virtqueue.
>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: "Paul E. McKenney" <paulmck@kernel.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Halil Pasic <pasic@linux.ibm.com>
> Cc: Cornelia Huck <cohuck@redhat.com>
> Cc: Vineeth Vijayan <vneethv@linux.ibm.com>
> Cc: Peter Oberparleiter <oberpar@linux.ibm.com>
> Cc: linux-s390@vger.kernel.org
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
> drivers/virtio/virtio_ring.c | 21 +++++++++++++++++++++
> include/linux/virtio.h | 1 +
> 2 files changed, 22 insertions(+)
>
> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
> index cfb028ca238e..5b7df7c455f0 100644
> --- a/drivers/virtio/virtio_ring.c
> +++ b/drivers/virtio/virtio_ring.c
> @@ -2397,6 +2397,27 @@ 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. This should only be used
Hm, to flush what?
> + * in some specific case e.g (probing and restoring). Driver should
> + * not call this directly.
Maybe "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);
WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cohuck@redhat.com>
To: Jason Wang <jasowang@redhat.com>,
mst@redhat.com, jasowang@redhat.com,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org
Cc: lulu@redhat.com, paulmck@kernel.org, linux-s390@vger.kernel.org,
peterz@infradead.org, maz@kernel.org,
Peter Oberparleiter <oberpar@linux.ibm.com>,
pasic@linux.ibm.com, eperezma@redhat.com,
Vineeth Vijayan <vneethv@linux.ibm.com>,
tglx@linutronix.de
Subject: Re: [PATCH V5 7/9] virtio: allow to unbreak virtqueue
Date: Wed, 18 May 2022 12:03:56 +0200 [thread overview]
Message-ID: <87r14rf983.fsf@redhat.com> (raw)
In-Reply-To: <20220518035951.94220-8-jasowang@redhat.com>
On Wed, May 18 2022, Jason Wang <jasowang@redhat.com> wrote:
> This patch allows the new introduced __virtio_break_device() to
> unbreak the virtqueue.
>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: "Paul E. McKenney" <paulmck@kernel.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Halil Pasic <pasic@linux.ibm.com>
> Cc: Cornelia Huck <cohuck@redhat.com>
> Cc: Vineeth Vijayan <vneethv@linux.ibm.com>
> Cc: Peter Oberparleiter <oberpar@linux.ibm.com>
> Cc: linux-s390@vger.kernel.org
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
> drivers/virtio/virtio_ring.c | 21 +++++++++++++++++++++
> include/linux/virtio.h | 1 +
> 2 files changed, 22 insertions(+)
>
> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
> index cfb028ca238e..5b7df7c455f0 100644
> --- a/drivers/virtio/virtio_ring.c
> +++ b/drivers/virtio/virtio_ring.c
> @@ -2397,6 +2397,27 @@ 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. This should only be used
Hm, to flush what?
> + * in some specific case e.g (probing and restoring). Driver should
> + * not call this directly.
Maybe "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);
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2022-05-18 10:04 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-18 3:59 [PATCH V5 0/9] rework on the IRQ hardening of virtio Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-18 3:59 ` [PATCH V5 1/9] virtio: use virtio_device_ready() in virtio_device_restore() Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-18 3:59 ` [PATCH V5 2/9] virtio: use virtio_reset_device() when possible Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-19 8:32 ` Stefano Garzarella
2022-05-19 8:32 ` Stefano Garzarella
2022-05-18 3:59 ` [PATCH V5 3/9] virtio: introduce config op to synchronize vring callbacks Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-19 8:34 ` Stefano Garzarella
2022-05-19 8:34 ` Stefano Garzarella
2022-05-18 3:59 ` [PATCH V5 4/9] virtio-pci: implement synchronize_cbs() Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-18 3:59 ` [PATCH V5 5/9] virtio-mmio: " Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-18 3:59 ` [PATCH V5 6/9] virtio-ccw: " Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-18 9:32 ` Cornelia Huck
2022-05-18 9:32 ` Cornelia Huck
2022-05-19 8:02 ` Jason Wang
2022-05-19 8:02 ` Jason Wang
2022-05-24 16:29 ` Halil Pasic
2022-05-24 16:29 ` Halil Pasic
2022-05-18 3:59 ` [PATCH V5 7/9] virtio: allow to unbreak virtqueue Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-18 10:03 ` Cornelia Huck [this message]
2022-05-18 10:03 ` Cornelia Huck
2022-05-19 8:08 ` Jason Wang
2022-05-19 8:08 ` Jason Wang
2022-05-18 3:59 ` [PATCH V5 8/9] virtio: harden vring IRQ Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-18 3:59 ` [PATCH V5 9/9] virtio: use WARN_ON() to warn illegal status value Jason Wang
2022-05-18 3:59 ` Jason Wang
2022-05-19 8:34 ` Stefano Garzarella
2022-05-19 8:34 ` Stefano Garzarella
2022-05-23 8:53 ` [PATCH V5 0/9] rework on the IRQ hardening of virtio Halil Pasic
2022-05-23 8:53 ` Halil Pasic
2022-05-24 16:27 ` Halil Pasic
2022-05-24 16:27 ` Halil Pasic
2022-05-25 2:33 ` Jason Wang
2022-05-25 2:33 ` Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r14rf983.fsf@redhat.com \
--to=cohuck@redhat.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=lulu@redhat.com \
--cc=maz@kernel.org \
--cc=mst@redhat.com \
--cc=oberpar@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=sgarzare@redhat.com \
--cc=tglx@linutronix.de \
--cc=virtualization@lists.linux-foundation.org \
--cc=vneethv@linux.ibm.com \
--cc=xuanzhuo@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.