2009-07-12 16:03:16

by Alan Jenkins

[permalink] [raw]
Subject: [PATCH] rfkill: fix rfkill_set_states() to set the hw state

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



2009-07-13 11:30:30

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] rfkill: fix rfkill_set_states() to set the hw state

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);
>


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part