public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Milton Miller <miltonm@bga.com>
To: "Michael S. Tsirkin" <mst@redhat.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Anthony Liguori <aliguori@us.ibm.com>,
	Jamie Lokier <jamie@shareable.org>, Thomas Weber <swirl@gmx.li>,
	Gleb Natapov <gleb@redhat.com>,
	virtualization@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org
Cc: Milton Miller <miltonm@bga.com>
Subject: [PATCH] virtio: remove virtio-pci root device
Date: Fri, 07 Jan 2011 02:55:06 -0600	[thread overview]
Message-ID: <virtio-pci-noroot@mdm.bga.com> (raw)
In-Reply-To: <virtio-pci-whynotsimplify@mdm.bga.com>

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>
---

This is an alternative to the patch by Michael S. Tsirkin
titled "virtio-pci: add softlinks between virtio and pci"
https://patchwork.kernel.org/patch/454581/

It creates simpler code, uses less memory, and should
be even easier use by the installer as it won't have to
know a virtio symlink to follow (just follow none).

Compile tested only as I don't have kvm setup.


diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c
index ef8d9d5..4fb5b2b 100644
--- a/drivers/virtio/virtio_pci.c
+++ b/drivers/virtio/virtio_pci.c
@@ -96,11 +96,6 @@ static struct pci_device_id virtio_pci_id_table[] = {
 
 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(struct pci_dev *pci_dev,
 	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_driver = {
 
 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);

  reply	other threads:[~2011-01-07  8:55 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-05 19:17 [PATCH] virtio-pci: add softlinks between virtio and pci Michael S. Tsirkin
2011-01-05 19:28 ` Anthony Liguori
2011-01-05 19:38   ` Michael S. Tsirkin
2011-01-05 20:06     ` Anthony Liguori
2011-01-05 20:05   ` Michael S. Tsirkin
2011-01-05 20:08     ` Anthony Liguori
2011-01-05 21:15       ` Michael S. Tsirkin
2011-01-06  8:51 ` Gleb Natapov
2011-01-07  8:54 ` Milton Miller
2011-01-07  8:55   ` Milton Miller [this message]
2011-01-07 10:24     ` [PATCH] virtio: remove virtio-pci root device Michael S. Tsirkin
2011-01-09 15:18     ` Michael S. Tsirkin
2011-01-10 11:18       ` Gleb Natapov
2011-01-10 11:22         ` Michael S. Tsirkin
2011-01-10 11:27           ` Gleb Natapov
2011-01-10 11:42             ` Gleb Natapov
2011-01-10 12:08               ` Michael S. Tsirkin
2011-01-10 12:50                 ` Gleb Natapov
2011-01-10 13:31                   ` Michael S. Tsirkin
2011-01-10 13:40                     ` Gleb Natapov
2011-01-10 14:19                       ` Michael S. Tsirkin
2011-01-10 17:10     ` Gleb Natapov
2011-01-10 17:19       ` Michael S. Tsirkin
2011-01-17  0:33         ` Rusty Russell
2011-01-10 17:44     ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=virtio-pci-noroot@mdm.bga.com \
    --to=miltonm@bga.com \
    --cc=aliguori@us.ibm.com \
    --cc=gleb@redhat.com \
    --cc=jamie@shareable.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=rusty@rustcorp.com.au \
    --cc=swirl@gmx.li \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox