linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] cxl: Do adapter fence check before handling afu interrupt
@ 2016-11-16 14:09 Vaibhav Jain
  2016-11-22  0:34 ` Michael Ellerman
  0 siblings, 1 reply; 2+ messages in thread
From: Vaibhav Jain @ 2016-11-16 14:09 UTC (permalink / raw)
  To: linuxppc-dev
  Cc: Vaibhav Jain, Ian Munsie, Andrew Donnellan, Christophe Lombard,
	Philippe Bergheaud, Frederic Barrat, gkurz

If an afu interrupt is in flight when an eeh error is triggered the
control still reaches the function native_irq_multiplexed and the
PE-Handle read from the CXL_PSL_PEHandle_An register is 0xffff. The
function then erroneously assumes that the interrupt belonged to a
detached context and generates a warning with full stack dump in the
kernel log complaining:

"Unable to demultiplex CXL PSL IRQ for PE 65535 DSISR ffffffff DAR
ffffffff. (Possible AFU HW issue - was a term/remove acked with
outstanding transactions"

To fix this the patch adds new code to the function
native_irq_multiplexed function to compares the read value of register
CXL_PSL_PEHandle_An to ~0ULL. If true then logs a warning message
saying that the interrupt is being ignored and returns IRQ_HANDLED from
the irq handler.

Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
Acked-by: Ian Munsie <imunsie@au1.ibm.com>
Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
---
 drivers/misc/cxl/native.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/cxl/native.c b/drivers/misc/cxl/native.c
index a217a74ccc98..c336350ede94 100644
--- a/drivers/misc/cxl/native.c
+++ b/drivers/misc/cxl/native.c
@@ -931,9 +931,18 @@ static irqreturn_t native_irq_multiplexed(int irq, void *data)
 	struct cxl_afu *afu = data;
 	struct cxl_context *ctx;
 	struct cxl_irq_info irq_info;
-	int ph = cxl_p2n_read(afu, CXL_PSL_PEHandle_An) & 0xffff;
-	int ret;
-
+	u64 phreg = cxl_p2n_read(afu, CXL_PSL_PEHandle_An);
+	int ph, ret;
+
+	/* check if eeh kicked in while the interrupt was in flight */
+	if (unlikely(phreg == ~0ULL)) {
+		dev_warn(&afu->dev,
+			 "Ignoring slice interrupt(%d) due to fenced card",
+			 irq);
+		return IRQ_HANDLED;
+	}
+	/* Mask the pe-handle from register value */
+	ph = phreg & 0xffff;
 	if ((ret = native_get_irq_info(afu, &irq_info))) {
 		WARN(1, "Unable to get CXL IRQ Info: %i\n", ret);
 		return fail_psl_irq(afu, &irq_info);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: cxl: Do adapter fence check before handling afu interrupt
  2016-11-16 14:09 [PATCH] cxl: Do adapter fence check before handling afu interrupt Vaibhav Jain
@ 2016-11-22  0:34 ` Michael Ellerman
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Ellerman @ 2016-11-22  0:34 UTC (permalink / raw)
  To: Vaibhav Jain, linuxppc-dev
  Cc: Philippe Bergheaud, Christophe Lombard, Vaibhav Jain,
	Frederic Barrat, Ian Munsie, Andrew Donnellan, gkurz

On Wed, 2016-11-16 at 14:09:33 UTC, Vaibhav Jain wrote:
> If an afu interrupt is in flight when an eeh error is triggered the
> control still reaches the function native_irq_multiplexed and the
> PE-Handle read from the CXL_PSL_PEHandle_An register is 0xffff. The
> function then erroneously assumes that the interrupt belonged to a
> detached context and generates a warning with full stack dump in the
> kernel log complaining:
> 
> "Unable to demultiplex CXL PSL IRQ for PE 65535 DSISR ffffffff DAR
> ffffffff. (Possible AFU HW issue - was a term/remove acked with
> outstanding transactions"
> 
> To fix this the patch adds new code to the function
> native_irq_multiplexed function to compares the read value of register
> CXL_PSL_PEHandle_An to ~0ULL. If true then logs a warning message
> saying that the interrupt is being ignored and returns IRQ_HANDLED from
> the irq handler.
> 
> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
> Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
> Acked-by: Ian Munsie <imunsie@au1.ibm.com>
> Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/abf051be684be768c1ee079514f4d0

cheers

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-11-22  0:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-16 14:09 [PATCH] cxl: Do adapter fence check before handling afu interrupt Vaibhav Jain
2016-11-22  0:34 ` 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).