lkml.org 
[lkml]   [2016]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.5 122/200] mwifiex: fix IBSS data path issue.
    Date
    4.5-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: chunfan chen <jeffc@marvell.com>

    commit dc386ce76dedaeeaaf006fceb6ed8cf2e20ff026 upstream.

    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: 5c8946330abfa4c ("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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/wireless/marvell/mwifiex/sta_event.c | 10 ++++++----
    drivers/net/wireless/marvell/mwifiex/wmm.c | 6 ++++--
    2 files changed, 10 insertions(+), 6 deletions(-)

    --- a/drivers/net/wireless/marvell/mwifiex/sta_event.c
    +++ b/drivers/net/wireless/marvell/mwifiex/sta_event.c
    @@ -607,11 +607,13 @@ int mwifiex_process_sta_event(struct mwi

    case EVENT_PS_AWAKE:
    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) {
    - adapter->pps_uapsd_mode = true;
    - mwifiex_dbg(adapter, EVENT,
    - "event: PPS/UAPSD mode activated\n");
    + adapter->pps_uapsd_mode = true;
    + mwifiex_dbg(adapter, EVENT,
    + "event: PPS/UAPSD mode activated\n");
    }
    adapter->tx_lock_flag = false;
    if (adapter->pps_uapsd_mode && adapter->gen_null_pkt) {
    --- a/drivers/net/wireless/marvell/mwifiex/wmm.c
    +++ b/drivers/net/wireless/marvell/mwifiex/wmm.c
    @@ -475,7 +475,8 @@ mwifiex_wmm_lists_empty(struct mwifiex_a
    priv = adapter->priv[i];
    if (!priv)
    continue;
    - if (!priv->port_open)
    + if (!priv->port_open &&
    + (priv->bss_mode != NL80211_IFTYPE_ADHOC))
    continue;
    if (adapter->if_ops.is_port_ready &&
    !adapter->if_ops.is_port_ready(priv))
    @@ -1099,7 +1100,8 @@ mwifiex_wmm_get_highest_priolist_ptr(str

    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))
    continue;


    \
     
     \ /
      Last update: 2016-05-03 03:21    [W:4.149 / U:0.484 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site