@@ -76,9 +76,8 @@ static int ps2mult_serio_write(struct serio *serio, unsigned char data)
7676 struct ps2mult * psm = serio_get_drvdata (mx_port );
7777 struct ps2mult_port * port = serio -> port_data ;
7878 bool need_escape ;
79- unsigned long flags ;
8079
81- spin_lock_irqsave ( & psm -> lock , flags );
80+ guard ( spinlock_irqsave )( & psm -> lock );
8281
8382 if (psm -> out_port != port )
8483 ps2mult_select_port (psm , port );
@@ -93,20 +92,17 @@ static int ps2mult_serio_write(struct serio *serio, unsigned char data)
9392
9493 serio_write (mx_port , data );
9594
96- spin_unlock_irqrestore (& psm -> lock , flags );
97-
9895 return 0 ;
9996}
10097
10198static int ps2mult_serio_start (struct serio * serio )
10299{
103100 struct ps2mult * psm = serio_get_drvdata (serio -> parent );
104101 struct ps2mult_port * port = serio -> port_data ;
105- unsigned long flags ;
106102
107- spin_lock_irqsave (& psm -> lock , flags );
103+ guard (spinlock_irqsave )(& psm -> lock );
104+
108105 port -> registered = true;
109- spin_unlock_irqrestore (& psm -> lock , flags );
110106
111107 return 0 ;
112108}
@@ -115,11 +111,10 @@ static void ps2mult_serio_stop(struct serio *serio)
115111{
116112 struct ps2mult * psm = serio_get_drvdata (serio -> parent );
117113 struct ps2mult_port * port = serio -> port_data ;
118- unsigned long flags ;
119114
120- spin_lock_irqsave (& psm -> lock , flags );
115+ guard (spinlock_irqsave )(& psm -> lock );
116+
121117 port -> registered = false;
122- spin_unlock_irqrestore (& psm -> lock , flags );
123118}
124119
125120static int ps2mult_create_port (struct ps2mult * psm , int i )
@@ -148,16 +143,12 @@ static int ps2mult_create_port(struct ps2mult *psm, int i)
148143
149144static void ps2mult_reset (struct ps2mult * psm )
150145{
151- unsigned long flags ;
152-
153- spin_lock_irqsave (& psm -> lock , flags );
146+ guard (spinlock_irqsave )(& psm -> lock );
154147
155148 serio_write (psm -> mx_serio , PS2MULT_SESSION_END );
156149 serio_write (psm -> mx_serio , PS2MULT_SESSION_START );
157150
158151 ps2mult_select_port (psm , & psm -> ports [PS2MULT_KBD_PORT ]);
159-
160- spin_unlock_irqrestore (& psm -> lock , flags );
161152}
162153
163154static int ps2mult_connect (struct serio * serio , struct serio_driver * drv )
@@ -234,11 +225,10 @@ static irqreturn_t ps2mult_interrupt(struct serio *serio,
234225{
235226 struct ps2mult * psm = serio_get_drvdata (serio );
236227 struct ps2mult_port * in_port ;
237- unsigned long flags ;
238228
239229 dev_dbg (& serio -> dev , "Received %02x flags %02x\n" , data , dfl );
240230
241- spin_lock_irqsave ( & psm -> lock , flags );
231+ guard ( spinlock_irqsave )( & psm -> lock );
242232
243233 if (psm -> escape ) {
244234 psm -> escape = false;
@@ -285,7 +275,6 @@ static irqreturn_t ps2mult_interrupt(struct serio *serio,
285275 }
286276
287277 out :
288- spin_unlock_irqrestore (& psm -> lock , flags );
289278 return IRQ_HANDLED ;
290279}
291280
0 commit comments