Browse Source

[SPARC64]: Check of_get_property() return in pci_determine_mem_io_space().

If the PCI controller lacks the 'ranges' property nothing
is going to work.

Noticed by Al Viro.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 17 years ago
parent
commit
4209ab098c
1 changed files with 7 additions and 0 deletions
  1. 7 0
      arch/sparc64/kernel/pci_common.c

+ 7 - 0
arch/sparc64/kernel/pci_common.c

@@ -396,6 +396,13 @@ void pci_determine_mem_io_space(struct pci_pbm_info *pbm)
 
 
 	saw_mem = saw_io = 0;
 	saw_mem = saw_io = 0;
 	pbm_ranges = of_get_property(pbm->prom_node, "ranges", &i);
 	pbm_ranges = of_get_property(pbm->prom_node, "ranges", &i);
+	if (!pbm_ranges) {
+		prom_printf("PCI: Fatal error, missing PBM ranges property "
+			    " for %s\n",
+			    pbm->name);
+		prom_halt();
+	}
+
 	num_pbm_ranges = i / sizeof(*pbm_ranges);
 	num_pbm_ranges = i / sizeof(*pbm_ranges);
 
 
 	for (i = 0; i < num_pbm_ranges; i++) {
 	for (i = 0; i < num_pbm_ranges; i++) {