Input: synaptics - use guard notation when pausing serio port
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 5 Sep 2024 04:17:10 +0000 (21:17 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 4 Oct 2024 07:58:15 +0000 (00:58 -0700)
Using guard notation makes the code more compact and error handling
more robust by ensuring that serio ports are resumed in all code paths
when control leaves critical section.

Link: https://lore.kernel.org/r/20240905041732.2034348-6-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/synaptics.c

index 380aa16..2735f86 100644 (file)
@@ -650,9 +650,8 @@ static int synaptics_pt_start(struct serio *serio)
        struct psmouse *parent = psmouse_from_serio(serio->parent);
        struct synaptics_data *priv = parent->private;
 
-       serio_pause_rx(parent->ps2dev.serio);
+       guard(serio_pause_rx)(parent->ps2dev.serio);
        priv->pt_port = serio;
-       serio_continue_rx(parent->ps2dev.serio);
 
        return 0;
 }
@@ -662,9 +661,8 @@ static void synaptics_pt_stop(struct serio *serio)
        struct psmouse *parent = psmouse_from_serio(serio->parent);
        struct synaptics_data *priv = parent->private;
 
-       serio_pause_rx(parent->ps2dev.serio);
+       guard(serio_pause_rx)(parent->ps2dev.serio);
        priv->pt_port = NULL;
-       serio_continue_rx(parent->ps2dev.serio);
 }
 
 static int synaptics_is_pt_packet(u8 *buf)