Re: [PATCH v4] rfkill: Add rfkill-any LED trigger

2 messages, 2 authors, 2017-01-06 · open the first message on its own page

Re: [PATCH v4] rfkill: Add rfkill-any LED trigger

From: Johannes Berg <johannes@sipsolutions.net>
Date: 2017-01-06 12:22:47

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ń <redacted>
---
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.

johannes

Re: [PATCH v4] rfkill: Add rfkill-any LED trigger

From: Michał Kępień <hidden>
Date: 2017-01-06 19:20:41

On Fri, 2017-01-06 at 07:07 +0100, Michał Kępień wrote:
quoted
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ń <redacted>
---
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
quoted
+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ń
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help