[PATCH 09/18] dmaengine/amba-pl08x: Schedule tasklet in case of error interrupt
From: Linus Walleij <hidden>
Date: 2011-07-31 00:19:15
Also in:
lkml
From: Linus Walleij <hidden>
Date: 2011-07-31 00:19:15
Also in:
lkml
2011/7/29 Viresh Kumar [off-list ref]: (...)
- ? ? ? u32 mask = 0;
(...)
+ ? ? ? if (!err && !tc) + ? ? ? ? ? ? ? return IRQ_NONE;
(...)
- - ? ? ? ? ? ? ? ? ? ? ? mask |= (1 << i); - ? ? ? /* Clear only the terminal interrupts on channels we processed */ - ? ? ? writel(mask, pl08x->base + PL080_TC_CLEAR); - ? ? ? return mask ? IRQ_HANDLED : IRQ_NONE; + ? ? ? return IRQ_HANDLED;
NAK. These snippets illustrate what is not good about this patch, you're making the driver fragile by removing checks for spurious IRQ. So for example if there is an error or TC IRQ on a channel that is not in use, what happens now? It used to result in IRQ_NONE, now all of a sudden we start handling spurious IRQs and claim IRQ_HANDLED with totally unpredictable results, whereas they would previously gather error metrics for spurious IRQs. Yours, Linus Walleij