mirror of
https://github.com/torvalds/linux.git
synced 2024-12-14 07:02:23 +00:00
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: Haren Myneni <hbabu@us.ibm.com> Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
639291f263
commit
39a33b59f4
@ -290,13 +290,6 @@ void post_mobility_fixup(void)
|
||||
int rc;
|
||||
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");
|
||||
if (activate_fw_token == RTAS_UNKNOWN_SERVICE) {
|
||||
printk(KERN_ERR "Could not make post-mobility "
|
||||
@ -304,16 +297,17 @@ void post_mobility_fixup(void)
|
||||
return;
|
||||
}
|
||||
|
||||
rc = rtas_call(activate_fw_token, 0, 1, NULL);
|
||||
if (!rc) {
|
||||
rc = pseries_devicetree_update(MIGRATION_SCOPE);
|
||||
if (rc)
|
||||
printk(KERN_ERR "Secondary post-mobility device tree "
|
||||
"update failed: %d\n", rc);
|
||||
} else {
|
||||
do {
|
||||
rc = rtas_call(activate_fw_token, 0, 1, NULL);
|
||||
} while (rtas_busy_delay(rc));
|
||||
|
||||
if (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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user