On Wed, Oct 07, 2015 at 02:12:05PM +1100, Gavin Shan wrote: >On PowerNV platform, the PE is kept in frozen state until the PE >reset is completed to avoid recursive EEH error caused by MMIO >access during the period of EEH reset. The PE's frozen state is >cleared after BARs of PCI device included in the PE are restored >and enabled. However, we needn't clear the frozen state for PHB PE >explicitly at this point as there is no real PE for PHB PE. As the >PHB PE is always binding with PE#0, we actually clear PE#0, which >is wrong. It doesn't incur any problem though. > >This checks if the PE is PHB PE and doesn't clear the frozen state >if it is. > >Signed-off-by: Gavin Shan <gws...@linux.vnet.ibm.com>
Michael, please ignore this series for now. One or two patches are still missed. Also, this series needs respin. Thanks, Gavin >--- > arch/powerpc/kernel/eeh_driver.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > >diff --git a/arch/powerpc/kernel/eeh_driver.c >b/arch/powerpc/kernel/eeh_driver.c >index 89eb4bc..3a626ed 100644 >--- a/arch/powerpc/kernel/eeh_driver.c >+++ b/arch/powerpc/kernel/eeh_driver.c >@@ -587,10 +587,16 @@ static int eeh_reset_device(struct eeh_pe *pe, struct >pci_bus *bus) > eeh_ops->configure_bridge(pe); > eeh_pe_restore_bars(pe); > >- /* Clear frozen state */ >- rc = eeh_clear_pe_frozen_state(pe, false); >- if (rc) >- return rc; >+ /* >+ * If it's PHB PE, the frozen state on all available PEs should have >+ * been cleared by the PHB reset. Otherwise, we unfreeze the PE and its >+ * child PEs because they might be in frozen state. >+ */ >+ if (!(pe->type & EEH_PE_PHB)) { >+ rc = eeh_clear_pe_frozen_state(pe, false); >+ if (rc) >+ return rc; >+ } > > /* Give the system 5 seconds to finish running the user-space > * hotplug shutdown scripts, e.g. ifdown for ethernet. Yes, >-- >2.1.0 > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev