]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/char/virtio_console.c
virtio: console: Disable callbacks for virtqueues at start of S4 freeze
[mv-sheeva.git] / drivers / char / virtio_console.c
index 614b84d38d7a1b408cbbeba01e5b1da17cdd402e..b58b5618706588936ebcf7a028bde7dba8f616c1 100644 (file)
@@ -1854,10 +1854,18 @@ static int virtcons_freeze(struct virtio_device *vdev)
 
        vdev->config->reset(vdev);
 
+       virtqueue_disable_cb(portdev->c_ivq);
        cancel_work_sync(&portdev->control_work);
+       /*
+        * Once more: if control_work_handler() was running, it would
+        * enable the cb as the last step.
+        */
+       virtqueue_disable_cb(portdev->c_ivq);
        remove_controlq_data(portdev);
 
        list_for_each_entry(port, &portdev->ports, list) {
+               virtqueue_disable_cb(port->in_vq);
+               virtqueue_disable_cb(port->out_vq);
                /*
                 * We'll ask the host later if the new invocation has
                 * the port opened or closed.