aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/brcm80211/brcmsmac/mac80211_if.c
diff options
context:
space:
mode:
authorRoland Vossen <rvossen@broadcom.com>2011-09-29 15:34:26 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-03 16:12:31 -0700
commit3568a0a0e7881cdb955c6c6c90b0fb43ccaa3e98 (patch)
tree0389ec5a9abd290eb72261b3018eabda8f127b56 /drivers/staging/brcm80211/brcmsmac/mac80211_if.c
parentstaging: brcm80211: removed band related global vars from softmac (diff)
downloadlinux-dev-3568a0a0e7881cdb955c6c6c90b0fb43ccaa3e98.tar.xz
linux-dev-3568a0a0e7881cdb955c6c6c90b0fb43ccaa3e98.zip
staging: brcm80211: removed global var global_scb from softmac
Global variables are undesirable unless they are read only. Removed by instead using an already defined Station Control Block variable in a per-device structure. Reported-by: Johannes Berg <johannes@sipsolutions.net> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/brcm80211/brcmsmac/mac80211_if.c')
-rw-r--r--drivers/staging/brcm80211/brcmsmac/mac80211_if.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/drivers/staging/brcm80211/brcmsmac/mac80211_if.c b/drivers/staging/brcm80211/brcmsmac/mac80211_if.c
index d5d0d9e668f4..1c4568741e84 100644
--- a/drivers/staging/brcm80211/brcmsmac/mac80211_if.c
+++ b/drivers/staging/brcm80211/brcmsmac/mac80211_if.c
@@ -616,25 +616,14 @@ static int
brcms_ops_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
{
- struct scb *scb;
-
- int i;
struct brcms_info *wl = hw->priv;
+ struct scb *scb = &wl->wlc->pri_scb;
- /* Init the scb */
- scb = (struct scb *)sta->drv_priv;
- memset(scb, 0, sizeof(struct scb));
- for (i = 0; i < NUMPRIO; i++)
- scb->seqctl[i] = 0xFFFF;
- scb->seqctl_nonqos = 0xFFFF;
- scb->magic = SCB_MAGIC;
+ brcms_c_init_scb(scb);
- wl->pub->global_scb = scb;
wl->pub->global_ampdu = &(scb->scb_ampdu);
wl->pub->global_ampdu->scb = scb;
wl->pub->global_ampdu->max_pdu = 16;
- brcmu_pktq_init(&scb->scb_ampdu.txq, AMPDU_MAX_SCB_TID,
- AMPDU_MAX_SCB_TID * PKTQ_LEN_DEFAULT);
sta->ht_cap.ht_supported = true;
sta->ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
@@ -657,8 +646,8 @@ brcms_ops_ampdu_action(struct ieee80211_hw *hw,
struct ieee80211_sta *sta, u16 tid, u16 *ssn,
u8 buf_size)
{
- struct scb *scb = (struct scb *)sta->drv_priv;
struct brcms_info *wl = hw->priv;
+ struct scb *scb = &wl->wlc->pri_scb;
int status;
if (WARN_ON(scb->magic != SCB_MAGIC))
@@ -1038,7 +1027,7 @@ static int ieee_hw_init(struct ieee80211_hw *hw)
hw->rate_control_algorithm = "minstrel_ht";
- hw->sta_data_size = sizeof(struct scb);
+ hw->sta_data_size = 0;
return ieee_hw_rate_init(hw);
}