A workaround for a warning introduced a use of the NO_IRQ
macro that should have been gone for a long time.

It is clear from the code that the value cannot actually
be used, but apparently there was a configuration at
some point that caused a warning, so instead of just
reverting that patch, this rearranges the code in a way that
the warning cannot reappear.

Signed-off-by: Arnd Bergmann <a...@arndb.de>
Fixes: 6ef41cf6f721 ("dmaengine :ipu: change ipu_irq_handler() to remove 
compile warning")
---
 drivers/dma/ipu/ipu_irq.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c
index 2bf37e68ad0f..dd184b50e5b4 100644
--- a/drivers/dma/ipu/ipu_irq.c
+++ b/drivers/dma/ipu/ipu_irq.c
@@ -286,22 +286,21 @@ static void ipu_irq_handler(struct irq_desc *desc)
                raw_spin_unlock(&bank_lock);
                while ((line = ffs(status))) {
                        struct ipu_irq_map *map;
-                       unsigned int irq = NO_IRQ;
+                       unsigned int irq;
 
                        line--;
                        status &= ~(1UL << line);
 
                        raw_spin_lock(&bank_lock);
                        map = src2map(32 * i + line);
-                       if (map)
-                               irq = map->irq;
-                       raw_spin_unlock(&bank_lock);
-
                        if (!map) {
+                               raw_spin_unlock(&bank_lock);
                                pr_err("IPU: Interrupt on unmapped source %u 
bank %d\n",
                                       line, i);
                                continue;
                        }
+                       irq = map->irq;
+                       raw_spin_unlock(&bank_lock);
                        generic_handle_irq(irq);
                }
        }
-- 
2.9.0

Reply via email to