[BUG?] vic MULTI_IRQ_HANDLER (was [PATCH] ep93xx: Implement double buffering for M2M DMA channels)

Jamie Iles jamie at jamieiles.com
Wed Apr 4 05:12:56 EDT 2012


On 4 April 2012 10:11, Will Deacon <will.deacon at arm.com> wrote:
> On Tue, Apr 03, 2012 at 06:46:40PM +0100, H Hartley Sweeten wrote:
>> On Tuesday, April 03, 2012 10:08 AM, Will Deacon wrote:
>> > diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c
>> > index dcb004a..cb6b49a 100644
>> > --- a/arch/arm/common/vic.c
>> > +++ b/arch/arm/common/vic.c
>> > @@ -441,11 +441,9 @@ static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)
>> >         u32 stat, irq;
>> >         int handled = 0;
>> >
>> > -       stat = readl_relaxed(vic->base + VIC_IRQ_STATUS);
>> > -       while (stat) {
>> > +       while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) {
>> >                 irq = ffs(stat) - 1;
>> >                 handle_IRQ(irq_domain_to_irq(&vic->domain, irq), regs);
>> > -               stat &= ~(1 << irq);
>> >                 handled = 1;
>> >         }
>>
>> This should be posted as a proper patch with your Signed-off-by.
>
> If Jamie's happy with the change, I'll repost.

Sure, lgtm.

Reviewed-by: Jamie Iles <jamie at jamieiles.com>

Jamie



More information about the linux-arm-kernel mailing list