mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-25 00:52:45 -04:00
Input: sparcspkr - 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. Reviewed-by: Javier Carrasco <javier.carrasco.cruz@gmail.com> Link: https://lore.kernel.org/r/20240904044938.1049843-1-dmitry.torokhov@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
@@ -69,7 +69,6 @@ static int bbc_spkr_event(struct input_dev *dev, unsigned int type, unsigned int
|
||||
struct sparcspkr_state *state = dev_get_drvdata(dev->dev.parent);
|
||||
struct bbc_beep_info *info = &state->u.bbc;
|
||||
unsigned int count = 0;
|
||||
unsigned long flags;
|
||||
|
||||
if (type != EV_SND)
|
||||
return -1;
|
||||
@@ -85,7 +84,7 @@ static int bbc_spkr_event(struct input_dev *dev, unsigned int type, unsigned int
|
||||
|
||||
count = bbc_count_to_reg(info, count);
|
||||
|
||||
spin_lock_irqsave(&state->lock, flags);
|
||||
guard(spinlock_irqsave)(&state->lock);
|
||||
|
||||
if (count) {
|
||||
sbus_writeb(0x01, info->regs + 0);
|
||||
@@ -97,8 +96,6 @@ static int bbc_spkr_event(struct input_dev *dev, unsigned int type, unsigned int
|
||||
sbus_writeb(0x00, info->regs + 0);
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&state->lock, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -107,7 +104,6 @@ static int grover_spkr_event(struct input_dev *dev, unsigned int type, unsigned
|
||||
struct sparcspkr_state *state = dev_get_drvdata(dev->dev.parent);
|
||||
struct grover_beep_info *info = &state->u.grover;
|
||||
unsigned int count = 0;
|
||||
unsigned long flags;
|
||||
|
||||
if (type != EV_SND)
|
||||
return -1;
|
||||
@@ -121,7 +117,7 @@ static int grover_spkr_event(struct input_dev *dev, unsigned int type, unsigned
|
||||
if (value > 20 && value < 32767)
|
||||
count = 1193182 / value;
|
||||
|
||||
spin_lock_irqsave(&state->lock, flags);
|
||||
guard(spinlock_irqsave)(&state->lock);
|
||||
|
||||
if (count) {
|
||||
/* enable counter 2 */
|
||||
@@ -136,8 +132,6 @@ static int grover_spkr_event(struct input_dev *dev, unsigned int type, unsigned
|
||||
sbus_writeb(sbus_readb(info->enable_reg) & 0xFC, info->enable_reg);
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&state->lock, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user