|
@@ -2202,14 +2202,16 @@ static int virtcons_freeze(struct virtio_device *vdev)
|
|
|
|
|
|
vdev->config->reset(vdev);
|
|
vdev->config->reset(vdev);
|
|
|
|
|
|
- virtqueue_disable_cb(portdev->c_ivq);
|
|
|
|
|
|
+ if (use_multiport(portdev))
|
|
|
|
+ virtqueue_disable_cb(portdev->c_ivq);
|
|
cancel_work_sync(&portdev->control_work);
|
|
cancel_work_sync(&portdev->control_work);
|
|
cancel_work_sync(&portdev->config_work);
|
|
cancel_work_sync(&portdev->config_work);
|
|
/*
|
|
/*
|
|
* Once more: if control_work_handler() was running, it would
|
|
* Once more: if control_work_handler() was running, it would
|
|
* enable the cb as the last step.
|
|
* enable the cb as the last step.
|
|
*/
|
|
*/
|
|
- virtqueue_disable_cb(portdev->c_ivq);
|
|
|
|
|
|
+ if (use_multiport(portdev))
|
|
|
|
+ virtqueue_disable_cb(portdev->c_ivq);
|
|
remove_controlq_data(portdev);
|
|
remove_controlq_data(portdev);
|
|
|
|
|
|
list_for_each_entry(port, &portdev->ports, list) {
|
|
list_for_each_entry(port, &portdev->ports, list) {
|