aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/pci-calgary_64.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/pci-calgary_64.c')
-rw-r--r--arch/x86/kernel/pci-calgary_64.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
index 218d783ed7a8..363a74ec7a76 100644
--- a/arch/x86/kernel/pci-calgary_64.c
+++ b/arch/x86/kernel/pci-calgary_64.c
@@ -1269,13 +1269,15 @@ static inline int __init determine_tce_table_size(u64 ram)
1269static int __init build_detail_arrays(void) 1269static int __init build_detail_arrays(void)
1270{ 1270{
1271 unsigned long ptr; 1271 unsigned long ptr;
1272 int i, scal_detail_size, rio_detail_size; 1272 unsigned numnodes, i;
1273 int scal_detail_size, rio_detail_size;
1273 1274
1274 if (rio_table_hdr->num_scal_dev > MAX_NUMNODES){ 1275 numnodes = rio_table_hdr->num_scal_dev;
1276 if (numnodes > MAX_NUMNODES){
1275 printk(KERN_WARNING 1277 printk(KERN_WARNING
1276 "Calgary: MAX_NUMNODES too low! Defined as %d, " 1278 "Calgary: MAX_NUMNODES too low! Defined as %d, "
1277 "but system has %d nodes.\n", 1279 "but system has %d nodes.\n",
1278 MAX_NUMNODES, rio_table_hdr->num_scal_dev); 1280 MAX_NUMNODES, numnodes);
1279 return -ENODEV; 1281 return -ENODEV;
1280 } 1282 }
1281 1283
@@ -1296,8 +1298,7 @@ static int __init build_detail_arrays(void)
1296 } 1298 }
1297 1299
1298 ptr = ((unsigned long)rio_table_hdr) + 3; 1300 ptr = ((unsigned long)rio_table_hdr) + 3;
1299 for (i = 0; i < rio_table_hdr->num_scal_dev; 1301 for (i = 0; i < numnodes; i++, ptr += scal_detail_size)
1300 i++, ptr += scal_detail_size)
1301 scal_devs[i] = (struct scal_detail *)ptr; 1302 scal_devs[i] = (struct scal_detail *)ptr;
1302 1303
1303 for (i = 0; i < rio_table_hdr->num_rio_dev; 1304 for (i = 0; i < rio_table_hdr->num_rio_dev;