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