提交 39a33b59 编写于 作者: H Haren Myneni 提交者: Benjamin Herrenschmidt

powerpc/pseries: Device tree should only be updated once after suspend/migrate

The current code makes rtas calls for update-nodes, activate-firmware and then
update-nodes again. The FW provides the same data for both update-nodes calls.
As a result a proc entry exists error is reported for the second update while
adding device nodes.

This patch makes a single rtas call for update-nodes after activating the FW.
It also add rtas_busy delay for the activate-firmware rtas call.
Signed-off-by: NHaren Myneni <hbabu@us.ibm.com>
Signed-off-by: NTyrel Datwyler <tyreld@linux.vnet.ibm.com>
Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
上级 639291f2
...@@ -290,13 +290,6 @@ void post_mobility_fixup(void) ...@@ -290,13 +290,6 @@ void post_mobility_fixup(void)
int rc; int rc;
int activate_fw_token; int activate_fw_token;
rc = pseries_devicetree_update(MIGRATION_SCOPE);
if (rc) {
printk(KERN_ERR "Initial post-mobility device tree update "
"failed: %d\n", rc);
return;
}
activate_fw_token = rtas_token("ibm,activate-firmware"); activate_fw_token = rtas_token("ibm,activate-firmware");
if (activate_fw_token == RTAS_UNKNOWN_SERVICE) { if (activate_fw_token == RTAS_UNKNOWN_SERVICE) {
printk(KERN_ERR "Could not make post-mobility " printk(KERN_ERR "Could not make post-mobility "
...@@ -304,16 +297,17 @@ void post_mobility_fixup(void) ...@@ -304,16 +297,17 @@ void post_mobility_fixup(void)
return; return;
} }
rc = rtas_call(activate_fw_token, 0, 1, NULL); do {
if (!rc) { rc = rtas_call(activate_fw_token, 0, 1, NULL);
rc = pseries_devicetree_update(MIGRATION_SCOPE); } while (rtas_busy_delay(rc));
if (rc)
printk(KERN_ERR "Secondary post-mobility device tree " if (rc)
"update failed: %d\n", rc);
} else {
printk(KERN_ERR "Post-mobility activate-fw failed: %d\n", rc); printk(KERN_ERR "Post-mobility activate-fw failed: %d\n", rc);
return;
} rc = pseries_devicetree_update(MIGRATION_SCOPE);
if (rc)
printk(KERN_ERR "Post-mobility device tree update "
"failed: %d\n", rc);
return; return;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册