[PATCH 03/24] Input: alps - use guard notation when pausing serio port

Dmitry Torokhov posted 24 patches 1 year, 3 months ago
[PATCH 03/24] Input: alps - use guard notation when pausing serio port
Posted by Dmitry Torokhov 1 year, 3 months ago
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.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/input/mouse/alps.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 4e37fc3f1a9e..0728b5c08f02 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -1585,7 +1585,7 @@ static void alps_flush_packet(struct timer_list *t)
 	struct alps_data *priv = from_timer(priv, t, timer);
 	struct psmouse *psmouse = priv->psmouse;
 
-	serio_pause_rx(psmouse->ps2dev.serio);
+	guard(serio_pause_rx)(psmouse->ps2dev.serio);
 
 	if (psmouse->pktcnt == psmouse->pktsize) {
 
@@ -1605,8 +1605,6 @@ static void alps_flush_packet(struct timer_list *t)
 		}
 		psmouse->pktcnt = 0;
 	}
-
-	serio_continue_rx(psmouse->ps2dev.serio);
 }
 
 static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
-- 
2.46.0.469.g59c65b2a67-goog
Re: [PATCH 03/24] Input: alps - use guard notation when pausing serio port
Posted by Pali Rohár 1 year, 3 months ago
On Wednesday 04 September 2024 21:17:08 Dmitry Torokhov wrote:
> 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.
> 
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Looks good for me.
Acked-by: Pali Rohár <pali@kernel.org>

> ---
>  drivers/input/mouse/alps.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 4e37fc3f1a9e..0728b5c08f02 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -1585,7 +1585,7 @@ static void alps_flush_packet(struct timer_list *t)
>  	struct alps_data *priv = from_timer(priv, t, timer);
>  	struct psmouse *psmouse = priv->psmouse;
>  
> -	serio_pause_rx(psmouse->ps2dev.serio);
> +	guard(serio_pause_rx)(psmouse->ps2dev.serio);
>  
>  	if (psmouse->pktcnt == psmouse->pktsize) {
>  
> @@ -1605,8 +1605,6 @@ static void alps_flush_packet(struct timer_list *t)
>  		}
>  		psmouse->pktcnt = 0;
>  	}
> -
> -	serio_continue_rx(psmouse->ps2dev.serio);
>  }
>  
>  static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
> -- 
> 2.46.0.469.g59c65b2a67-goog
>