From 4209ab098c61b1a9684bb4d3fc287352fc2438c3 Mon Sep 17 00:00:00 2001
From: "David S. Miller" <davem@sunset.davemloft.net>
Date: Mon, 15 Oct 2007 20:45:32 -0700
Subject: [PATCH] [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>
---
 arch/sparc64/kernel/pci_common.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/sparc64/kernel/pci_common.c b/arch/sparc64/kernel/pci_common.c
index c76bfbb7da085..923e0bcc3bfdb 100644
--- a/arch/sparc64/kernel/pci_common.c
+++ b/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;
 	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);
 
 	for (i = 0; i < num_pbm_ranges; i++) {
-- 
GitLab