lkml.org 
[lkml]   [2018]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 207/496] iwlwifi: mvm: Correctly set the tid for mcast queue
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: Ilan Peer <ilan.peer@intel.com>

    [ Upstream commit 6508de0305d560235b366cc2cc98f7bcfb029e92 ]

    In the scheduler config command, the meaning of tid == 0xf was intended
    to indicate the configuration is for management frames. However,
    tid == 0xf was also used for the multicast queue that was meant only
    for multicast data frames, which resulted with the FW not encrypting
    multicast data frames.

    As multicast frames do not have a QoS header, fix this by setting
    tid == 0, to indicate that this is a data queue and not management
    one.

    Signed-off-by: Ilan Peer <ilan.peer@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
    @@ -2023,7 +2023,7 @@ int iwl_mvm_add_mcast_sta(struct iwl_mvm
    struct iwl_trans_txq_scd_cfg cfg = {
    .fifo = IWL_MVM_TX_FIFO_MCAST,
    .sta_id = msta->sta_id,
    - .tid = IWL_MAX_TID_COUNT,
    + .tid = 0,
    .aggregate = false,
    .frame_limit = IWL_FRAME_LIMIT,
    };
    @@ -2074,7 +2074,7 @@ int iwl_mvm_add_mcast_sta(struct iwl_mvm
    if (iwl_mvm_has_new_tx_api(mvm)) {
    int queue = iwl_mvm_tvqm_enable_txq(mvm, vif->cab_queue,
    msta->sta_id,
    - IWL_MAX_TID_COUNT,
    + 0,
    timeout);
    mvmvif->cab_queue = queue;
    } else if (!fw_has_api(&mvm->fw->ucode_capa,
    @@ -2099,7 +2099,7 @@ int iwl_mvm_rm_mcast_sta(struct iwl_mvm
    iwl_mvm_flush_sta(mvm, &mvmvif->mcast_sta, true, 0);

    iwl_mvm_disable_txq(mvm, mvmvif->cab_queue, vif->cab_queue,
    - IWL_MAX_TID_COUNT, 0);
    + 0, 0);

    ret = iwl_mvm_rm_sta_common(mvm, mvmvif->mcast_sta.sta_id);
    if (ret)

    \
     
     \ /
      Last update: 2018-05-28 15:15    [W:3.107 / U:1.112 seconds]
    ©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site