diff options
author | Hante Meuleman <meuleman@broadcom.com> | 2014-12-03 15:05:31 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-12-04 11:35:03 -0500 |
commit | d2cf344d7532eb2fa4f246ec1e29304974e6a902 (patch) | |
tree | 098d87b3b1ec76179bb9deffba03d632523d3f03 /drivers/net/wireless/brcm80211 | |
parent | e9efa340c173ccfe641c50ed102f68237f825c2c (diff) |
brcmfmac: Fix vendor cmds used interface.
The vendor specific commands was always using main interface,
change this to use the by caller supplied interface.
Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-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/brcm80211')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/vendor.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/vendor.c b/drivers/net/wireless/brcm80211/brcmfmac/vendor.c index 222f26a39642..50cdf7090198 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/vendor.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/vendor.c | |||
@@ -31,8 +31,8 @@ static int brcmf_cfg80211_vndr_cmds_dcmd_handler(struct wiphy *wiphy, | |||
31 | struct wireless_dev *wdev, | 31 | struct wireless_dev *wdev, |
32 | const void *data, int len) | 32 | const void *data, int len) |
33 | { | 33 | { |
34 | struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); | 34 | struct brcmf_cfg80211_vif *vif; |
35 | struct net_device *ndev = cfg_to_ndev(cfg); | 35 | struct brcmf_if *ifp; |
36 | const struct brcmf_vndr_dcmd_hdr *cmdhdr = data; | 36 | const struct brcmf_vndr_dcmd_hdr *cmdhdr = data; |
37 | struct sk_buff *reply; | 37 | struct sk_buff *reply; |
38 | int ret, payload, ret_len; | 38 | int ret, payload, ret_len; |
@@ -42,6 +42,9 @@ static int brcmf_cfg80211_vndr_cmds_dcmd_handler(struct wiphy *wiphy, | |||
42 | brcmf_dbg(TRACE, "cmd %x set %d len %d\n", cmdhdr->cmd, cmdhdr->set, | 42 | brcmf_dbg(TRACE, "cmd %x set %d len %d\n", cmdhdr->cmd, cmdhdr->set, |
43 | cmdhdr->len); | 43 | cmdhdr->len); |
44 | 44 | ||
45 | vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); | ||
46 | ifp = vif->ifp; | ||
47 | |||
45 | len -= sizeof(struct brcmf_vndr_dcmd_hdr); | 48 | len -= sizeof(struct brcmf_vndr_dcmd_hdr); |
46 | ret_len = cmdhdr->len; | 49 | ret_len = cmdhdr->len; |
47 | if (ret_len > 0 || len > 0) { | 50 | if (ret_len > 0 || len > 0) { |
@@ -63,11 +66,11 @@ static int brcmf_cfg80211_vndr_cmds_dcmd_handler(struct wiphy *wiphy, | |||
63 | } | 66 | } |
64 | 67 | ||
65 | if (cmdhdr->set) | 68 | if (cmdhdr->set) |
66 | ret = brcmf_fil_cmd_data_set(netdev_priv(ndev), cmdhdr->cmd, | 69 | ret = brcmf_fil_cmd_data_set(ifp, cmdhdr->cmd, dcmd_buf, |
67 | dcmd_buf, ret_len); | 70 | ret_len); |
68 | else | 71 | else |
69 | ret = brcmf_fil_cmd_data_get(netdev_priv(ndev), cmdhdr->cmd, | 72 | ret = brcmf_fil_cmd_data_get(ifp, cmdhdr->cmd, dcmd_buf, |
70 | dcmd_buf, ret_len); | 73 | ret_len); |
71 | if (ret != 0) | 74 | if (ret != 0) |
72 | goto exit; | 75 | goto exit; |
73 | 76 | ||