summaryrefslogtreecommitdiffstats
path: root/drivers/virtio/virtio.c
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2012-09-28 07:35:16 +0200
committerRusty Russell <rusty@rustcorp.com.au>2012-09-28 07:35:16 +0200
commit5543a6ac31eb4bfd8d938db6b234ce833d14e04e (patch)
treedf471800d5701f2c0db0d2a1d4659fbb0549473e /drivers/virtio/virtio.c
parentvirtio: remove CONFIG_VIRTIO_RING (diff)
downloadlinux-5543a6ac31eb4bfd8d938db6b234ce833d14e04e.tar.xz
linux-5543a6ac31eb4bfd8d938db6b234ce833d14e04e.zip
virtio: don't crash when device is buggy
Because of a sanity check in virtio_dev_remove, a buggy device can crash kernel. And in case of rproc it's userspace so it's not a good idea. We are unloading a driver so how bad can it be? Be less aggressive in handling this error: if it's a driver bug, warning once should be enough. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/virtio/virtio.c')
-rw-r--r--drivers/virtio/virtio.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c
index c3b3f7f0d9d1..1e8659ca27ef 100644
--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -159,7 +159,7 @@ static int virtio_dev_remove(struct device *_d)
drv->remove(dev);
/* Driver should have reset device. */
- BUG_ON(dev->config->get_status(dev));
+ WARN_ON_ONCE(dev->config->get_status(dev));
/* Acknowledge the device's existence again. */
add_status(dev, VIRTIO_CONFIG_S_ACKNOWLEDGE);