|
@@ -772,6 +772,8 @@ struct wireless_dev *__wlan_hdd_add_virtual_intf(struct wiphy *wiphy,
|
|
|
|
|
|
adapter = NULL;
|
|
adapter = NULL;
|
|
if (type == NL80211_IFTYPE_MONITOR) {
|
|
if (type == NL80211_IFTYPE_MONITOR) {
|
|
|
|
+ bool is_rx_mon = QDF_MONITOR_FLAG_OTHER_BSS & *flags;
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* if QDF_MONITOR_FLAG_OTHER_BSS bit is set in monitor flags
|
|
* if QDF_MONITOR_FLAG_OTHER_BSS bit is set in monitor flags
|
|
* driver will assume current mode as STA + Monitor Mode.
|
|
* driver will assume current mode as STA + Monitor Mode.
|
|
@@ -780,14 +782,15 @@ struct wireless_dev *__wlan_hdd_add_virtual_intf(struct wiphy *wiphy,
|
|
* reject the request.
|
|
* reject the request.
|
|
**/
|
|
**/
|
|
if ((ucfg_dp_is_local_pkt_capture_enabled(hdd_ctx->psoc) &&
|
|
if ((ucfg_dp_is_local_pkt_capture_enabled(hdd_ctx->psoc) &&
|
|
- !(QDF_MONITOR_FLAG_OTHER_BSS & *flags)) ||
|
|
|
|
|
|
+ !is_rx_mon) ||
|
|
(ucfg_mlme_is_sta_mon_conc_supported(hdd_ctx->psoc) &&
|
|
(ucfg_mlme_is_sta_mon_conc_supported(hdd_ctx->psoc) &&
|
|
- (QDF_MONITOR_FLAG_OTHER_BSS & *flags)) ||
|
|
|
|
|
|
+ is_rx_mon) ||
|
|
ucfg_pkt_capture_get_mode(hdd_ctx->psoc) !=
|
|
ucfg_pkt_capture_get_mode(hdd_ctx->psoc) !=
|
|
PACKET_CAPTURE_MODE_DISABLE) {
|
|
PACKET_CAPTURE_MODE_DISABLE) {
|
|
ret = wlan_hdd_add_monitor_check(hdd_ctx,
|
|
ret = wlan_hdd_add_monitor_check(hdd_ctx,
|
|
&adapter, name, true,
|
|
&adapter, name, true,
|
|
- name_assign_type);
|
|
|
|
|
|
+ name_assign_type,
|
|
|
|
+ is_rx_mon);
|
|
if (ret)
|
|
if (ret)
|
|
return ERR_PTR(-EINVAL);
|
|
return ERR_PTR(-EINVAL);
|
|
|
|
|