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

Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux

Pull virtio update from Rusty Russell:
"A few simple fixes. Quiet cycle"

* tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
drivers: virtio: Mark function virtballoon_migratepage() as static in virtio_balloon.c
virtio-scsi: Fix hotcpu_notifier use-after-free with virtscsi_freeze
virtio: pci: remove unnecessary pci_set_drvdata()

+15 -4
+14 -1
drivers/scsi/virtio_scsi.c
··· 956 956 #ifdef CONFIG_PM_SLEEP 957 957 static int virtscsi_freeze(struct virtio_device *vdev) 958 958 { 959 + struct Scsi_Host *sh = virtio_scsi_host(vdev); 960 + struct virtio_scsi *vscsi = shost_priv(sh); 961 + 962 + unregister_hotcpu_notifier(&vscsi->nb); 959 963 virtscsi_remove_vqs(vdev); 960 964 return 0; 961 965 } ··· 968 964 { 969 965 struct Scsi_Host *sh = virtio_scsi_host(vdev); 970 966 struct virtio_scsi *vscsi = shost_priv(sh); 967 + int err; 971 968 972 - return virtscsi_init(vdev, vscsi); 969 + err = virtscsi_init(vdev, vscsi); 970 + if (err) 971 + return err; 972 + 973 + err = register_hotcpu_notifier(&vscsi->nb); 974 + if (err) 975 + vdev->config->del_vqs(vdev); 976 + 977 + return err; 973 978 } 974 979 #endif 975 980
+1 -1
drivers/virtio/virtio_balloon.c
··· 369 369 * This function preforms the balloon page migration task. 370 370 * Called through balloon_mapping->a_ops->migratepage 371 371 */ 372 - int virtballoon_migratepage(struct address_space *mapping, 372 + static int virtballoon_migratepage(struct address_space *mapping, 373 373 struct page *newpage, struct page *page, enum migrate_mode mode) 374 374 { 375 375 struct balloon_dev_info *vb_dev_info = balloon_page_device(page);
-2
drivers/virtio/virtio_pci.c
··· 742 742 return 0; 743 743 744 744 out_set_drvdata: 745 - pci_set_drvdata(pci_dev, NULL); 746 745 pci_iounmap(pci_dev, vp_dev->ioaddr); 747 746 out_req_regions: 748 747 pci_release_regions(pci_dev); ··· 759 760 unregister_virtio_device(&vp_dev->vdev); 760 761 761 762 vp_del_vqs(&vp_dev->vdev); 762 - pci_set_drvdata(pci_dev, NULL); 763 763 pci_iounmap(pci_dev, vp_dev->ioaddr); 764 764 pci_release_regions(pci_dev); 765 765 pci_disable_device(pci_dev);