* [RESEND PATCH] cxl: Route eeh events to all slices for pci_channel_io_perm_failure state
@ 2017-02-23 3:27 Vaibhav Jain
2017-02-24 15:13 ` Frederic Barrat
2017-03-21 11:33 ` [RESEND] " Michael Ellerman
0 siblings, 2 replies; 3+ messages in thread
From: Vaibhav Jain @ 2017-02-23 3:27 UTC (permalink / raw)
To: linuxppc-dev
Cc: Vaibhav Jain, frederic.barrat, Andrew Donnellan, Ian Munsie,
Christophe Lombard, Philippe Bergheaud, Gregory Kurz
Fix a boundary condition where in some cases an eeh event with
state == pci_channel_io_perm_failure wont be passed on to a driver
attached to the virtual pci device associated with a slice. This will
happen in case the slice just before (n-1) doesn't have any vPHB bus
associated with it, that results in an early return from
cxl_pci_error_detected callback.
With state==pci_channel_io_perm_failure, the adapter will be removed
irrespective of the return value of cxl_vphb_error_detected. So we now
always return PCI_ERS_RESULT_DISCONNECTED for this case i.e even if
the AFU isn't using a vPHB (currently returns PCI_ERS_RESULT_NONE).
Fixes: e4f5fc001a6("cxl: Do not create vPHB if there are no AFU configuration records")
Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
---
Resend: Rephrased the patch description as suggested by Matthew and Andrew
---
drivers/misc/cxl/pci.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/misc/cxl/pci.c b/drivers/misc/cxl/pci.c
index 80a87ab..679afc9 100644
--- a/drivers/misc/cxl/pci.c
+++ b/drivers/misc/cxl/pci.c
@@ -1780,15 +1780,13 @@ static pci_ers_result_t cxl_pci_error_detected(struct pci_dev *pdev,
/* If we're permanently dead, give up. */
if (state == pci_channel_io_perm_failure) {
- /* Tell the AFU drivers; but we don't care what they
- * say, we're going away.
- */
for (i = 0; i < adapter->slices; i++) {
afu = adapter->afu[i];
- /* Only participate in EEH if we are on a virtual PHB */
- if (afu->phb == NULL)
- return PCI_ERS_RESULT_NONE;
- cxl_vphb_error_detected(afu, state);
+ /* Tell the AFU drivers; but we don't care what they
+ * say, we're going away.
+ */
+ if (afu->phb != NULL)
+ cxl_vphb_error_detected(afu, state);
}
return PCI_ERS_RESULT_DISCONNECT;
}
--
2.9.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [RESEND PATCH] cxl: Route eeh events to all slices for pci_channel_io_perm_failure state
2017-02-23 3:27 [RESEND PATCH] cxl: Route eeh events to all slices for pci_channel_io_perm_failure state Vaibhav Jain
@ 2017-02-24 15:13 ` Frederic Barrat
2017-03-21 11:33 ` [RESEND] " Michael Ellerman
1 sibling, 0 replies; 3+ messages in thread
From: Frederic Barrat @ 2017-02-24 15:13 UTC (permalink / raw)
To: Vaibhav Jain, linuxppc-dev
Cc: Philippe Bergheaud, frederic.barrat, Ian Munsie,
Andrew Donnellan, Gregory Kurz, Christophe Lombard
Le 23/02/2017 à 04:27, Vaibhav Jain a écrit :
> Fix a boundary condition where in some cases an eeh event with
> state == pci_channel_io_perm_failure wont be passed on to a driver
> attached to the virtual pci device associated with a slice. This will
> happen in case the slice just before (n-1) doesn't have any vPHB bus
> associated with it, that results in an early return from
> cxl_pci_error_detected callback.
>
> With state==pci_channel_io_perm_failure, the adapter will be removed
> irrespective of the return value of cxl_vphb_error_detected. So we now
> always return PCI_ERS_RESULT_DISCONNECTED for this case i.e even if
> the AFU isn't using a vPHB (currently returns PCI_ERS_RESULT_NONE).
>
> Fixes: e4f5fc001a6("cxl: Do not create vPHB if there are no AFU configuration records")
> Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
> Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
>
> ---
Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RESEND] cxl: Route eeh events to all slices for pci_channel_io_perm_failure state
2017-02-23 3:27 [RESEND PATCH] cxl: Route eeh events to all slices for pci_channel_io_perm_failure state Vaibhav Jain
2017-02-24 15:13 ` Frederic Barrat
@ 2017-03-21 11:33 ` Michael Ellerman
1 sibling, 0 replies; 3+ messages in thread
From: Michael Ellerman @ 2017-03-21 11:33 UTC (permalink / raw)
To: Vaibhav Jain, linuxppc-dev
Cc: Philippe Bergheaud, frederic.barrat, Vaibhav Jain, Ian Munsie,
Andrew Donnellan, Gregory Kurz, Christophe Lombard
On Thu, 2017-02-23 at 03:27:26 UTC, Vaibhav Jain wrote:
> Fix a boundary condition where in some cases an eeh event with
> state == pci_channel_io_perm_failure wont be passed on to a driver
> attached to the virtual pci device associated with a slice. This will
> happen in case the slice just before (n-1) doesn't have any vPHB bus
> associated with it, that results in an early return from
> cxl_pci_error_detected callback.
>
> With state==pci_channel_io_perm_failure, the adapter will be removed
> irrespective of the return value of cxl_vphb_error_detected. So we now
> always return PCI_ERS_RESULT_DISCONNECTED for this case i.e even if
> the AFU isn't using a vPHB (currently returns PCI_ERS_RESULT_NONE).
>
> Fixes: e4f5fc001a6("cxl: Do not create vPHB if there are no AFU configuration records")
> Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
> Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
> Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
Applied to powerpc fixes, thanks.
https://git.kernel.org/powerpc/c/07f5ab6002a4f0b633f3495157166f
cheers
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-03-21 11:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-23 3:27 [RESEND PATCH] cxl: Route eeh events to all slices for pci_channel_io_perm_failure state Vaibhav Jain
2017-02-24 15:13 ` Frederic Barrat
2017-03-21 11:33 ` [RESEND] " Michael Ellerman
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).