diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2024-10-24 18:44:32 -0700 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2024-11-05 14:17:25 -0800 |
commit | 229ba714e52f7f29f41c1aa2e9f49feef3629322 (patch) | |
tree | 8847a6573dc78d8b55458b6b5c8b533d5041e3c3 | |
parent | dda8fdb033f48e759ff190c59aa266905ecba3dd (diff) | |
download | lwn-229ba714e52f7f29f41c1aa2e9f49feef3629322.tar.gz lwn-229ba714e52f7f29f41c1aa2e9f49feef3629322.zip |
Input: locomokbd - 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/Zxr4AMJrzhZlHAlf@google.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-rw-r--r-- | drivers/input/keyboard/locomokbd.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/input/keyboard/locomokbd.c b/drivers/input/keyboard/locomokbd.c index 4b0f8323c492..c501a93a4417 100644 --- a/drivers/input/keyboard/locomokbd.c +++ b/drivers/input/keyboard/locomokbd.c @@ -112,11 +112,10 @@ static inline void locomokbd_reset_col(unsigned long membase, int col) static void locomokbd_scankeyboard(struct locomokbd *locomokbd) { unsigned int row, col, rowd; - unsigned long flags; unsigned int num_pressed; unsigned long membase = locomokbd->base; - spin_lock_irqsave(&locomokbd->lock, flags); + guard(spinlock_irqsave)(&locomokbd->lock); locomokbd_charge_all(membase); @@ -167,8 +166,6 @@ static void locomokbd_scankeyboard(struct locomokbd *locomokbd) mod_timer(&locomokbd->timer, jiffies + SCAN_INTERVAL); else locomokbd->count_cancel = 0; - - spin_unlock_irqrestore(&locomokbd->lock, flags); } /* |