lkml.org 
[lkml]   [2022]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 464/913] iwlwifi: mvm: align locking in D3 test debugfs
    Date
    From: Johannes Berg <johannes.berg@intel.com>

    [ Upstream commit 59e1221f470c2e5d2f2d4c95153edd577a7071c5 ]

    Since commit a05829a7222e ("cfg80211: avoid holding the RTNL when
    calling the driver") we're not only holding the RTNL when going
    in and out of suspend, but also the wiphy->mtx. Add that to the
    D3 test debugfs in iwlwifi since it's required for various calls
    to mac80211.

    Fixes: a05829a7222e ("cfg80211: avoid holding the RTNL when calling the driver")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Fixes: a05829a7222e ("cfg80211: avoid holding the RTNL when calling the driver")
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Link: https://lore.kernel.org/r/iwlwifi.20220129105618.fcec0204e162.Ib73bf787ab4d83581de20eb89b1f8dbfcaaad0e3@changeid
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
    index d3013a51a509..00ca17f3b263 100644
    --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
    @@ -2499,7 +2499,9 @@ static int iwl_mvm_d3_test_open(struct inode *inode, struct file *file)

    /* start pseudo D3 */
    rtnl_lock();
    + wiphy_lock(mvm->hw->wiphy);
    err = __iwl_mvm_suspend(mvm->hw, mvm->hw->wiphy->wowlan_config, true);
    + wiphy_unlock(mvm->hw->wiphy);
    rtnl_unlock();
    if (err > 0)
    err = -EINVAL;
    @@ -2555,7 +2557,9 @@ static int iwl_mvm_d3_test_release(struct inode *inode, struct file *file)
    iwl_fw_dbg_read_d3_debug_data(&mvm->fwrt);

    rtnl_lock();
    + wiphy_lock(mvm->hw->wiphy);
    __iwl_mvm_resume(mvm, true);
    + wiphy_unlock(mvm->hw->wiphy);
    rtnl_unlock();

    iwl_mvm_resume_tcm(mvm);
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-04-06 01:03    [W:2.663 / U:1.960 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site