A clocksource driver for HyperV

Greg KH gregkh at suse.de
Mon Apr 5 22:03:52 UTC 2010


On Mon, Apr 05, 2010 at 02:36:59PM -0700, Jeremy Fitzhardinge wrote:
> >+static struct dmi_system_id __initconst
> >+hv_timesource_dmi_table[] __maybe_unused  = {
> >+	{
> >+		.ident = "Hyper-V",
> >+		.matches = {
> >+			DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
> >+			DMI_MATCH(DMI_PRODUCT_NAME, "Virtual Machine"),
> >+			DMI_MATCH(DMI_BOARD_NAME, "Virtual Machine"),
> >+		},
> >+	},
> >+	{ },
> >+};
> >+MODULE_DEVICE_TABLE(dmi, hv_timesource_dmi_table);
> 
> So you use the DMI signatures to determine whether the module is
> needed, but cpuid to work out if the feature is present?

The DMI and PCI stuff is to handle module autoloading.  Ideally we would
just use the DMI matching, but some distro installers can't handle that,
so we also add the PCI stuff.  The hyperv core already has this in it.

> >+
> >+static struct pci_device_id __initconst
> >+hv_timesource_pci_table[] __maybe_unused = {
> >+	{ PCI_DEVICE(0x1414, 0x5353) }, /* VGA compatible controller */
> >+	{ 0 }
> >+};
> >+MODULE_DEVICE_TABLE(pci, hv_timesource_pci_table);
> 
> And/or PCI?
> 
> Seems a bit... ad-hoc?  Is this the official way to determine the
> presence of Hyper-V?

Yeah, it is :(

thanks,

greg k-h



More information about the devel mailing list