From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: ruscur@russell.cc, mpe@ellerman.id.au,
Gavin Shan <gwshan@linux.vnet.ibm.com>
Subject: [PATCH v15 10/12] powerpc/eeh: Don't propagate error to guest
Date: Fri, 4 Mar 2016 10:53:12 +1100 [thread overview]
Message-ID: <1457049194-9281-11-git-send-email-gwshan@linux.vnet.ibm.com> (raw)
In-Reply-To: <1457049194-9281-1-git-send-email-gwshan@linux.vnet.ibm.com>
When EEH error happened to the parent PE of those PEs that have
been passed through to guest, the error is propagated to guest
domain and the VFIO driver's error handlers are called. It's not
correct as the error in the host domain shouldn't be propagated
to guests and affect them.
This adds one more limitation when calling EEH error handlers.
If the PE has been passed through to guest, the error handlers
won't be called.
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Reviewed-by: Russell Currey <ruscur@russell.cc>
---
arch/powerpc/kernel/eeh_driver.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c
index c0fe7a6..6c59de8 100644
--- a/arch/powerpc/kernel/eeh_driver.c
+++ b/arch/powerpc/kernel/eeh_driver.c
@@ -195,7 +195,7 @@ static void *eeh_report_error(void *data, void *userdata)
enum pci_ers_result rc, *res = userdata;
struct pci_driver *driver;
- if (!dev || eeh_dev_removed(edev))
+ if (!dev || eeh_dev_removed(edev) || eeh_pe_passed(edev->pe))
return NULL;
dev->error_state = pci_channel_io_frozen;
@@ -237,7 +237,7 @@ static void *eeh_report_mmio_enabled(void *data, void *userdata)
enum pci_ers_result rc, *res = userdata;
struct pci_driver *driver;
- if (!dev || eeh_dev_removed(edev))
+ if (!dev || eeh_dev_removed(edev) || eeh_pe_passed(edev->pe))
return NULL;
driver = eeh_pcid_get(dev);
@@ -277,7 +277,7 @@ static void *eeh_report_reset(void *data, void *userdata)
enum pci_ers_result rc, *res = userdata;
struct pci_driver *driver;
- if (!dev || eeh_dev_removed(edev))
+ if (!dev || eeh_dev_removed(edev) || eeh_pe_passed(edev->pe))
return NULL;
dev->error_state = pci_channel_io_normal;
@@ -336,7 +336,7 @@ static void *eeh_report_resume(void *data, void *userdata)
bool was_in_error;
struct pci_driver *driver;
- if (!dev || eeh_dev_removed(edev))
+ if (!dev || eeh_dev_removed(edev) || eeh_pe_passed(edev->pe))
return NULL;
dev->error_state = pci_channel_io_normal;
@@ -375,7 +375,7 @@ static void *eeh_report_failure(void *data, void *userdata)
struct pci_dev *dev = eeh_dev_to_pci_dev(edev);
struct pci_driver *driver;
- if (!dev || eeh_dev_removed(edev))
+ if (!dev || eeh_dev_removed(edev) || eeh_pe_passed(edev->pe))
return NULL;
dev->error_state = pci_channel_io_perm_failure;
--
2.1.0
next prev parent reply other threads:[~2016-03-03 23:54 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-03 23:53 [PATCH v15 00/12] EEH Support for SRIOV VFs Gavin Shan
2016-03-03 23:53 ` [PATCH v15 01/12] PCI/IOV: Rename and export virtfn_{add, remove} Gavin Shan
2016-03-09 12:51 ` [v15,01/12] " Michael Ellerman
2016-03-03 23:53 ` [PATCH v15 02/12] PCI: Add pcibios_bus_add_device() weak function Gavin Shan
2016-03-03 23:53 ` [PATCH v15 03/12] powerpc/pci: Remove VFs prior to PF Gavin Shan
2016-03-03 23:53 ` [PATCH v15 04/12] powerpc/eeh: Cache normal BARs, not windows or IOV BARs Gavin Shan
2016-03-03 23:53 ` [PATCH v15 05/12] powerpc/eeh: EEH device for VF Gavin Shan
2016-03-03 23:53 ` [PATCH v15 06/12] powerpc/eeh: Create PE for VFs Gavin Shan
2016-03-03 23:53 ` [PATCH v15 07/12] powerpc/powernv: Support EEH reset for VF PE Gavin Shan
2016-03-03 23:53 ` [PATCH v15 08/12] powerpc/powernv: Support PCI config restore for VFs Gavin Shan
2016-03-03 23:53 ` [PATCH v15 09/12] powerpc/eeh: powerpc/eeh: Support error recovery for VF PE Gavin Shan
2016-03-03 23:53 ` Gavin Shan [this message]
2016-03-03 23:53 ` [PATCH v15 11/12] powerpc/eeh: Don't remove passed VFs Gavin Shan
2016-03-03 23:53 ` [PATCH v15 12/12] powerpc/eeh: Synchronize recovery in host/guest 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=1457049194-9281-11-git-send-email-gwshan@linux.vnet.ibm.com \
--to=gwshan@linux.vnet.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=ruscur@russell.cc \
/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).