Message ID | 20180301180220.11333-3-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
Hi Andy, On Thu, 1 Mar 2018 20:02:18 +0200, Andy Shevchenko wrote: > Use new dmi_get_bios_year() helper instead of open-coding its > functionality. > > No changes in functionality. > > Acked-by: Bjorn Helgaas <bhelgaas@google.com> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > arch/x86/pci/acpi.c | 10 +++++----- > arch/x86/pci/direct.c | 5 ++--- > arch/x86/pci/mmconfig-shared.c | 9 ++------- > 3 files changed, 9 insertions(+), 15 deletions(-) > > diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c > index 7df49c40665e..52b22137243f 100644 > --- a/arch/x86/pci/acpi.c > +++ b/arch/x86/pci/acpi.c > @@ -138,14 +138,14 @@ static const struct dmi_system_id pci_crs_quirks[] __initconst = { > {} > }; > > +#define in_range(b, first, len) ((b) >= (first) && (b) <= (first) + (len) - 1) > + > void __init pci_acpi_crs_quirks(void) > { > - int year; > + int year = dmi_get_bios_year(); > > - if (dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL) && year < 2008) { > - if (iomem_resource.end <= 0xffffffff) > - pci_use_crs = false; > - } > + if (in_range(year, 0, 2008) && iomem_resource.end <= 0xffffffff) I don't like this, sorry. I find "in_range" confusing, there are many definitions of it throughout the kernel which differ in the details (some take a length as 3rd parameter, others take upper boundary, some include the boundaries, some do not...) The following: if (year >= 0 && year < 2008 && iomem_resource.end <= 0xffffffff) is a lot more readable in my opinion. No need to look-up a tricky macro definition to figure what happens if year is 2008. > + pci_use_crs = false; > > dmi_check_system(pci_crs_quirks);
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c index 7df49c40665e..52b22137243f 100644 --- a/arch/x86/pci/acpi.c +++ b/arch/x86/pci/acpi.c @@ -138,14 +138,14 @@ static const struct dmi_system_id pci_crs_quirks[] __initconst = { {} }; +#define in_range(b, first, len) ((b) >= (first) && (b) <= (first) + (len) - 1) + void __init pci_acpi_crs_quirks(void) { - int year; + int year = dmi_get_bios_year(); - if (dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL) && year < 2008) { - if (iomem_resource.end <= 0xffffffff) - pci_use_crs = false; - } + if (in_range(year, 0, 2008) && iomem_resource.end <= 0xffffffff) + pci_use_crs = false; dmi_check_system(pci_crs_quirks); diff --git a/arch/x86/pci/direct.c b/arch/x86/pci/direct.c index 2d9503323d10..a51074c55982 100644 --- a/arch/x86/pci/direct.c +++ b/arch/x86/pci/direct.c @@ -195,14 +195,13 @@ static const struct pci_raw_ops pci_direct_conf2 = { static int __init pci_sanity_check(const struct pci_raw_ops *o) { u32 x = 0; - int year, devfn; + int devfn; if (pci_probe & PCI_NO_CHECKS) return 1; /* Assume Type 1 works for newer systems. This handles machines that don't have anything on PCI Bus 0. */ - dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL); - if (year >= 2001) + if (dmi_get_bios_year() >= 2001) return 1; for (devfn = 0; devfn < 0x100; devfn++) { diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c index 96684d0adcf9..5b93f9933562 100644 --- a/arch/x86/pci/mmconfig-shared.c +++ b/arch/x86/pci/mmconfig-shared.c @@ -547,19 +547,14 @@ static void __init pci_mmcfg_reject_broken(int early) static int __init acpi_mcfg_check_entry(struct acpi_table_mcfg *mcfg, struct acpi_mcfg_allocation *cfg) { - int year; - if (cfg->address < 0xFFFFFFFF) return 0; if (!strncmp(mcfg->header.oem_id, "SGI", 3)) return 0; - if (mcfg->header.revision >= 1) { - if (dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL) && - year >= 2010) - return 0; - } + if (mcfg->header.revision >= 1 && dmi_get_bios_year() >= 2010) + return 0; pr_err(PREFIX "MCFG region for %04x [bus %02x-%02x] at %#llx " "is above 4GB, ignored\n", cfg->pci_segment,