On Thu, May 22, 2014 at 11:55:57AM +0200, Alexander Graf wrote:
>
>On 22.05.14 10:23, Gavin Shan wrote:
>>If we detects frozen state on PE that has been passed through to somebody
>>else. we needn't handle it. Instead, we rely on the device's owner to
>>detect and recover it. The patch avoid EEH event on the frozen passed PE so
>>that the device's owner can have chance to handle that.
>>
>>Signed-off-by: Gavin Shan <gws...@linux.vnet.ibm.com>
>
>I think you want to fold this with patch 1/3.
>

Yes, I'll do it in next revision.

Thanks,
Gavin

>>---
>>  arch/powerpc/kernel/eeh.c                 | 8 ++++++++
>>  arch/powerpc/platforms/powernv/eeh-ioda.c | 3 ++-
>>  2 files changed, 10 insertions(+), 1 deletion(-)
>>
>>diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
>>index b90a474..aee6cc5 100644
>>--- a/arch/powerpc/kernel/eeh.c
>>+++ b/arch/powerpc/kernel/eeh.c
>>@@ -403,6 +403,14 @@ int eeh_dev_check_failure(struct eeh_dev *edev)
>>      if (ret > 0)
>>              return ret;
>>+     /*
>>+      * If the PE isn't owned by us, we shouldn't check the
>>+      * state. Instead, let the owner handle it if the PE has
>>+      * been frozen.
>>+      */
>>+     if (eeh_pe_passed(pe))
>>+             return 0;
>>+
>>      /* If we already have a pending isolation event for this
>>       * slot, we know it's bad already, we don't need to check.
>>       * Do this checking under a lock; as multiple PCI devices
>>diff --git a/arch/powerpc/platforms/powernv/eeh-ioda.c 
>>b/arch/powerpc/platforms/powernv/eeh-ioda.c
>>index 1b5982f..03a3ed2 100644
>>--- a/arch/powerpc/platforms/powernv/eeh-ioda.c
>>+++ b/arch/powerpc/platforms/powernv/eeh-ioda.c
>>@@ -890,7 +890,8 @@ static int ioda_eeh_next_error(struct eeh_pe **pe)
>>                              opal_pci_eeh_freeze_clear(phb->opal_id, 
>> frozen_pe_no,
>>                                      OPAL_EEH_ACTION_CLEAR_FREEZE_ALL);
>>                              ret = EEH_NEXT_ERR_NONE;
>>-                     } else if ((*pe)->state & EEH_PE_ISOLATED) {
>>+                     } else if ((*pe)->state & EEH_PE_ISOLATED ||
>>+                                eeh_pe_passed(*pe)) {
>>                              ret = EEH_NEXT_ERR_NONE;
>>                      } else {
>>                              pr_err("EEH: Frozen PHB#%x-PE#%x (%s) 
>> detected\n",
>

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to