Commit 8b3bb3ecf1934ac4a7005ad9017de1127e2fbd2f

Authored by Milton Miller
Committed by Rusty Russell
1 parent 2b8216e635

virtio: remove virtio-pci root device

We sometimes need to map between the virtio device and
the given pci device. One such use is OS installer that
gets the boot pci device from BIOS and needs to
find the relevant block device. Since it can't,
installation fails.

Instead of creating a top-level devices/virtio-pci
directory, create each device under the corresponding
pci device node.  Symlinks to all virtio-pci
devices can be found under the pci driver link in
bus/pci/drivers/virtio-pci/devices, and all virtio
devices under drivers/bus/virtio/devices.

Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Gleb Natapov <gleb@redhat.com>
Tested-by: "Daniel P. Berrange" <berrange@redhat.com>
Cc: stable@kernel.org

Showing 1 changed file with 2 additions and 18 deletions Side-by-side Diff

drivers/virtio/virtio_pci.c
... ... @@ -96,11 +96,6 @@
96 96  
97 97 MODULE_DEVICE_TABLE(pci, virtio_pci_id_table);
98 98  
99   -/* A PCI device has it's own struct device and so does a virtio device so
100   - * we create a place for the virtio devices to show up in sysfs. I think it
101   - * would make more sense for virtio to not insist on having it's own device. */
102   -static struct device *virtio_pci_root;
103   -
104 99 /* Convert a generic virtio device to our structure */
105 100 static struct virtio_pci_device *to_vp_device(struct virtio_device *vdev)
106 101 {
... ... @@ -629,7 +624,7 @@
629 624 if (vp_dev == NULL)
630 625 return -ENOMEM;
631 626  
632   - vp_dev->vdev.dev.parent = virtio_pci_root;
  627 + vp_dev->vdev.dev.parent = &pci_dev->dev;
633 628 vp_dev->vdev.dev.release = virtio_pci_release_dev;
634 629 vp_dev->vdev.config = &virtio_pci_config_ops;
635 630 vp_dev->pci_dev = pci_dev;
... ... @@ -717,17 +712,7 @@
717 712  
718 713 static int __init virtio_pci_init(void)
719 714 {
720   - int err;
721   -
722   - virtio_pci_root = root_device_register("virtio-pci");
723   - if (IS_ERR(virtio_pci_root))
724   - return PTR_ERR(virtio_pci_root);
725   -
726   - err = pci_register_driver(&virtio_pci_driver);
727   - if (err)
728   - root_device_unregister(virtio_pci_root);
729   -
730   - return err;
  715 + return pci_register_driver(&virtio_pci_driver);
731 716 }
732 717  
733 718 module_init(virtio_pci_init);
... ... @@ -735,7 +720,6 @@
735 720 static void __exit virtio_pci_exit(void)
736 721 {
737 722 pci_unregister_driver(&virtio_pci_driver);
738   - root_device_unregister(virtio_pci_root);
739 723 }
740 724  
741 725 module_exit(virtio_pci_exit);