mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
Input: ipaq-micro-keys - use guard notation when acquiring mutex and spinlock
This 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/20240825051627.2848495-8-dmitry.torokhov@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
2f39a9fc87
commit
d1212ac94e
@ -54,18 +54,18 @@ static void micro_key_receive(void *data, int len, unsigned char *msg)
|
||||
|
||||
static void micro_key_start(struct ipaq_micro_keys *keys)
|
||||
{
|
||||
spin_lock(&keys->micro->lock);
|
||||
guard(spinlock)(&keys->micro->lock);
|
||||
|
||||
keys->micro->key = micro_key_receive;
|
||||
keys->micro->key_data = keys;
|
||||
spin_unlock(&keys->micro->lock);
|
||||
}
|
||||
|
||||
static void micro_key_stop(struct ipaq_micro_keys *keys)
|
||||
{
|
||||
spin_lock(&keys->micro->lock);
|
||||
guard(spinlock)(&keys->micro->lock);
|
||||
|
||||
keys->micro->key = NULL;
|
||||
keys->micro->key_data = NULL;
|
||||
spin_unlock(&keys->micro->lock);
|
||||
}
|
||||
|
||||
static int micro_key_open(struct input_dev *input)
|
||||
@ -141,13 +141,11 @@ static int micro_key_resume(struct device *dev)
|
||||
struct ipaq_micro_keys *keys = dev_get_drvdata(dev);
|
||||
struct input_dev *input = keys->input;
|
||||
|
||||
mutex_lock(&input->mutex);
|
||||
guard(mutex)(&input->mutex);
|
||||
|
||||
if (input_device_enabled(input))
|
||||
micro_key_start(keys);
|
||||
|
||||
mutex_unlock(&input->mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user