diff mbox

[FOR,2.6.39] omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured

Message ID 1303912982-10309-1-git-send-email-laurent.pinchart@ideasonboard.com (mailing list archive)
State New, archived
Headers show

Commit Message

Laurent Pinchart April 27, 2011, 2:03 p.m. UTC
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 <laurent.pinchart@ideasonboard.com>
---
 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 <dacohen@gmail.com>
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 <dacohen@gmail.com>
    Acked-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>

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.

Comments

Laurent Pinchart April 29, 2011, 10:03 a.m. UTC | #1
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 <laurent.pinchart@ideasonboard.com>

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.

> ---
>  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 <dacohen@gmail.com>
> 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 <dacohen@gmail.com>
>     Acked-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
>     Signed-off-by: Tony Lindgren <tony@atomide.com>
> 
> 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))
Laurent Pinchart May 10, 2011, 12:39 p.m. UTC | #2
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 <laurent.pinchart@ideasonboard.com>
> 
> 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 <dacohen@gmail.com>
> > 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 <dacohen@gmail.com>
> >     Acked-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
> >     Signed-off-by: Tony Lindgren <tony@atomide.com>
> > 
> > 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))
Tony Lindgren May 10, 2011, 1:19 p.m. UTC | #3
* Laurent Pinchart <laurent.pinchart@ideasonboard.com> [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 <laurent.pinchart@ideasonboard.com>
> > 
> > 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
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hiroshi DOYU May 10, 2011, 1:32 p.m. UTC | #4
From: ext Laurent Pinchart <laurent.pinchart@ideasonboard.com>
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 <laurent.pinchart@ideasonboard.com>
>> 
>> 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 <Hiroshi.DOYU@nokia.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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))