From c2fa61c5039f1eb1ee7e2a407b0bf4be579c0d83 Mon Sep 17 00:00:00 2001 From: Vitaly Wool Date: Thu, 6 Sep 2012 16:06:52 +0200 Subject: [PATCH] --- yaml --- r: 328303 b: refs/heads/master c: eab48345c2b2d791159aaac4a77000baa8dbc1ae h: refs/heads/master i: 328301: c08f499575a31b64a5b197b747a7a1a1ff332b41 328299: 017a0185eb4413e8fc216bc43187b244d4e3b704 328295: 4cd9331a86aa796c89989c9f5026af7901336ecd 328287: 7dd28ac8362282012e4e31372d7e26dc7a6f0bf1 v: v3 --- [refs] | 2 +- trunk/net/rfkill/core.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 2a975d219b61..8dff03e0f356 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c6f219dc83fbb30c8426fcc7850c28d9d33dee44 +refs/heads/master: eab48345c2b2d791159aaac4a77000baa8dbc1ae diff --git a/trunk/net/rfkill/core.c b/trunk/net/rfkill/core.c index c275bad12068..a5c952741279 100644 --- a/trunk/net/rfkill/core.c +++ b/trunk/net/rfkill/core.c @@ -270,6 +270,7 @@ static bool __rfkill_set_hw_state(struct rfkill *rfkill, static void rfkill_set_block(struct rfkill *rfkill, bool blocked) { unsigned long flags; + bool prev, curr; int err; if (unlikely(rfkill->dev.power.power_state.event & PM_EVENT_SLEEP)) @@ -284,6 +285,8 @@ static void rfkill_set_block(struct rfkill *rfkill, bool blocked) rfkill->ops->query(rfkill, rfkill->data); spin_lock_irqsave(&rfkill->lock, flags); + prev = rfkill->state & RFKILL_BLOCK_SW; + if (rfkill->state & RFKILL_BLOCK_SW) rfkill->state |= RFKILL_BLOCK_SW_PREV; else @@ -313,10 +316,13 @@ static void rfkill_set_block(struct rfkill *rfkill, bool blocked) } rfkill->state &= ~RFKILL_BLOCK_SW_SETCALL; rfkill->state &= ~RFKILL_BLOCK_SW_PREV; + curr = rfkill->state & RFKILL_BLOCK_SW; spin_unlock_irqrestore(&rfkill->lock, flags); rfkill_led_trigger_event(rfkill); - rfkill_event(rfkill); + + if (prev != curr) + rfkill_event(rfkill); } #ifdef CONFIG_RFKILL_INPUT