lkml.org 
[lkml]   [2011]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 100/176] virtio: remove virtio-pci root device
    2.6.36-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Milton Miller <miltonm@bga.com>

    commit 8b3bb3ecf1934ac4a7005ad9017de1127e2fbd2f upstream.

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/virtio/virtio_pci.c | 20 ++------------------
    1 file changed, 2 insertions(+), 18 deletions(-)

    --- a/drivers/virtio/virtio_pci.c
    +++ b/drivers/virtio/virtio_pci.c
    @@ -96,11 +96,6 @@ static struct pci_device_id virtio_pci_i

    MODULE_DEVICE_TABLE(pci, virtio_pci_id_table);

    -/* A PCI device has it's own struct device and so does a virtio device so
    - * we create a place for the virtio devices to show up in sysfs. I think it
    - * would make more sense for virtio to not insist on having it's own device. */
    -static struct device *virtio_pci_root;
    -
    /* Convert a generic virtio device to our structure */
    static struct virtio_pci_device *to_vp_device(struct virtio_device *vdev)
    {
    @@ -629,7 +624,7 @@ static int __devinit virtio_pci_probe(st
    if (vp_dev == NULL)
    return -ENOMEM;

    - vp_dev->vdev.dev.parent = virtio_pci_root;
    + vp_dev->vdev.dev.parent = &pci_dev->dev;
    vp_dev->vdev.dev.release = virtio_pci_release_dev;
    vp_dev->vdev.config = &virtio_pci_config_ops;
    vp_dev->pci_dev = pci_dev;
    @@ -717,17 +712,7 @@ static struct pci_driver virtio_pci_driv

    static int __init virtio_pci_init(void)
    {
    - int err;
    -
    - virtio_pci_root = root_device_register("virtio-pci");
    - if (IS_ERR(virtio_pci_root))
    - return PTR_ERR(virtio_pci_root);
    -
    - err = pci_register_driver(&virtio_pci_driver);
    - if (err)
    - root_device_unregister(virtio_pci_root);
    -
    - return err;
    + return pci_register_driver(&virtio_pci_driver);
    }

    module_init(virtio_pci_init);
    @@ -735,7 +720,6 @@ module_init(virtio_pci_init);
    static void __exit virtio_pci_exit(void)
    {
    pci_unregister_driver(&virtio_pci_driver);
    - root_device_unregister(virtio_pci_root);
    }

    module_exit(virtio_pci_exit);



    \
     
     \ /
      Last update: 2011-02-16 02:09    [W:0.023 / U:32.812 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site