On 01/22/2014 01:58 PM, Tyrel Datwyler wrote: > From: Haren Myneni <[email protected]> > > From: Haren Myneni <[email protected]> > > 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 <[email protected]> > Signed-off-by: Tyrel Datwyler <[email protected]>
Acked-by: Nathan fontenot <[email protected]> > --- > arch/powerpc/platforms/pseries/mobility.c | 26 ++++++++++---------------- > 1 file changed, 10 insertions(+), 16 deletions(-) > > diff --git a/arch/powerpc/platforms/pseries/mobility.c > b/arch/powerpc/platforms/pseries/mobility.c > index cde4e0a..bde7eba 100644 > --- a/arch/powerpc/platforms/pseries/mobility.c > +++ b/arch/powerpc/platforms/pseries/mobility.c > @@ -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; > } > _______________________________________________ Linuxppc-dev mailing list [email protected] https://lists.ozlabs.org/listinfo/linuxppc-dev
