Skip to content

Commit 69388e1

Browse files
gracekaoandy-shev
authored andcommitted
pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler
According to Braswell NDA Specification Update (#557593), concurrent read accesses may result in returning 0xffffffff and write instructions may be dropped. We have an established format for the commit references, i.e. cdca06e ("pinctrl: baytrail: Add missing spinlock usage in byt_gpio_irq_handler") Fixes: 0bd50d7 ("pinctrl: cherryview: prevent concurrent access to GPIO controllers") Signed-off-by: Grace Kao <[email protected]> Reported-by: Brian Norris <[email protected]> Reviewed-by: Brian Norris <[email protected]> Acked-by: Mika Westerberg <[email protected]> Signed-off-by: Andy Shevchenko <[email protected]>
1 parent ccd025e commit 69388e1

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/pinctrl/intel/pinctrl-cherryview.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1479,11 +1479,15 @@ static void chv_gpio_irq_handler(struct irq_desc *desc)
14791479
struct chv_pinctrl *pctrl = gpiochip_get_data(gc);
14801480
struct irq_chip *chip = irq_desc_get_chip(desc);
14811481
unsigned long pending;
1482+
unsigned long flags;
14821483
u32 intr_line;
14831484

14841485
chained_irq_enter(chip, desc);
14851486

1487+
raw_spin_lock_irqsave(&chv_lock, flags);
14861488
pending = readl(pctrl->regs + CHV_INTSTAT);
1489+
raw_spin_unlock_irqrestore(&chv_lock, flags);
1490+
14871491
for_each_set_bit(intr_line, &pending, pctrl->community->nirqs) {
14881492
unsigned int irq, offset;
14891493

0 commit comments

Comments
 (0)