linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: kvm-ppc@vger.kernel.org
Cc: aik@ozlabs.ru, agraf@suse.de,
	Gavin Shan <gwshan@linux.vnet.ibm.com>,
	alex.williamson@redhat.com, qiudayu@linux.vnet.ibm.com,
	linuxppc-dev@lists.ozlabs.org
Subject: [PATCH v6 3/3] powerpc/eeh: Avoid event on passed PE
Date: Thu, 22 May 2014 18:23:54 +1000	[thread overview]
Message-ID: <1400747034-15045-4-git-send-email-gwshan@linux.vnet.ibm.com> (raw)
In-Reply-To: <1400747034-15045-1-git-send-email-gwshan@linux.vnet.ibm.com>

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 <gwshan@linux.vnet.ibm.com>
---
 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",
-- 
1.8.3.2

  parent reply	other threads:[~2014-05-22  8:24 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-22  8:23 [PATCH v6 0/3] EEH Support for VFIO PCI device Gavin Shan
2014-05-22  8:23 ` [PATCH v6 1/3] powerpc/eeh: Flags for passed device and PE Gavin Shan
2014-05-22  8:23 ` [PATCH v6 2/3] drivers/vfio: EEH support for VFIO PCI device Gavin Shan
2014-05-22  9:55   ` Alexander Graf
2014-05-23  0:17     ` Gavin Shan
2014-05-23  0:37       ` Gavin Shan
2014-05-23  3:23         ` Alex Williamson
2014-05-23  6:52           ` Alexander Graf
2014-05-23 11:58             ` Gavin Shan
2014-05-23 12:30               ` Alexander Graf
2014-05-23 14:49                 ` Alex Williamson
2014-05-24  1:37                   ` Gavin Shan
2014-05-23 12:51             ` Alex Williamson
2014-05-23 13:24               ` Alexander Graf
2014-05-23  3:10   ` Alex Williamson
2014-05-23  4:37     ` Gavin Shan
2014-05-23  5:00       ` Benjamin Herrenschmidt
2014-05-23 14:36         ` Alex Williamson
2014-05-23  6:55       ` Alexander Graf
2014-05-23  7:37         ` Gavin Shan
2014-05-23  9:58           ` Alexander Graf
2014-05-23 11:55             ` Gavin Shan
2014-05-23 11:58               ` Alexander Graf
2014-05-23 12:43                 ` Gavin Shan
2014-05-23 12:49                   ` Alexander Graf
2014-05-24  1:46                     ` Gavin Shan
2014-05-23 14:29       ` Alex Williamson
2014-05-24  2:06         ` Gavin Shan
2014-05-27 17:39           ` Alex Williamson
2014-05-22  8:23 ` Gavin Shan [this message]
2014-05-22  9:55   ` [PATCH v6 3/3] powerpc/eeh: Avoid event on passed PE Alexander Graf
2014-05-23  0:01     ` Gavin Shan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1400747034-15045-4-git-send-email-gwshan@linux.vnet.ibm.com \
    --to=gwshan@linux.vnet.ibm.com \
    --cc=agraf@suse.de \
    --cc=aik@ozlabs.ru \
    --cc=alex.williamson@redhat.com \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=qiudayu@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).