rfkill: fix rfkill_set_states() to set the hw state
authorAlan Jenkins <alan-jenkins@tuffmail.co.uk>
Sun, 12 Jul 2009 16:03:13 +0000 (17:03 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 21 Jul 2009 16:07:38 +0000 (12:07 -0400)
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 <alan-jenkins@tuffmail.co.uk>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/rfkill/core.c

index 6896c0b45b4a53746c889fd32ad15dfea3df11bc..2fc4a1724eb8e2e1fcacd6f0f55ea16c4afbd674 100644 (file)
@@ -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);