Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: kxtj9 - use guard notation when acquiring mutex/disabling irq

Using guard notation makes the code more compact and error handling
more robust by ensuring that mutexes are released and interrupts are
re-enabled in all code paths when control leaves critical section.

Reviewed-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Link: https://lore.kernel.org/r/20240904044244.1042174-7-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

+4 -10
+4 -10
drivers/input/misc/kxtj9.c
··· 314 314 return error; 315 315 316 316 /* Lock the device to prevent races with open/close (and itself) */ 317 - mutex_lock(&input_dev->mutex); 318 - 319 - disable_irq(client->irq); 317 + guard(mutex)(&input_dev->mutex); 318 + guard(disable_irq)(&client->irq); 320 319 321 320 /* 322 321 * Set current interval to the greater of the minimum interval or ··· 324 325 tj9->last_poll_interval = max(interval, tj9->pdata.min_interval); 325 326 326 327 kxtj9_update_odr(tj9, tj9->last_poll_interval); 327 - 328 - enable_irq(client->irq); 329 - mutex_unlock(&input_dev->mutex); 330 328 331 329 return count; 332 330 } ··· 500 504 struct kxtj9_data *tj9 = i2c_get_clientdata(client); 501 505 struct input_dev *input_dev = tj9->input_dev; 502 506 503 - mutex_lock(&input_dev->mutex); 507 + guard(mutex)(&input_dev->mutex); 504 508 505 509 if (input_device_enabled(input_dev)) 506 510 kxtj9_disable(tj9); 507 511 508 - mutex_unlock(&input_dev->mutex); 509 512 return 0; 510 513 } 511 514 ··· 514 519 struct kxtj9_data *tj9 = i2c_get_clientdata(client); 515 520 struct input_dev *input_dev = tj9->input_dev; 516 521 517 - mutex_lock(&input_dev->mutex); 522 + guard(mutex)(&input_dev->mutex); 518 523 519 524 if (input_device_enabled(input_dev)) 520 525 kxtj9_enable(tj9); 521 526 522 - mutex_unlock(&input_dev->mutex); 523 527 return 0; 524 528 } 525 529