Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost

Pull virtio fixes from Michael Tsirkin:
"This includes a bugfix for virtio 9p fs. It also fixes hybernation for
s390 guests with virtio devices"

* tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
virtio/s390: implement PM operations for virtio_ccw
9p/trans_virtio: discard zero-length reply

+31 -1
+29
drivers/s390/virtio/virtio_ccw.c
··· 1297 1297 vcdev->device_lost = true; 1298 1298 rc = NOTIFY_DONE; 1299 1299 break; 1300 + case CIO_OPER: 1301 + rc = NOTIFY_OK; 1302 + break; 1300 1303 default: 1301 1304 rc = NOTIFY_DONE; 1302 1305 break; ··· 1311 1308 { CCW_DEVICE(0x3832, 0) }, 1312 1309 {}, 1313 1310 }; 1311 + 1312 + #ifdef CONFIG_PM_SLEEP 1313 + static int virtio_ccw_freeze(struct ccw_device *cdev) 1314 + { 1315 + struct virtio_ccw_device *vcdev = dev_get_drvdata(&cdev->dev); 1316 + 1317 + return virtio_device_freeze(&vcdev->vdev); 1318 + } 1319 + 1320 + static int virtio_ccw_restore(struct ccw_device *cdev) 1321 + { 1322 + struct virtio_ccw_device *vcdev = dev_get_drvdata(&cdev->dev); 1323 + int ret; 1324 + 1325 + ret = virtio_ccw_set_transport_rev(vcdev); 1326 + if (ret) 1327 + return ret; 1328 + 1329 + return virtio_device_restore(&vcdev->vdev); 1330 + } 1331 + #endif 1314 1332 1315 1333 static struct ccw_driver virtio_ccw_driver = { 1316 1334 .driver = { ··· 1345 1321 .set_online = virtio_ccw_online, 1346 1322 .notify = virtio_ccw_cio_notify, 1347 1323 .int_class = IRQIO_VIR, 1324 + #ifdef CONFIG_PM_SLEEP 1325 + .freeze = virtio_ccw_freeze, 1326 + .thaw = virtio_ccw_restore, 1327 + .restore = virtio_ccw_restore, 1328 + #endif 1348 1329 }; 1349 1330 1350 1331 static int __init pure_hex(char **cp, unsigned int *val, int min_digit,
+2 -1
net/9p/trans_virtio.c
··· 160 160 spin_unlock_irqrestore(&chan->lock, flags); 161 161 /* Wakeup if anyone waiting for VirtIO ring space. */ 162 162 wake_up(chan->vc_wq); 163 - p9_client_cb(chan->client, req, REQ_STATUS_RCVD); 163 + if (len) 164 + p9_client_cb(chan->client, req, REQ_STATUS_RCVD); 164 165 } 165 166 } 166 167