diff options
Diffstat (limited to 'arch/powerpc/platforms/pseries/mobility.c')
-rw-r--r-- | arch/powerpc/platforms/pseries/mobility.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c index cde4e0a095ae..bde7ebad3949 100644 --- a/arch/powerpc/platforms/pseries/mobility.c +++ b/arch/powerpc/platforms/pseries/mobility.c | |||
@@ -290,13 +290,6 @@ void post_mobility_fixup(void) | |||
290 | int rc; | 290 | int rc; |
291 | int activate_fw_token; | 291 | int activate_fw_token; |
292 | 292 | ||
293 | rc = pseries_devicetree_update(MIGRATION_SCOPE); | ||
294 | if (rc) { | ||
295 | printk(KERN_ERR "Initial post-mobility device tree update " | ||
296 | "failed: %d\n", rc); | ||
297 | return; | ||
298 | } | ||
299 | |||
300 | activate_fw_token = rtas_token("ibm,activate-firmware"); | 293 | activate_fw_token = rtas_token("ibm,activate-firmware"); |
301 | if (activate_fw_token == RTAS_UNKNOWN_SERVICE) { | 294 | if (activate_fw_token == RTAS_UNKNOWN_SERVICE) { |
302 | printk(KERN_ERR "Could not make post-mobility " | 295 | printk(KERN_ERR "Could not make post-mobility " |
@@ -304,16 +297,17 @@ void post_mobility_fixup(void) | |||
304 | return; | 297 | return; |
305 | } | 298 | } |
306 | 299 | ||
307 | rc = rtas_call(activate_fw_token, 0, 1, NULL); | 300 | do { |
308 | if (!rc) { | 301 | rc = rtas_call(activate_fw_token, 0, 1, NULL); |
309 | rc = pseries_devicetree_update(MIGRATION_SCOPE); | 302 | } while (rtas_busy_delay(rc)); |
310 | if (rc) | 303 | |
311 | printk(KERN_ERR "Secondary post-mobility device tree " | 304 | if (rc) |
312 | "update failed: %d\n", rc); | ||
313 | } else { | ||
314 | printk(KERN_ERR "Post-mobility activate-fw failed: %d\n", rc); | 305 | printk(KERN_ERR "Post-mobility activate-fw failed: %d\n", rc); |
315 | return; | 306 | |
316 | } | 307 | rc = pseries_devicetree_update(MIGRATION_SCOPE); |
308 | if (rc) | ||
309 | printk(KERN_ERR "Post-mobility device tree update " | ||
310 | "failed: %d\n", rc); | ||
317 | 311 | ||
318 | return; | 312 | return; |
319 | } | 313 | } |