mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
mwifiex: fix IBSS data path issue.
The port_open flag is not applicable for IBSS mode. IBSS data
path was broken when port_open flag was introduced.
This patch fixes the problem by correcting the checks.
Fixes: 5c8946330a ("mwifiex: enable traffic only when port is open")
Signed-off-by: chunfan chen <jeffc@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
2fd5c6ed0b
commit
dc386ce76d
|
|
@ -607,11 +607,13 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)
|
||||||
|
|
||||||
case EVENT_PS_AWAKE:
|
case EVENT_PS_AWAKE:
|
||||||
mwifiex_dbg(adapter, EVENT, "info: EVENT: AWAKE\n");
|
mwifiex_dbg(adapter, EVENT, "info: EVENT: AWAKE\n");
|
||||||
if (!adapter->pps_uapsd_mode && priv->port_open &&
|
if (!adapter->pps_uapsd_mode &&
|
||||||
|
(priv->port_open ||
|
||||||
|
(priv->bss_mode == NL80211_IFTYPE_ADHOC)) &&
|
||||||
priv->media_connected && adapter->sleep_period.period) {
|
priv->media_connected && adapter->sleep_period.period) {
|
||||||
adapter->pps_uapsd_mode = true;
|
adapter->pps_uapsd_mode = true;
|
||||||
mwifiex_dbg(adapter, EVENT,
|
mwifiex_dbg(adapter, EVENT,
|
||||||
"event: PPS/UAPSD mode activated\n");
|
"event: PPS/UAPSD mode activated\n");
|
||||||
}
|
}
|
||||||
adapter->tx_lock_flag = false;
|
adapter->tx_lock_flag = false;
|
||||||
if (adapter->pps_uapsd_mode && adapter->gen_null_pkt) {
|
if (adapter->pps_uapsd_mode && adapter->gen_null_pkt) {
|
||||||
|
|
|
||||||
|
|
@ -475,7 +475,8 @@ mwifiex_wmm_lists_empty(struct mwifiex_adapter *adapter)
|
||||||
priv = adapter->priv[i];
|
priv = adapter->priv[i];
|
||||||
if (!priv)
|
if (!priv)
|
||||||
continue;
|
continue;
|
||||||
if (!priv->port_open)
|
if (!priv->port_open &&
|
||||||
|
(priv->bss_mode != NL80211_IFTYPE_ADHOC))
|
||||||
continue;
|
continue;
|
||||||
if (adapter->if_ops.is_port_ready &&
|
if (adapter->if_ops.is_port_ready &&
|
||||||
!adapter->if_ops.is_port_ready(priv))
|
!adapter->if_ops.is_port_ready(priv))
|
||||||
|
|
@ -1099,7 +1100,8 @@ mwifiex_wmm_get_highest_priolist_ptr(struct mwifiex_adapter *adapter,
|
||||||
|
|
||||||
priv_tmp = adapter->bss_prio_tbl[j].bss_prio_cur->priv;
|
priv_tmp = adapter->bss_prio_tbl[j].bss_prio_cur->priv;
|
||||||
|
|
||||||
if (!priv_tmp->port_open ||
|
if (((priv_tmp->bss_mode != NL80211_IFTYPE_ADHOC) &&
|
||||||
|
!priv_tmp->port_open) ||
|
||||||
(atomic_read(&priv_tmp->wmm.tx_pkts_queued) == 0))
|
(atomic_read(&priv_tmp->wmm.tx_pkts_queued) == 0))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user