diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/powerpc/kernel/prom_init.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index e96f5d0d2c78..b4fa66127495 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) | |||
| 1313 | { | 1313 | { |
| 1314 | long rc; | 1314 | long rc; |
| 1315 | 1315 | ||
| 1316 | /* We must not query for OPAL presence on a machine that | ||
| 1317 | * supports TNK takeover (970 blades), as this uses the same | ||
| 1318 | * h-call with different arguments and will crash | ||
| 1319 | */ | ||
| 1320 | if (PHANDLE_VALID(call_prom("finddevice", 1, 1, | ||
| 1321 | ADDR("/tnk-memory-map")))) { | ||
| 1322 | prom_printf("TNK takeover detected, skipping OPAL check\n"); | ||
| 1323 | return; | ||
| 1324 | } | ||
| 1325 | |||
| 1316 | prom_printf("Querying for OPAL presence... "); | 1326 | prom_printf("Querying for OPAL presence... "); |
| 1317 | rc = opal_query_takeover(&RELOC(prom_opal_size), | 1327 | rc = opal_query_takeover(&RELOC(prom_opal_size), |
| 1318 | &RELOC(prom_opal_align)); | 1328 | &RELOC(prom_opal_align)); |
