2011-05-10 12:39:09

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [URGENT - PATCH FOR 2.6.39] omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured

Hi Tony,

On Friday 29 April 2011 12:03:10 Laurent Pinchart wrote:
> Hi Tony,
>
> On Wednesday 27 April 2011 16:03:02 Laurent Pinchart wrote:
> > The iommu shares an interrupt line with the OMAP3 ISP. The iommu
> > interrupt handler must check the fault status and return IRQ_HANDLED
> > when no fault occured.
> >
> > Signed-off-by: Laurent Pinchart <[email protected]>
>
> Could you please pick this one up for 2.6.39 ? As far as I know David is on
> holidays so he might not be able to review the patch before the 2.6.39
> release.

Ping. Please.

> > ---
> >
> > arch/arm/plat-omap/iommu.c | 2 ++
> > 1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > The OMAP3 ISP IOMMU got broken in 2.6.39-rc1 by
> >
> > commit d594f1f31afe13edd8c02f3854a65cc58cfb3b74
> > Author: David Cohen <[email protected]>
> > Date: Wed Feb 16 19:35:51 2011 +0000
> >
> > omap: IOMMU: add support to callback during fault handling
> >
> > Add support to register an isr for IOMMU fault situations and adapt
> > it to allow such (*isr)() to be used as fault callback. Drivers
> > using
> >
> > IOMMU module might want to be informed when errors happen in order to
> > debug it or react.
> >
> > Signed-off-by: David Cohen <[email protected]>
> > Acked-by: Hiroshi DOYU <[email protected]>
> > Signed-off-by: Tony Lindgren <[email protected]>
> >
> > This patch fixes it and should be pushed to mainline in 2.6.39. The OMAP3
> > ISP driver, new in 2.6.39, would otherwise be totally broken until
> > 2.6.40.
> >
> > diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
> > index 8a51fd5..34fc31e 100644
> > --- a/arch/arm/plat-omap/iommu.c
> > +++ b/arch/arm/plat-omap/iommu.c
> > @@ -793,6 +793,8 @@ static irqreturn_t iommu_fault_handler(int irq, void
> > *data) clk_enable(obj->clk);
> >
> > errs = iommu_report_fault(obj, &da);
> > clk_disable(obj->clk);
> >
> > + if (errs == 0)
> > + return IRQ_HANDLED;
> >
> > /* Fault callback or TLB/PTE Dynamic loading */
> > if (obj->isr && !obj->isr(obj, da, errs, obj->isr_priv))

--
Regards,

Laurent Pinchart


2011-05-10 13:19:51

by Tony Lindgren

[permalink] [raw]
Subject: Re: [URGENT - PATCH FOR 2.6.39] omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured

* Laurent Pinchart <[email protected]> [110510 15:35]:
> Hi Tony,
>
> On Friday 29 April 2011 12:03:10 Laurent Pinchart wrote:
> > Hi Tony,
> >
> > On Wednesday 27 April 2011 16:03:02 Laurent Pinchart wrote:
> > > The iommu shares an interrupt line with the OMAP3 ISP. The iommu
> > > interrupt handler must check the fault status and return IRQ_HANDLED
> > > when no fault occured.

Can you please update the description to say something like:

Commit d594f1f31afe13edd8c02f3854a65cc58cfb3b74 (Title of the commit
here) broke XYZ and because of this so and so happens.

Then please repost the patch with linux-arm-kernel mailing list Cc'd.

> > > Signed-off-by: Laurent Pinchart <[email protected]>
> >
> > Could you please pick this one up for 2.6.39 ? As far as I know David is on
> > holidays so he might not be able to review the patch before the 2.6.39
> > release.
>
> Ping. Please.

Well at least we now have something close to an ack from Hiroshi..
We really want to have acks for fixes like this, otherwise I don't
feel comfortable to rush something like this in.

Regards,

Tony

2011-05-10 13:32:45

by Hiroshi DOYU

[permalink] [raw]
Subject: Re: [URGENT - PATCH FOR 2.6.39] omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured

From: ext Laurent Pinchart <[email protected]>
Subject: Re: [URGENT - PATCH FOR 2.6.39] omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured
Date: Tue, 10 May 2011 14:39:56 +0200

> Hi Tony,
>
> On Friday 29 April 2011 12:03:10 Laurent Pinchart wrote:
>> Hi Tony,
>>
>> On Wednesday 27 April 2011 16:03:02 Laurent Pinchart wrote:
>> > The iommu shares an interrupt line with the OMAP3 ISP. The iommu
>> > interrupt handler must check the fault status and return IRQ_HANDLED
>> > when no fault occured.
>> >
>> > Signed-off-by: Laurent Pinchart <[email protected]>
>>
>> Could you please pick this one up for 2.6.39 ? As far as I know David is on
>> holidays so he might not be able to review the patch before the 2.6.39
>> release.
>
> Ping. Please.

Acked-by: Hiroshi DOYU <[email protected]>

2011-05-10 14:56:00

by Laurent Pinchart

[permalink] [raw]
Subject: [PATCH v2 FOR 2.6.39] omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured

Commit d594f1f31afe13edd8c02f3854a65cc58cfb3b74 (omap: IOMMU: add
support to callback during fault handling) broke interrupt line sharing
between the OMAP3 ISP and its IOMMU. Because of this, every interrupt
generated by the OMAP3 ISP is handled by the IOMMU driver instead of
being passed to the OMAP3 ISP driver.

Signed-off-by: Laurent Pinchart <[email protected]>
Acked-by: Hiroshi DOYU <[email protected]>
---
arch/arm/plat-omap/iommu.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index 8a51fd5..34fc31e 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -793,6 +793,8 @@ static irqreturn_t iommu_fault_handler(int irq, void *data)
clk_enable(obj->clk);
errs = iommu_report_fault(obj, &da);
clk_disable(obj->clk);
+ if (errs == 0)
+ return IRQ_HANDLED;

/* Fault callback or TLB/PTE Dynamic loading */
if (obj->isr && !obj->isr(obj, da, errs, obj->isr_priv))
--
Regards,

Laurent Pinchart