mfd: max77693: Fix mapping IRQ during mask/unmask
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>
Tue, 3 Dec 2013 14:49:13 +0000 (15:49 +0100)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Thu, 15 May 2014 05:25:40 +0000 (07:25 +0200)
Use hwirq in max77693_irq_mask() and max77693_irq_unmask() for accessing
irq array. Previously the virtual irq was used which resulted in
out-of-bounds access.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Change-Id: I6e2e6751d07427072e90d9f4dfef921108485f29

drivers/mfd/max77693-irq.c

index 1029d01..66b58fe 100644 (file)
@@ -128,7 +128,8 @@ static void max77693_irq_sync_unlock(struct irq_data *data)
 static const inline struct max77693_irq_data *
 irq_to_max77693_irq(struct max77693_dev *max77693, int irq)
 {
-       return &max77693_irqs[irq];
+       struct irq_data *data = irq_get_irq_data(irq);
+       return &max77693_irqs[data->hwirq];
 }
 
 static void max77693_irq_mask(struct irq_data *data)