Skip to content

Commit 424bc7e

Browse files
committed
Input: q40kbd - use guard notation when acquiring spinlock
Using guard notation makes the code more compact and error handling more robust by ensuring that locks are released in all code paths when control leaves critical section. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
1 parent 9d58ae1 commit 424bc7e

File tree

1 file changed

+2
-8
lines changed

1 file changed

+2
-8
lines changed

drivers/input/serio/q40kbd.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,14 @@ struct q40kbd {
3939
static irqreturn_t q40kbd_interrupt(int irq, void *dev_id)
4040
{
4141
struct q40kbd *q40kbd = dev_id;
42-
unsigned long flags;
4342

44-
spin_lock_irqsave(&q40kbd->lock, flags);
43+
guard(spinlock_irqsave)(&q40kbd->lock);
4544

4645
if (Q40_IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))
4746
serio_interrupt(q40kbd->port, master_inb(KEYCODE_REG), 0);
4847

4948
master_outb(-1, KEYBOARD_UNLOCK_REG);
5049

51-
spin_unlock_irqrestore(&q40kbd->lock, flags);
52-
5350
return IRQ_HANDLED;
5451
}
5552

@@ -60,14 +57,11 @@ static irqreturn_t q40kbd_interrupt(int irq, void *dev_id)
6057
static void q40kbd_flush(struct q40kbd *q40kbd)
6158
{
6259
int maxread = 100;
63-
unsigned long flags;
6460

65-
spin_lock_irqsave(&q40kbd->lock, flags);
61+
guard(spinlock_irqsave)(&q40kbd->lock);
6662

6763
while (maxread-- && (Q40_IRQ_KEYB_MASK & master_inb(INTERRUPT_REG)))
6864
master_inb(KEYCODE_REG);
69-
70-
spin_unlock_irqrestore(&q40kbd->lock, flags);
7165
}
7266

7367
static void q40kbd_stop(void)

0 commit comments

Comments
 (0)