Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756630AbYLJRsu (ORCPT ); Wed, 10 Dec 2008 12:48:50 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752792AbYLJRrL (ORCPT ); Wed, 10 Dec 2008 12:47:11 -0500 Received: from mail21.svc.cra.dublin.eircom.net ([159.134.118.222]:34539 "HELO mail21.svc.cra.dublin.eircom.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1753206AbYLJRrH (ORCPT ); Wed, 10 Dec 2008 12:47:07 -0500 From: Mark McLoughlin To: Rusty Russell Cc: linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, Anthony Liguori , Kay Sievers , Greg KH , Mark McLoughlin Subject: [PATCH 3/6] virtio: do not statically allocate root device Date: Wed, 10 Dec 2008 17:45:36 +0000 Message-Id: <1228931139-12956-3-git-send-email-markmc@redhat.com> X-Mailer: git-send-email 1.5.4.3 In-Reply-To: <1228931139-12956-2-git-send-email-markmc@redhat.com> References: <1228931096.5384.63.camel@blaa> <1228931139-12956-1-git-send-email-markmc@redhat.com> <1228931139-12956-2-git-send-email-markmc@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2524 Lines: 75 We shouldn't be statically allocating the root device object, so dynamically allocate it using register_virtio_root_device() instead. Also avoids this warning from 'rmmod virtio_pci': Device 'virtio-pci' does not have a release() function, it is broken and must be fixed Signed-off-by: Mark McLoughlin Cc: Anthony Liguori --- drivers/virtio/virtio_pci.c | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index 265fdf2..9f40fbe 100644 --- a/drivers/virtio/virtio_pci.c +++ b/drivers/virtio/virtio_pci.c @@ -73,10 +73,7 @@ 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 = { - .parent = NULL, - .init_name = "virtio-pci", -}; +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) @@ -343,7 +340,7 @@ static int __devinit virtio_pci_probe(struct pci_dev *pci_dev, if (vp_dev == NULL) return -ENOMEM; - vp_dev->vdev.dev.parent = &virtio_pci_root; + vp_dev->vdev.dev.parent = virtio_pci_root; vp_dev->vdev.dev.release = virtio_pci_release_dev; vp_dev->vdev.config = &virtio_pci_config_ops; vp_dev->pci_dev = pci_dev; @@ -437,13 +434,13 @@ static int __init virtio_pci_init(void) { int err; - err = device_register(&virtio_pci_root); - if (err) - return err; + virtio_pci_root = register_virtio_root_device("virtio-pci"); + if (IS_ERR(virtio_pci_root)) + return PTR_ERR(virtio_pci_root); err = pci_register_driver(&virtio_pci_driver); if (err) - device_unregister(&virtio_pci_root); + device_unregister(virtio_pci_root); return err; } @@ -452,8 +449,8 @@ module_init(virtio_pci_init); static void __exit virtio_pci_exit(void) { - device_unregister(&virtio_pci_root); pci_unregister_driver(&virtio_pci_driver); + unregister_virtio_root_device(virtio_pci_root); } module_exit(virtio_pci_exit); -- 1.5.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/