Patchwork powerpc: Don't try OPAL takeover on old 970 blades

login
register
mail settings
Submitter Benjamin Herrenschmidt
Date Sept. 29, 2011, 6:51 a.m.
Message ID <1317279106.29415.179.camel@pasglop>
Download mbox | patch
Permalink /patch/116905/
State Accepted, archived
Headers show

Comments

Benjamin Herrenschmidt - Sept. 29, 2011, 6:51 a.m.
The firmware on old 970 blades supports some kind of takeover called
"TNK takeover" which will crash if we try to probe for OPAL takeover,
so don't do it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

Patch

diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index e96f5d0..b4fa661 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -1313,6 +1313,16 @@  static void prom_query_opal(void)
 {
 	long rc;
 
+	/* We must not query for OPAL presence on a machine that
+	 * supports TNK takeover (970 blades), as this uses the same
+	 * h-call with different arguments and will crash
+	 */
+	if (PHANDLE_VALID(call_prom("finddevice", 1, 1,
+				    ADDR("/tnk-memory-map")))) {
+		prom_printf("TNK takeover detected, skipping OPAL check\n");
+		return;
+	}
+
 	prom_printf("Querying for OPAL presence... ");
 	rc = opal_query_takeover(&RELOC(prom_opal_size),
 				 &RELOC(prom_opal_align));