[PATCH v2 06/18] x86/PCI: MMCONFIG: reject MMCONFIG apertures at address zero

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Since all MMCONFIG regions go through pci_mmconfig_add(), we can test the
address once there.  If the caller supplies an address of zero, we never
insert it in the pci_mmcfg_config[] table, so no need to test it elsewhere.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
---
 arch/x86/pci/mmconfig-shared.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index a0cc4d2..067a2cf 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -41,6 +41,9 @@ static __init struct acpi_mcfg_allocation *pci_mmconfig_add(int segment,
 	int new_num = pci_mmcfg_config_num + 1;
 	int i = pci_mmcfg_config_num;
 
+	if (addr == 0)
+		return NULL;
+
 	new = kzalloc(sizeof(pci_mmcfg_config[0]) * new_num, GFP_KERNEL);
 	if (!new)
 		return NULL;
@@ -471,8 +474,7 @@ static void __init pci_mmcfg_reject_broken(int early)
 	typeof(pci_mmcfg_config[0]) *cfg;
 	int i;
 
-	if ((pci_mmcfg_config_num == 0) ||
-	    (pci_mmcfg_config[0].address == 0))
+	if (pci_mmcfg_config_num == 0)
 		return;
 
 	for (i = 0; i < pci_mmcfg_config_num; i++) {
@@ -616,8 +618,7 @@ static void __init __pci_mmcfg_init(int early)
 
 	pci_mmcfg_reject_broken(early);
 
-	if ((pci_mmcfg_config_num == 0) ||
-	    (pci_mmcfg_config[0].address == 0))
+	if (pci_mmcfg_config_num == 0)
 		return;
 
 	if (pci_mmcfg_arch_init())
@@ -649,8 +650,7 @@ static int __init pci_mmcfg_late_insert_resources(void)
 	 */
 	if ((pci_mmcfg_resources_inserted == 1) ||
 	    (pci_probe & PCI_PROBE_MMCONF) == 0 ||
-	    (pci_mmcfg_config_num == 0) ||
-	    (pci_mmcfg_config[0].address == 0))
+	    (pci_mmcfg_config_num == 0))
 		return 1;
 
 	/*

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux