From: Anthony Liguori <anthony@codemonkey.ws>
To: Mark McLoughlin <markmc@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH 3/3][RESEND] Use the default subsystem vendor ID for virtio devices
Date: Mon, 26 Jan 2009 09:17:16 -0600 [thread overview]
Message-ID: <497DD3FC.9040706@codemonkey.ws> (raw)
In-Reply-To: <1232977378.3724.85.camel@blaa>
Mark McLoughlin wrote:
> A subsystem vendor ID of zero isn't allowed, so we use our
> default ID.
>
> Gerd points out that although the PCI subsystem vendor ID is
> treated by the guest as the virtio vendor ID:
>
The thinking was to allow the subsystem vendor ID to be a virtio
specific vendor ID.
If it's required to be a PCI vendor ID, then I guess that's what we'll
have to do.
Regards,
Anthony Liguori
> /* we use the subsystem vendor/device id as the virtio vendor/device
> * id. this allows us to use the same PCI vendor/device id for all
> * virtio devices and to identify the particular virtio driver by
> * the subsytem ids */
> vp_dev->vdev.id.vendor = pci_dev->subsystem_vendor;
> vp_dev->vdev.id.device = pci_dev->subsystem_device;
>
> it looks like only the device ID is used right now:
>
> # grep virtio modules.alias
> alias virtio:d00000001v* virtio_net
> alias virtio:d00000002v* virtio_blk
> alias virtio:d00000003v* virtio_console
> alias virtio:d00000004v* virtio-rng
> alias virtio:d00000005v* virtio_balloon
> alias pci:v00001AF4d*sv*sd*bc*sc*i* virtio_pci
> alias virtio:d00000009v* 9pnet_virtio
>
> so setting the subsystem vendor id to something != zero shouldn't cause
> trouble.
>
> Signed-off-by: Mark McLoughlin <markmc@redhat.com>
> ---
> hw/virtio-balloon.c | 3 ++-
> hw/virtio-blk.c | 3 ++-
> hw/virtio-console.c | 3 ++-
> hw/virtio-net.c | 3 ++-
> 4 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/hw/virtio-balloon.c b/hw/virtio-balloon.c
> index 0765516..696a108 100644
> --- a/hw/virtio-balloon.c
> +++ b/hw/virtio-balloon.c
> @@ -174,7 +174,8 @@ void *virtio_balloon_init(PCIBus *bus)
> s = (VirtIOBalloon *)virtio_init_pci(bus, "virtio-balloon",
> PCI_VENDOR_ID_REDHAT_QUMRANET,
> PCI_DEVICE_ID_VIRTIO_BALLOON,
> - 0, VIRTIO_ID_BALLOON,
> + PCI_VENDOR_ID_REDHAT_QUMRANET,
> + VIRTIO_ID_BALLOON,
> 0x05, 0x00, 0x00,
> 8, sizeof(VirtIOBalloon));
> if (s == NULL)
> diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
> index e654cc5..847e221 100644
> --- a/hw/virtio-blk.c
> +++ b/hw/virtio-blk.c
> @@ -227,7 +227,8 @@ void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs)
> s = (VirtIOBlock *)virtio_init_pci(bus, "virtio-blk",
> PCI_VENDOR_ID_REDHAT_QUMRANET,
> PCI_DEVICE_ID_VIRTIO_BLOCK,
> - 0, VIRTIO_ID_BLOCK,
> + PCI_VENDOR_ID_REDHAT_QUMRANET,
> + VIRTIO_ID_BLOCK,
> 0x01, 0x80, 0x00,
> sizeof(struct virtio_blk_config), sizeof(VirtIOBlock));
> if (!s)
> diff --git a/hw/virtio-console.c b/hw/virtio-console.c
> index ce20c91..333ffb1 100644
> --- a/hw/virtio-console.c
> +++ b/hw/virtio-console.c
> @@ -128,7 +128,8 @@ void *virtio_console_init(PCIBus *bus, CharDriverState *chr)
> s = (VirtIOConsole *)virtio_init_pci(bus, "virtio-console",
> PCI_VENDOR_ID_REDHAT_QUMRANET,
> PCI_DEVICE_ID_VIRTIO_CONSOLE,
> - 0, VIRTIO_ID_CONSOLE,
> + PCI_VENDOR_ID_REDHAT_QUMRANET,
> + VIRTIO_ID_CONSOLE,
> 0x03, 0x80, 0x00,
> 0, sizeof(VirtIOConsole));
> if (s == NULL)
> diff --git a/hw/virtio-net.c b/hw/virtio-net.c
> index b13914a..28f9280 100644
> --- a/hw/virtio-net.c
> +++ b/hw/virtio-net.c
> @@ -323,7 +323,8 @@ void virtio_net_init(PCIBus *bus, NICInfo *nd, int devfn)
> n = (VirtIONet *)virtio_init_pci(bus, "virtio-net",
> PCI_VENDOR_ID_REDHAT_QUMRANET,
> PCI_DEVICE_ID_VIRTIO_NET,
> - 0, VIRTIO_ID_NET,
> + PCI_VENDOR_ID_REDHAT_QUMRANET,
> + VIRTIO_ID_NET,
> 0x02, 0x00, 0x00,
> sizeof(struct virtio_net_config),
> sizeof(VirtIONet));
>
prev parent reply other threads:[~2009-01-26 17:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-16 11:12 [Qemu-devel] [PATCH 1/3] Use macros for virtio-net PCI vendor/device IDs Mark McLoughlin
2009-01-16 11:12 ` [Qemu-devel] [PATCH 2/3] Add macro for virtio-console PCI device ID Mark McLoughlin
2009-01-16 11:12 ` [Qemu-devel] [PATCH 3/3] Use the default subsystem vendor ID for virtio devices Mark McLoughlin
2009-01-16 11:56 ` [Qemu-devel] [PATCH 2/3] Add macro for virtio-console PCI device ID Gerd Hoffmann
[not found] ` <1232977378.3724.85.camel@blaa>
2009-01-26 15:17 ` Anthony Liguori [this message]
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=497DD3FC.9040706@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=markmc@redhat.com \
--cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).