]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Input: elo - use guard notation when acquiring mutex
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 18 Aug 2024 00:20:30 +0000 (17:20 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 25 Mar 2026 04:14:26 +0000 (21:14 -0700)
Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/elo.c

index 434b9b47e964da9ae341009e663632b0dfcd3f7d..6814d5789b6f775acbda507502b635da2790741d 100644 (file)
@@ -219,40 +219,40 @@ static irqreturn_t elo_interrupt(struct serio *serio,
 
 static int elo_command_10(struct elo *elo, unsigned char *packet)
 {
-       int rc = -1;
+       int error;
        int i;
        unsigned char csum = 0xaa + ELO10_LEAD_BYTE;
 
-       mutex_lock(&elo->cmd_mutex);
+       guard(mutex)(&elo->cmd_mutex);
 
        scoped_guard(serio_pause_rx, elo->serio) {
                elo->expected_packet = toupper(packet[0]);
                init_completion(&elo->cmd_done);
        }
 
-       if (serio_write(elo->serio, ELO10_LEAD_BYTE))
-               goto out;
+       error = serio_write(elo->serio, ELO10_LEAD_BYTE);
+       if (error)
+               return error;
 
        for (i = 0; i < ELO10_PACKET_LEN; i++) {
                csum += packet[i];
-               if (serio_write(elo->serio, packet[i]))
-                       goto out;
+               error = serio_write(elo->serio, packet[i]);
+               if (error)
+                       return error;
        }
 
-       if (serio_write(elo->serio, csum))
-               goto out;
+       error = serio_write(elo->serio, csum);
+       if (error)
+               return error;
 
        wait_for_completion_timeout(&elo->cmd_done, HZ);
 
-       if (elo->expected_packet == ELO10_TOUCH_PACKET) {
-               /* We are back in reporting mode, the command was ACKed */
-               memcpy(packet, elo->response, ELO10_PACKET_LEN);
-               rc = 0;
-       }
+       if (elo->expected_packet != ELO10_TOUCH_PACKET)
+               return -EIO;
 
- out:
-       mutex_unlock(&elo->cmd_mutex);
-       return rc;
+       /* We are back in reporting mode, the command was ACKed */
+       memcpy(packet, elo->response, ELO10_PACKET_LEN);
+       return 0;
 }
 
 static int elo_setup_10(struct elo *elo)