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