The point of this function is to set the software and hardware state at
the same time. When I tried to use it, I found it was only setting the
software state.
Signed-off-by: Alan Jenkins <[email protected]>
---
net/rfkill/core.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/net/rfkill/core.c b/net/rfkill/core.c
index 79693fe..db9948e 100644
--- a/net/rfkill/core.c
+++ b/net/rfkill/core.c
@@ -549,6 +549,10 @@ void rfkill_set_states(struct rfkill *rfkill, bool
sw, bool hw)
swprev = !!(rfkill->state & RFKILL_BLOCK_SW);
hwprev = !!(rfkill->state & RFKILL_BLOCK_HW);
__rfkill_set_sw_state(rfkill, sw);
+ if (hw)
+ rfkill->state |= RFKILL_BLOCK_HW;
+ else
+ rfkill->state &= ~RFKILL_BLOCK_HW;
spin_unlock_irqrestore(&rfkill->lock, flags);
--
1.5.4.3
On Sun, 2009-07-12 at 17:03 +0100, Alan Jenkins wrote:
> The point of this function is to set the software and hardware state at
> the same time. When I tried to use it, I found it was only setting the
> software state.
Oops, thanks.
Reviewed-by: Johannes Berg <[email protected]>
This is for 2.6.31, obviously.
> Signed-off-by: Alan Jenkins <[email protected]>
> ---
> net/rfkill/core.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/net/rfkill/core.c b/net/rfkill/core.c
> index 79693fe..db9948e 100644
> --- a/net/rfkill/core.c
> +++ b/net/rfkill/core.c
> @@ -549,6 +549,10 @@ void rfkill_set_states(struct rfkill *rfkill, bool
> sw, bool hw)
> swprev = !!(rfkill->state & RFKILL_BLOCK_SW);
> hwprev = !!(rfkill->state & RFKILL_BLOCK_HW);
> __rfkill_set_sw_state(rfkill, sw);
> + if (hw)
> + rfkill->state |= RFKILL_BLOCK_HW;
> + else
> + rfkill->state &= ~RFKILL_BLOCK_HW;
>
> spin_unlock_irqrestore(&rfkill->lock, flags);
>