summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/brcm80211
diff options
context:
space:
mode:
authorPiotr Haber2013-01-02 15:22:34 +0100
committerJohn W. Linville2013-01-07 21:16:54 +0100
commit01486c5ad388c8a38f2e075666e8c2ee32bda4b6 (patch)
treeb3dc9f841e480c9fb051964c32b351a0d00e3a35 /drivers/net/wireless/brcm80211
parentrt2x00: rt2800: convert read_eeprom functions to return an int value (diff)
downloadkernel-qcow2-linux-01486c5ad388c8a38f2e075666e8c2ee32bda4b6.tar.gz
kernel-qcow2-linux-01486c5ad388c8a38f2e075666e8c2ee32bda4b6.tar.xz
kernel-qcow2-linux-01486c5ad388c8a38f2e075666e8c2ee32bda4b6.zip
brcmsmac: increase timer reference count for new timers only
On hardware reintialization reference count of already existing timers would be increased again. This leads to problems on module unloading. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Piotr Haber <phaber@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/brcm80211')
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
index f0fc8cd4d5df..f8e2591961ab 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
@@ -1409,9 +1409,10 @@ void brcms_add_timer(struct brcms_timer *t, uint ms, int periodic)
#endif
t->ms = ms;
t->periodic = (bool) periodic;
- t->set = true;
-
- atomic_inc(&t->wl->callbacks);
+ if (!t->set) {
+ t->set = true;
+ atomic_inc(&t->wl->callbacks);
+ }
ieee80211_queue_delayed_work(hw, &t->dly_wrk, msecs_to_jiffies(ms));
}