virtio: fix balloon without VIRTIO_BALLOON_F_STATS_VQ
Rusty Russell [Wed, 24 Feb 2010 20:22:14 +0000 (14:22 -0600)]
When running under qemu-kvm-0.11.0:

BUG: unable to handle kernel paging request at 56e58955
...
Process vballoon (pid: 1297, ti=c7976000 task=c70a6ca0 task.ti=c7
...
Call Trace:
 [<c88253a3>] ? balloon+0x1b3/0x440 [virtio_balloon]
 [<c041c2d7>] ? schedule+0x327/0x9d0
 [<c88251f0>] ? balloon+0x0/0x440 [virtio_balloon]
 [<c014a2d4>] ? kthread+0x74/0x80
 [<c014a260>] ? kthread+0x0/0x80
 [<c0103b36>] ? kernel_thread_helper+0x6/0x30

need_stats_update should be zero-initialized.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Adam Litke <agl@us.ibm.com>

drivers/virtio/virtio_balloon.c

index 3db3d24..369f2ee 100644 (file)
@@ -292,6 +292,7 @@ static int virtballoon_probe(struct virtio_device *vdev)
        vb->num_pages = 0;
        init_waitqueue_head(&vb->config_change);
        vb->vdev = vdev;
+       vb->need_stats_update = 0;
 
        /* We expect two virtqueues: inflate and deflate,
         * and optionally stat. */