Jason Wang
2022-May-27 06:01 UTC
[PATCH V6 9/9] virtio: use WARN_ON() to warning illegal status value
We used to use BUG_ON() in virtio_device_ready() to detect illegal
status value, this seems sub-optimal since the value is under the
control of the device. Switch to use WARN_ON() instead.
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Peter Zijlstra <peterz at infradead.org>
Cc: "Paul E. McKenney" <paulmck at kernel.org>
Cc: Marc Zyngier <maz at kernel.org>
Cc: Halil Pasic <pasic at linux.ibm.com>
Cc: Cornelia Huck <cohuck at redhat.com>
Cc: Vineeth Vijayan <vneethv at linux.ibm.com>
Cc: Peter Oberparleiter <oberpar at linux.ibm.com>
Cc: linux-s390 at vger.kernel.org
Signed-off-by: Jason Wang <jasowang at redhat.com>
---
include/linux/virtio_config.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h
index d4edfd7d91bb..9a36051ceb76 100644
--- a/include/linux/virtio_config.h
+++ b/include/linux/virtio_config.h
@@ -255,7 +255,7 @@ void virtio_device_ready(struct virtio_device *dev)
{
unsigned status = dev->config->get_status(dev);
- BUG_ON(status & VIRTIO_CONFIG_S_DRIVER_OK);
+ WARN_ON(status & VIRTIO_CONFIG_S_DRIVER_OK);
/*
* The virtio_synchronize_cbs() makes sure vring_interrupt()
--
2.25.1
Xuan Zhuo
2022-May-27 07:49 UTC
[PATCH V6 9/9] virtio: use WARN_ON() to warning illegal status value
On Fri, 27 May 2022 14:01:20 +0800, Jason Wang <jasowang at redhat.com> wrote:> We used to use BUG_ON() in virtio_device_ready() to detect illegal > status value, this seems sub-optimal since the value is under the > control of the device. Switch to use WARN_ON() instead. > > Cc: Thomas Gleixner <tglx at linutronix.de> > Cc: Peter Zijlstra <peterz at infradead.org> > Cc: "Paul E. McKenney" <paulmck at kernel.org> > Cc: Marc Zyngier <maz at kernel.org> > Cc: Halil Pasic <pasic at linux.ibm.com> > Cc: Cornelia Huck <cohuck at redhat.com> > Cc: Vineeth Vijayan <vneethv at linux.ibm.com> > Cc: Peter Oberparleiter <oberpar at linux.ibm.com> > Cc: linux-s390 at vger.kernel.org > Signed-off-by: Jason Wang <jasowang at redhat.com>Reviewed-by: Xuan Zhuo <xuanzhuo at linux.alibaba.com>> --- > include/linux/virtio_config.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h > index d4edfd7d91bb..9a36051ceb76 100644 > --- a/include/linux/virtio_config.h > +++ b/include/linux/virtio_config.h > @@ -255,7 +255,7 @@ void virtio_device_ready(struct virtio_device *dev) > { > unsigned status = dev->config->get_status(dev); > > - BUG_ON(status & VIRTIO_CONFIG_S_DRIVER_OK); > + WARN_ON(status & VIRTIO_CONFIG_S_DRIVER_OK); > > /* > * The virtio_synchronize_cbs() makes sure vring_interrupt() > -- > 2.25.1 >
Stefano Garzarella
2022-May-27 10:35 UTC
[PATCH V6 9/9] virtio: use WARN_ON() to warning illegal status value
On Fri, May 27, 2022 at 02:01:20PM +0800, Jason Wang wrote:>We used to use BUG_ON() in virtio_device_ready() to detect illegal >status value, this seems sub-optimal since the value is under the >control of the device. Switch to use WARN_ON() instead. > >Cc: Thomas Gleixner <tglx at linutronix.de> >Cc: Peter Zijlstra <peterz at infradead.org> >Cc: "Paul E. McKenney" <paulmck at kernel.org> >Cc: Marc Zyngier <maz at kernel.org> >Cc: Halil Pasic <pasic at linux.ibm.com> >Cc: Cornelia Huck <cohuck at redhat.com> >Cc: Vineeth Vijayan <vneethv at linux.ibm.com> >Cc: Peter Oberparleiter <oberpar at linux.ibm.com> >Cc: linux-s390 at vger.kernel.org >Signed-off-by: Jason Wang <jasowang at redhat.com> >--- > include/linux/virtio_config.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-)Reviewed-by: Stefano Garzarella <sgarzare at redhat.com>
Michael S. Tsirkin
2022-May-27 10:50 UTC
[PATCH V6 9/9] virtio: use WARN_ON() to warning illegal status value
At a minimum, I don't see why it's part of the series. Host can always crash the guest if it wants to ... The point of BUG_ON is device or driver is already corrupted so we should not try to drive it. If you still want this in pls come up with a better commit log explaining the why. On Fri, May 27, 2022 at 02:01:20PM +0800, Jason Wang wrote:> We used to use BUG_ON() in virtio_device_ready() to detect illegalnot really, BUG_ON just crashes the kernel. we detect by checking status.> status value, this seems sub-optimal since the value is under the > control of the device. Switch to use WARN_ON() instead.some people use crash on warn so ...> > Cc: Thomas Gleixner <tglx at linutronix.de> > Cc: Peter Zijlstra <peterz at infradead.org> > Cc: "Paul E. McKenney" <paulmck at kernel.org> > Cc: Marc Zyngier <maz at kernel.org> > Cc: Halil Pasic <pasic at linux.ibm.com> > Cc: Cornelia Huck <cohuck at redhat.com> > Cc: Vineeth Vijayan <vneethv at linux.ibm.com> > Cc: Peter Oberparleiter <oberpar at linux.ibm.com> > Cc: linux-s390 at vger.kernel.org > Signed-off-by: Jason Wang <jasowang at redhat.com>> --- > include/linux/virtio_config.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h > index d4edfd7d91bb..9a36051ceb76 100644 > --- a/include/linux/virtio_config.h > +++ b/include/linux/virtio_config.h > @@ -255,7 +255,7 @@ void virtio_device_ready(struct virtio_device *dev) > { > unsigned status = dev->config->get_status(dev); > > - BUG_ON(status & VIRTIO_CONFIG_S_DRIVER_OK); > + WARN_ON(status & VIRTIO_CONFIG_S_DRIVER_OK); >we lose debuggability as guest will try to continue. if we are doing this let us print a helpful message and dump a lot of state right here.> /* > * The virtio_synchronize_cbs() makes sure vring_interrupt() > -- > 2.25.1