[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/3] x86/dmi: Drop trivial callback functions
dmi_check_system() returns the number of matches. This being nonzero is more efficient than calling into a trivial function to modify a variable. No functional change, but this results in less compiled code, which is also (fractionally) quicker to run. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Wei Liu <wl@xxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- xen/arch/x86/ioport_emulate.c | 18 +++--------------- xen/arch/x86/x86_64/mmconf-fam10h.c | 10 ++-------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/xen/arch/x86/ioport_emulate.c b/xen/arch/x86/ioport_emulate.c index c2aded7668..504bc513e2 100644 --- a/xen/arch/x86/ioport_emulate.c +++ b/xen/arch/x86/ioport_emulate.c @@ -33,12 +33,6 @@ static bool ioemul_handle_proliant_quirk( return true; } -static int __init proliant_quirk(struct dmi_system_id *d) -{ - ioemul_handle_quirk = ioemul_handle_proliant_quirk; - return 0; -} - /* This table is the set of system-specific I/O emulation hooks. */ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { /* @@ -46,7 +40,6 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { * 'special' SMM goodness. */ { - .callback = proliant_quirk, .ident = "HP ProLiant DL3xx", .matches = { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), @@ -54,7 +47,6 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { }, }, { - .callback = proliant_quirk, .ident = "HP ProLiant DL5xx", .matches = { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), @@ -62,7 +54,6 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { }, }, { - .callback = proliant_quirk, .ident = "HP ProLiant DL7xx", .matches = { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), @@ -70,7 +61,6 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { }, }, { - .callback = proliant_quirk, .ident = "HP ProLiant ML3xx", .matches = { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), @@ -78,7 +68,6 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { }, }, { - .callback = proliant_quirk, .ident = "HP ProLiant ML5xx", .matches = { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), @@ -86,7 +75,6 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { }, }, { - .callback = proliant_quirk, .ident = "HP ProLiant BL2xx", .matches = { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), @@ -94,7 +82,6 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { }, }, { - .callback = proliant_quirk, .ident = "HP ProLiant BL4xx", .matches = { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), @@ -102,7 +89,6 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { }, }, { - .callback = proliant_quirk, .ident = "HP ProLiant BL6xx", .matches = { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), @@ -114,7 +100,9 @@ static struct dmi_system_id __initdata ioport_quirks_tbl[] = { static int __init ioport_quirks_init(void) { - dmi_check_system(ioport_quirks_tbl); + if ( dmi_check_system(ioport_quirks_tbl) ) + ioemul_handle_quirk = ioemul_handle_proliant_quirk; + return 0; } __initcall(ioport_quirks_init); diff --git a/xen/arch/x86/x86_64/mmconf-fam10h.c b/xen/arch/x86/x86_64/mmconf-fam10h.c index f997688ad4..fa2f5b4881 100644 --- a/xen/arch/x86/x86_64/mmconf-fam10h.c +++ b/xen/arch/x86/x86_64/mmconf-fam10h.c @@ -185,15 +185,8 @@ void fam10h_check_enable_mmcfg(void) wrmsrl(MSR_FAM10H_MMIO_CONF_BASE, val); } -static int __init set_check_enable_amd_mmconf(struct dmi_system_id *d) -{ - pci_probe |= PCI_CHECK_ENABLE_AMD_MMCONF; - return 0; -} - static struct dmi_system_id __initdata mmconf_dmi_table[] = { { - .callback = set_check_enable_amd_mmconf, .ident = "Sun Microsystems Machine", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Sun Microsystems"), @@ -204,5 +197,6 @@ static struct dmi_system_id __initdata mmconf_dmi_table[] = { void __init check_enable_amd_mmconf_dmi(void) { - dmi_check_system(mmconf_dmi_table); + if (dmi_check_system(mmconf_dmi_table)) + pci_probe |= PCI_CHECK_ENABLE_AMD_MMCONF; } -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |