Re: [PATCH] rfkill bug fixed in rfkill_set_sw_state

From: Alan Jenkins
Date: Wed Mar 03 2010 - 04:36:20 EST

Jaehoon Chung wrote:
Ok Next time, i will add sutatble cc's scripts/ thanks..
Suitable cc's (from scripts/ added.

On Fri, 26 Feb 2010 13:55:31 +0900
_________<jh80.chung@xxxxxxxxxxx> wrote:

Don___t work expected operation in __rfkill_set_sw_state.
when rfkill initialized. Rfkill___s blocked& unblocked is operating on the

Signed-off-by: Jaehoon Chung<jh80.chung@xxxxxxxxxxx>

net/rfkill/core.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/rfkill/core.c b/net/rfkill/core.c
index c224cb2..dcc2d38 100644
--- a/net/rfkill/core.c
+++ b/net/rfkill/core.c
@@ -488,7 +488,7 @@ static void __rfkill_set_sw_state(struct rfkill
*rfkill, bool blocked)
if (rfkill->state& RFKILL_BLOCK_SW_SETCALL)

- if (blocked)
+ if (!blocked)
rfkill->state |= bit;
rfkill->state&= ~bit;
Are you sure? What problems were you observing with the existing code?
Please fully describe your hardware and the driver's behaviour.

The current code _looks_ OK to me. If bool `blocked' is true, we set
I implemented the wlan driver using rfkill.
In my source code, the wlan driver initalized to RFKLL_USESR_STATE_UNBLOCKED..
if that is correct, maybe do working the unblocked...but not work "unblocked"

below code is unblock's operation..right?
rfkill_init_sw_state(wlan, RFKILL_USER_STATE_UNBLOCKED);

but, do not operate unblocked.
please check that source code..

I see the problem :). The hint is in the _USER_ - those constants are not for use by drivers. You want this instead:

rfkill_init_sw_state(wlan, false);

(assuming you really want init_sw_state(). Please do check that your device state is persistent, as described by the comment in rfkill.h).

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at