Re: [PATCH] rfkill: update LEDs for all state changes

From: Ivo van Doorn
Date: Thu Sep 18 2008 - 08:49:49 EST


On Wednesday 17 September 2008, Henrique de Moraes Holschuh wrote:
> The LED state was not being updated by rfkill_force_state(), which will
> cause regressions in wireless drivers that had old-style rfkill support and
> are updated to use rfkill_force_state().
>
> The LED state was not being updated when a change was detected through the
> rfkill->get_state() hook, either.
>
> Move the LED trigger update calls into notify_rfkill_state_change(), where
> it should have been in the first place. This takes care of both issues.
>
> Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx>
> Cc: Ivo van Doorn <IvDoorn@xxxxxxxxx>

Acked-by: Ivo van Doorn <IvDoorn@xxxxxxxxx>

> ---
> net/rfkill/rfkill.c | 5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)
>
> John, this one is quite likely something that should be sent for
> merge in mainline BEFORE 2.6.27 is released.
>
> I am NOT sure it fixes regressions, that depends on whether the drivers
> using rfkill that are in 2.6.27 had working LED support before rfkill
> support was added to them. Unfortunately, it cannot fix the b43
> regression by itself.
>
> diff --git a/net/rfkill/rfkill.c b/net/rfkill/rfkill.c
> index ea0dc04..f949a48 100644
> --- a/net/rfkill/rfkill.c
> +++ b/net/rfkill/rfkill.c
> @@ -125,6 +125,7 @@ static void rfkill_led_trigger_activate(struct led_classdev *led)
>
> static void notify_rfkill_state_change(struct rfkill *rfkill)
> {
> + rfkill_led_trigger(rfkill, rfkill->state);
> blocking_notifier_call_chain(&rfkill_notifier_list,
> RFKILL_STATE_CHANGED,
> rfkill);
> @@ -217,10 +218,8 @@ static int rfkill_toggle_radio(struct rfkill *rfkill,
> rfkill->state = state;
> }
>
> - if (force || rfkill->state != oldstate) {
> - rfkill_led_trigger(rfkill, rfkill->state);
> + if (force || rfkill->state != oldstate)
> notify_rfkill_state_change(rfkill);
> - }
>
> return retval;
> }


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/