Skip to content

Commit effc09c

Browse files
Jithu JanceMetallice
authored andcommitted
net: wireless: bcmdhd: Enable P2P probe request handling only during discovery
Change-Id: I2db29d5ed7f66f2a45feb890c81d510fcad24dd2 Signed-off-by: Dmitry Shmidt <[email protected]>
1 parent 1ca41a7 commit effc09c

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

drivers/net/wireless/bcmdhd/dhd_linux.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3391,7 +3391,6 @@ dhd_preinit_ioctls(dhd_pub_t *dhd)
33913391
setbit(eventmask, WLC_E_ACTION_FRAME_RX);
33923392
setbit(eventmask, WLC_E_ACTION_FRAME_COMPLETE);
33933393
setbit(eventmask, WLC_E_ACTION_FRAME_OFF_CHAN_COMPLETE);
3394-
setbit(eventmask, WLC_E_P2P_PROBREQ_MSG);
33953394
setbit(eventmask, WLC_E_P2P_DISC_LISTEN_COMPLETE);
33963395
}
33973396
#endif /* WL_CFG80211 */

drivers/net/wireless/bcmdhd/wl_cfg80211.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,6 @@ static __used bool wl_is_ibssstarter(struct wl_priv *wl);
331331
*/
332332
static s32 __wl_cfg80211_up(struct wl_priv *wl);
333333
static s32 __wl_cfg80211_down(struct wl_priv *wl);
334-
static s32 wl_add_remove_eventmsg(struct net_device *ndev, u16 event, bool add);
335334
static bool wl_is_linkdown(struct wl_priv *wl, const wl_event_msg_t *e);
336335
static bool wl_is_linkup(struct wl_priv *wl, const wl_event_msg_t *e, struct net_device *ndev);
337336
static bool wl_is_nonetwork(struct wl_priv *wl, const wl_event_msg_t *e);
@@ -7089,7 +7088,7 @@ static s32 wl_config_ifmode(struct wl_priv *wl, struct net_device *ndev, s32 ift
70897088
return 0;
70907089
}
70917090

7092-
static s32 wl_add_remove_eventmsg(struct net_device *ndev, u16 event, bool add)
7091+
s32 wl_add_remove_eventmsg(struct net_device *ndev, u16 event, bool add)
70937092
{
70947093
s8 iovbuf[WL_EVENTING_MASK_LEN + 12];
70957094

drivers/net/wireless/bcmdhd/wl_cfg80211.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,4 +689,5 @@ void wl_cfg80211_enable_trace(int level);
689689
extern s32 wl_update_wiphybands(struct wl_priv *wl);
690690
extern s32 wl_cfg80211_if_is_group_owner(void);
691691
extern int wl_cfg80211_update_power_mode(struct net_device *dev);
692+
extern s32 wl_add_remove_eventmsg(struct net_device *ndev, u16 event, bool add);
692693
#endif /* _wl_cfg80211_h_ */

drivers/net/wireless/bcmdhd/wl_cfgp2p.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ wl_cfgp2p_enable_discovery(struct wl_priv *wl, struct net_device *dev,
641641
}
642642
set_ie:
643643
ret = wl_cfgp2p_set_management_ie(wl, dev,
644-
wl_cfgp2p_find_idx(wl, dev),
644+
wl_to_p2p_bss_bssidx(wl, P2PAPI_BSSCFG_DEVICE),
645645
VNDR_IE_PRBREQ_FLAG, ie, ie_len);
646646

647647
if (unlikely(ret < 0)) {
@@ -1230,6 +1230,10 @@ wl_cfgp2p_listen_complete(struct wl_priv *wl, struct net_device *ndev,
12301230
}
12311231
cfg80211_remain_on_channel_expired(ndev, wl->last_roc_id, &wl->remain_on_chan,
12321232
wl->remain_on_chan_type, GFP_KERNEL);
1233+
if (wl_add_remove_eventmsg(wl_to_prmry_ndev(wl),
1234+
WLC_E_P2P_PROBREQ_MSG, false) != BCME_OK) {
1235+
CFGP2P_ERR((" failed to unset WLC_E_P2P_PROPREQ_MSG\n"));
1236+
}
12331237
} else
12341238
wl_clr_p2p_status(wl, LISTEN_EXPIRED);
12351239

@@ -1321,6 +1325,9 @@ wl_cfgp2p_discover_listen(struct wl_priv *wl, s32 channel, u32 duration_ms)
13211325
} else
13221326
wl_clr_p2p_status(wl, LISTEN_EXPIRED);
13231327

1328+
if (wl_add_remove_eventmsg(wl_to_prmry_ndev(wl), WLC_E_P2P_PROBREQ_MSG, true) != BCME_OK) {
1329+
CFGP2P_ERR((" failed to set WLC_E_P2P_PROPREQ_MSG\n"));
1330+
}
13241331
wl_cfgp2p_set_p2p_mode(wl, WL_P2P_DISC_ST_LISTEN, channel, (u16) duration_ms,
13251332
wl_to_p2p_bss_bssidx(wl, P2PAPI_BSSCFG_DEVICE));
13261333
_timer = &wl->p2p->listen_timer;

0 commit comments

Comments
 (0)