> On Fri, 2017-01-06 at 07:07 +0100, Michał Kępień wrote: > > Add a new "global" (i.e. not per-rfkill device) LED trigger, rfkill- > > any, > > which may be useful on laptops with a single "radio LED" and multiple > > radio transmitters. The trigger is meant to turn a LED on whenever > > there is at least one radio transmitter active and turn it off > > otherwise. > > > > Signed-off-by: Michał Kępień <kernel@xxxxxxxxxx> > > --- > > Changes from v3: > > > > - Revert introducing a new bitfield and instead defer LED event > > firing > > to a work queue to prevent conditional locking and ensure the > > trigger can really be used from any context. This also voids the > > need to take rfkill_global_mutex before calling > > rfkill_set_block() > > in rfkill_resume(). > > Looks better, but > > > +static struct work_struct rfkill_any_work; > > At least on module exit you need to cancel this work. It is cancelled in rfkill_any_led_trigger_unregister(). It seemed fitting to do it this way as rfkill_any_work is initialized in rfkill_any_led_trigger_register(). And if CONFIG_RFKILL_LEDS=n, rfkill_any_work is neither initialized nor scheduled, so we should be good as well. Am I missing something? -- Best regards, Michał Kępień