qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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));
>   

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