lkml.org 
[lkml]   [2020]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 168/376] iwlwifi: avoid debug max amsdu config overwriting itself
    Date
    From: Mordechay Goodstein <mordechay.goodstein@intel.com>

    [ Upstream commit a65a5824298b06049dbaceb8a9bd19709dc9507c ]

    If we set amsdu_len one after another the second one overwrites
    the orig_amsdu_len so allow only moving from debug to non debug state.

    Also the TLC update check was wrong: it was checking that also the orig
    is smaller then the new updated size, which is not the case in debug
    amsdu mode.

    Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
    Fixes: af2984e9e625 ("iwlwifi: mvm: add a debugfs entry to set a fixed size AMSDU for all TX packets")
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Link: https://lore.kernel.org/r/iwlwifi.20200424182644.e565446a4fce.I9729d8c520d8b8bb4de9a5cdc62e01eb85168aac@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 11 +++++++----
    drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 15 ++++++++-------
    2 files changed, 15 insertions(+), 11 deletions(-)

    diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
    index 3beef8d077b8..8fae7e707374 100644
    --- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
    @@ -5,10 +5,9 @@
    *
    * GPL LICENSE SUMMARY
    *
    - * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
    * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
    * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
    - * Copyright(c) 2018 - 2019 Intel Corporation
    + * Copyright(c) 2012 - 2014, 2018 - 2020 Intel Corporation
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of version 2 of the GNU General Public License as
    @@ -28,10 +27,9 @@
    *
    * BSD LICENSE
    *
    - * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
    * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
    * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
    - * Copyright(c) 2018 - 2019 Intel Corporation
    + * Copyright(c) 2012 - 2014, 2018 - 2020 Intel Corporation
    * All rights reserved.
    *
    * Redistribution and use in source and binary forms, with or without
    @@ -481,6 +479,11 @@ static ssize_t iwl_dbgfs_amsdu_len_write(struct ieee80211_sta *sta,
    if (kstrtou16(buf, 0, &amsdu_len))
    return -EINVAL;

    + /* only change from debug set <-> debug unset */
    + if ((amsdu_len && mvmsta->orig_amsdu_len) ||
    + (!!amsdu_len && mvmsta->orig_amsdu_len))
    + return -EBUSY;
    +
    if (amsdu_len) {
    mvmsta->orig_amsdu_len = sta->max_amsdu_len;
    sta->max_amsdu_len = amsdu_len;
    diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
    index 15d11fb72aca..6f4d241d47e9 100644
    --- a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
    @@ -369,14 +369,15 @@ void iwl_mvm_tlc_update_notif(struct iwl_mvm *mvm,
    u16 size = le32_to_cpu(notif->amsdu_size);
    int i;

    - /*
    - * In debug sta->max_amsdu_len < size
    - * so also check with orig_amsdu_len which holds the original
    - * data before debugfs changed the value
    - */
    - if (WARN_ON(sta->max_amsdu_len < size &&
    - mvmsta->orig_amsdu_len < size))
    + if (sta->max_amsdu_len < size) {
    + /*
    + * In debug sta->max_amsdu_len < size
    + * so also check with orig_amsdu_len which holds the
    + * original data before debugfs changed the value
    + */
    + WARN_ON(mvmsta->orig_amsdu_len < size);
    goto out;
    + }

    mvmsta->amsdu_enabled = le32_to_cpu(notif->amsdu_enabled);
    mvmsta->max_amsdu_len = size;
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-06-19 17:27    [W:4.020 / U:0.312 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site