diff options
author | Roland Vossen <rvossen@broadcom.com> | 2011-10-12 20:51:12 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-10-14 14:48:16 -0400 |
commit | 2a7fc5b1c17a6055fe2753ebacaf43b5780bcf99 (patch) | |
tree | bae75a98fea99de15a4b38b4d6386596a820ecd3 /drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h | |
parent | be69c4ef462a476523f89c74e7db29f6ad207a1a (diff) |
brcm80211: smac: decreased timer callback irq level
Timer functions were called at soft-irq level, leading to the limitation
that mutexes could not be used. Lifted this limitation by migrating to
work queues.
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Reviewed-by: Arend van Spriel <arend@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/brcmsmac/mac80211_if.h')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h index 91e5f2ac56cf..177f0e44e4b6 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h @@ -19,6 +19,8 @@ #include <linux/timer.h> #include <linux/interrupt.h> +#include <linux/workqueue.h> + #include "ucode_loader.h" /* * Starting index for 5G rates in the @@ -30,14 +32,14 @@ #define BRCMS_SET_SHORTSLOT_OVERRIDE 146 struct brcms_timer { - struct timer_list timer; + struct delayed_work dly_wrk; struct brcms_info *wl; - void (*fn) (void *); - void *arg; /* argument to fn */ + void (*fn) (void *); /* function called upon expiration */ + void *arg; /* fixed argument provided to called function */ uint ms; bool periodic; - bool set; - struct brcms_timer *next; + bool set; /* indicates if timer is active */ + struct brcms_timer *next; /* for freeing on unload */ #ifdef BCMDBG char *name; /* Description of the timer */ #endif |