Problem with auto-detecting a HV environment from within Linux

Ameya Palande 2ameya at gmail.com
Fri Feb 26 09:47:58 UTC 2010


Hi Greg,

On Fri, Feb 26, 2010 at 2:46 AM, Greg KH <greg at kroah.com> wrote:
>
> On Thu, Feb 25, 2010 at 11:40:52PM +0000, Haiyang Zhang wrote:
> > > -----Original Message-----
> > > From: Greg KH [mailto:greg at kroah.com]
> > > Sent: Thursday, February 25, 2010 6:07 PM
> > > If so, what is the vendor and product id of this device?
> >
> > The Vendor:Device Id is: 1414:5353
> > 00:08.0 VGA compatible controller [0300]: Microsoft Corporation Device [1414:5353]
> >
> > This hasn't been changed since the first release of HyperV. I will ask
> > around about the future stability of the VGA card (and the DMI).
>
> Ok, below are 2 patches that I will queue up in my tree.
>
> Can you test them to verify that they work properly?
>
> thanks,
>
> greg k-h
>
> From: Greg Kroah-Hartman <gregkh at suse.de>
> Subject: Staging: hv: add a pci device table
>
> This allows the HV core to be properly found and autoloaded
> by the system tools.
>
> It uses the Microsoft virtual VGA device to trigger this.
>
> Cc: Haiyang Zhang <haiyangz at microsoft.com>
> Cc: Hank Janssen <hjanssen at microsoft.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
> ---
>  drivers/staging/hv/vmbus_drv.c |   17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> --- a/drivers/staging/hv/vmbus_drv.c
> +++ b/drivers/staging/hv/vmbus_drv.c
> @@ -24,6 +24,7 @@
>  #include <linux/irq.h>
>  #include <linux/interrupt.h>
>  #include <linux/sysctl.h>
> +#include <linux/pci.h>
>  #include "VersionInfo.h"
>  #include "osd.h"
>  #include "logging.h"
> @@ -974,6 +975,22 @@ static void __exit vmbus_exit(void)
>        return;
>  }
>
> +/*
> + * We use a PCI table to determine if we should autoload this driver  This is
> + * needed by distro tools to determine if the hyperv drivers should be
> + * installed and/or configured.  We don't do anything else with the table, but
> + * it needs to be present.
> + *
> + * We might consider triggering off of DMI table info as well, as that does
> + * decribe the virtual machine being run on, but not all configuration tools
> + * seem to be able to handle DMI device ids properly.
> + */
> +const static struct pci_device_id microsoft_hv_pci_table[] = {

You can have:
const static DEFINE_PCI_DEVICE_TABLE(microsoft_hv_pci_table) = {

> +       { PCI_DEVICE(0x1414, 0x5353) }, /* VGA compatible controller */
> +       { 0 }
> +};
> +MODULE_DEVICE_TABLE(pci, microsoft_hv_pci_table);
> +

Cheers,
Ameya.



More information about the devel mailing list