aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2013-04-05 04:57:47 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-08 15:28:44 -0400
commit7fa2e3529c51f1c3590964c1746cc48d04cbc0ab (patch)
tree63d2d873d85812f0f12013b1a6919886ba5714bf /drivers/net/wireless
parent5857f9c6a88845a7ae5be02582b6a07dab6ef7b4 (diff)
brcmfmac: remove use of unconditional access of struct wireless_dev::netdev
With the introduction of the P2P_DEVICE interface type an instance of struct wireless_dev does not always have a netdev assigned to it. Better use container_of() construct to obtain internal structure and go from there. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Piotr Haber <phaber@broadcom.com> Reviewed-by: Hante Meuleman <meuleman@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')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index beba7f69577b..56359e3e7eb6 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -3868,13 +3868,13 @@ brcmf_cfg80211_mgmt_frame_register(struct wiphy *wiphy,
3868 struct wireless_dev *wdev, 3868 struct wireless_dev *wdev,
3869 u16 frame_type, bool reg) 3869 u16 frame_type, bool reg)
3870{ 3870{
3871 struct brcmf_if *ifp = netdev_priv(wdev->netdev); 3871 struct brcmf_cfg80211_vif *vif;
3872 struct brcmf_cfg80211_vif *vif = ifp->vif;
3873 u16 mgmt_type; 3872 u16 mgmt_type;
3874 3873
3875 brcmf_dbg(TRACE, "Enter, frame_type %04x, reg=%d\n", frame_type, reg); 3874 brcmf_dbg(TRACE, "Enter, frame_type %04x, reg=%d\n", frame_type, reg);
3876 3875
3877 mgmt_type = (frame_type & IEEE80211_FCTL_STYPE) >> 4; 3876 mgmt_type = (frame_type & IEEE80211_FCTL_STYPE) >> 4;
3877 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev);
3878 if (reg) 3878 if (reg)
3879 vif->mgmt_rx_reg |= BIT(mgmt_type); 3879 vif->mgmt_rx_reg |= BIT(mgmt_type);
3880 else 3880 else
@@ -3890,7 +3890,6 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
3890{ 3890{
3891 struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); 3891 struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
3892 const struct ieee80211_mgmt *mgmt; 3892 const struct ieee80211_mgmt *mgmt;
3893 struct brcmf_if *ifp;
3894 struct brcmf_cfg80211_vif *vif; 3893 struct brcmf_cfg80211_vif *vif;
3895 s32 err = 0; 3894 s32 err = 0;
3896 s32 ie_offset; 3895 s32 ie_offset;
@@ -3926,8 +3925,7 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
3926 ie_offset = DOT11_MGMT_HDR_LEN + 3925 ie_offset = DOT11_MGMT_HDR_LEN +
3927 DOT11_BCN_PRB_FIXED_LEN; 3926 DOT11_BCN_PRB_FIXED_LEN;
3928 ie_len = len - ie_offset; 3927 ie_len = len - ie_offset;
3929 ifp = netdev_priv(wdev->netdev); 3928 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev);
3930 vif = ifp->vif;
3931 if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif) 3929 if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif)
3932 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif; 3930 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif;
3933 err = brcmf_vif_set_mgmt_ie(vif, 3931 err = brcmf_vif_set_mgmt_ie(vif,
@@ -3962,7 +3960,7 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
3962 *cookie, le16_to_cpu(action_frame->len), 3960 *cookie, le16_to_cpu(action_frame->len),
3963 chan->center_freq); 3961 chan->center_freq);
3964 3962
3965 ack = brcmf_p2p_send_action_frame(cfg, wdev->netdev, 3963 ack = brcmf_p2p_send_action_frame(cfg, cfg_to_ndev(cfg),
3966 af_params); 3964 af_params);
3967 3965
3968 cfg80211_mgmt_tx_status(wdev, *cookie, buf, len, ack, 3966 cfg80211_mgmt_tx_status(wdev, *cookie, buf, len, ack,