rfkill: fix led-trigger unregister order in error unwind
authorHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Tue, 22 Jul 2008 00:18:18 +0000 (21:18 -0300)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 29 Jul 2008 20:36:32 +0000 (16:36 -0400)
commit37f55e9d78d1b63047b1b7ae175cdce650547ba8
treebfbaf636dc086d0cc7b904a3dcbfe44c2e2d7a88
parent2fd9b2212e25e6411b6f309707f4e2683d164250
rfkill: fix led-trigger unregister order in error unwind

rfkill needs to unregister the led trigger AFTER a call to
rfkill_remove_switch(), otherwise it will not update the LED state,
possibly leaving it ON when it should be OFF.

To make led-trigger unregistering safer, guard against unregistering a
trigger twice, and also against issuing trigger events to a led trigger
that was unregistered.  This makes the error unwind paths more resilient.

Refer to "rfkill: Register LED triggers before registering switch".

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Michael Buesch <mb@bu3sch.de>
Cc: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/rfkill/rfkill.c