[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1330556858-11768-15-git-send-email-yinghai@kernel.org>
Date: Wed, 29 Feb 2012 15:07:13 -0800
From: Yinghai Lu <yinghai@...nel.org>
To: Jesse Barnes <jbarnes@...tuousgeek.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Tony Luck <tony.luck@...el.com>,
David Miller <davem@...emloft.net>, x86 <x86@...nel.org>
Cc: Bjorn Helgaas <bhelgaas@...gle.com>,
Dominik Brodowski <linux@...inikbrodowski.net>,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arch@...r.kernel.org, Yinghai Lu <yinghai@...nel.org>
Subject: [PATCH 14/39] x86, PCI: allocate temp range array in amd_bus pci_root_info probing
Signed-off-by: Yinghai Lu <yinghai@...nel.org>
---
arch/x86/pci/amd_bus.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
index 5f30a98..aff155d 100644
--- a/arch/x86/pci/amd_bus.c
+++ b/arch/x86/pci/amd_bus.c
@@ -30,7 +30,7 @@ static struct pci_hostbridge_probe pci_probes[] __initdata = {
{ 0, 0x18, PCI_VENDOR_ID_AMD, 0x1300 },
};
-#define RANGE_NUM 16
+#define RANGE_NUM 128
static struct pci_root_info __init *find_pci_root_info(int node, int link)
{
@@ -64,7 +64,7 @@ static int __init early_fill_mp_bus_info(void)
u32 reg;
u64 start;
u64 end;
- struct range range[RANGE_NUM];
+ struct range *range;
u64 val;
u32 address;
bool found;
@@ -125,7 +125,10 @@ static int __init early_fill_mp_bus_info(void)
reg = read_pci_config(bus, slot, 0, 0x64);
def_link = (reg >> 8) & 0x03;
- memset(range, 0, sizeof(range));
+ range = kcalloc(RANGE_NUM, sizeof(struct range), GFP_KERNEL);
+ if (!range)
+ return -ENOMEM;
+
add_range(range, RANGE_NUM, 0, 0, 0xffff + 1);
/* io port resource */
for (i = 0; i < 4; i++) {
@@ -291,6 +294,8 @@ static int __init early_fill_mp_bus_info(void)
}
}
+ kfree(range);
+
print_all_pci_root_info("ht link", true);
return 0;
--
1.7.7
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists