diff options
author | Arend van Spriel <arend@broadcom.com> | 2013-04-05 04:57:52 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-04-08 15:28:47 -0400 |
commit | bffc61c9ca5c27e9b1e081e7390715d2b93168ed (patch) | |
tree | 89510794ebac0d588a0d02e791aca0459566d6c3 /drivers/net/wireless | |
parent | 01b8e7db61fbe575193ea2c6eda1964c1d9b8b07 (diff) |
brcmfmac: fix reception of P2P probe requests on P2P_DEVICE interface
The probe requests received on P2P_DEVICE interface were not sent
to wpa_supplicant, which makes the device not discoverable by peers.
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@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/p2p.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c index c3d98362947f..6f165565fe61 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c | |||
@@ -1850,7 +1850,6 @@ s32 brcmf_p2p_notify_rx_mgmt_p2p_probereq(struct brcmf_if *ifp, | |||
1850 | struct brcmf_cfg80211_info *cfg = ifp->drvr->config; | 1850 | struct brcmf_cfg80211_info *cfg = ifp->drvr->config; |
1851 | struct brcmf_p2p_info *p2p = &cfg->p2p; | 1851 | struct brcmf_p2p_info *p2p = &cfg->p2p; |
1852 | struct afx_hdl *afx_hdl = &p2p->afx_hdl; | 1852 | struct afx_hdl *afx_hdl = &p2p->afx_hdl; |
1853 | struct wireless_dev *wdev; | ||
1854 | struct brcmf_cfg80211_vif *vif = ifp->vif; | 1853 | struct brcmf_cfg80211_vif *vif = ifp->vif; |
1855 | struct brcmf_rx_mgmt_data *rxframe = (struct brcmf_rx_mgmt_data *)data; | 1854 | struct brcmf_rx_mgmt_data *rxframe = (struct brcmf_rx_mgmt_data *)data; |
1856 | u16 chanspec = be16_to_cpu(rxframe->chanspec); | 1855 | u16 chanspec = be16_to_cpu(rxframe->chanspec); |
@@ -1893,8 +1892,9 @@ s32 brcmf_p2p_notify_rx_mgmt_p2p_probereq(struct brcmf_if *ifp, | |||
1893 | CHSPEC_IS2G(chanspec) ? | 1892 | CHSPEC_IS2G(chanspec) ? |
1894 | IEEE80211_BAND_2GHZ : | 1893 | IEEE80211_BAND_2GHZ : |
1895 | IEEE80211_BAND_5GHZ); | 1894 | IEEE80211_BAND_5GHZ); |
1896 | wdev = ifp->ndev->ieee80211_ptr; | 1895 | |
1897 | cfg80211_rx_mgmt(wdev, freq, 0, mgmt_frame, mgmt_frame_len, GFP_ATOMIC); | 1896 | cfg80211_rx_mgmt(&vif->wdev, freq, 0, mgmt_frame, mgmt_frame_len, |
1897 | GFP_ATOMIC); | ||
1898 | 1898 | ||
1899 | brcmf_dbg(INFO, "mgmt_frame_len (%d) , e->datalen (%d), chanspec (%04x), freq (%d)\n", | 1899 | brcmf_dbg(INFO, "mgmt_frame_len (%d) , e->datalen (%d), chanspec (%04x), freq (%d)\n", |
1900 | mgmt_frame_len, e->datalen, chanspec, freq); | 1900 | mgmt_frame_len, e->datalen, chanspec, freq); |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c index 68859e534420..7eb01e06ae6c 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | |||
@@ -4112,6 +4112,11 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] = { | |||
4112 | BIT(IEEE80211_STYPE_AUTH >> 4) | | 4112 | BIT(IEEE80211_STYPE_AUTH >> 4) | |
4113 | BIT(IEEE80211_STYPE_DEAUTH >> 4) | | 4113 | BIT(IEEE80211_STYPE_DEAUTH >> 4) | |
4114 | BIT(IEEE80211_STYPE_ACTION >> 4) | 4114 | BIT(IEEE80211_STYPE_ACTION >> 4) |
4115 | }, | ||
4116 | [NL80211_IFTYPE_P2P_DEVICE] = { | ||
4117 | .tx = 0xffff, | ||
4118 | .rx = BIT(IEEE80211_STYPE_ACTION >> 4) | | ||
4119 | BIT(IEEE80211_STYPE_PROBE_REQ >> 4) | ||
4115 | } | 4120 | } |
4116 | }; | 4121 | }; |
4117 | 4122 | ||