diff options
| -rw-r--r-- | drivers/char/virtio_console.c | 7 | ||||
| -rw-r--r-- | drivers/net/virtio_net.c | 2 | ||||
| -rw-r--r-- | drivers/virtio/virtio_balloon.c | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index ddf86b6500b7..cdf2f5451c76 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c | |||
| @@ -1895,6 +1895,13 @@ static int virtcons_restore(struct virtio_device *vdev) | |||
| 1895 | 1895 | ||
| 1896 | /* Get port open/close status on the host */ | 1896 | /* Get port open/close status on the host */ |
| 1897 | send_control_msg(port, VIRTIO_CONSOLE_PORT_READY, 1); | 1897 | send_control_msg(port, VIRTIO_CONSOLE_PORT_READY, 1); |
| 1898 | |||
| 1899 | /* | ||
| 1900 | * If a port was open at the time of suspending, we | ||
| 1901 | * have to let the host know that it's still open. | ||
| 1902 | */ | ||
| 1903 | if (port->guest_connected) | ||
| 1904 | send_control_msg(port, VIRTIO_CONSOLE_PORT_OPEN, 1); | ||
| 1898 | } | 1905 | } |
| 1899 | return 0; | 1906 | return 0; |
| 1900 | } | 1907 | } |
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index af8acc85f4bb..cbefe671bcc6 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
| @@ -492,7 +492,9 @@ static void virtnet_napi_enable(struct virtnet_info *vi) | |||
| 492 | * We synchronize against interrupts via NAPI_STATE_SCHED */ | 492 | * We synchronize against interrupts via NAPI_STATE_SCHED */ |
| 493 | if (napi_schedule_prep(&vi->napi)) { | 493 | if (napi_schedule_prep(&vi->napi)) { |
| 494 | virtqueue_disable_cb(vi->rvq); | 494 | virtqueue_disable_cb(vi->rvq); |
| 495 | local_bh_disable(); | ||
| 495 | __napi_schedule(&vi->napi); | 496 | __napi_schedule(&vi->napi); |
| 497 | local_bh_enable(); | ||
| 496 | } | 498 | } |
| 497 | } | 499 | } |
| 498 | 500 | ||
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index c2d05a8279fd..8807fe501d20 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c | |||
| @@ -390,6 +390,7 @@ static void __devexit virtballoon_remove(struct virtio_device *vdev) | |||
| 390 | /* There might be pages left in the balloon: free them. */ | 390 | /* There might be pages left in the balloon: free them. */ |
| 391 | while (vb->num_pages) | 391 | while (vb->num_pages) |
| 392 | leak_balloon(vb, vb->num_pages); | 392 | leak_balloon(vb, vb->num_pages); |
| 393 | update_balloon_size(vb); | ||
| 393 | 394 | ||
| 394 | /* Now we reset the device so we can clean up the queues. */ | 395 | /* Now we reset the device so we can clean up the queues. */ |
| 395 | vdev->config->reset(vdev); | 396 | vdev->config->reset(vdev); |
