From patchwork Wed Feb 10 00:42:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shuah Khan X-Patchwork-Id: 380657 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B172CC433DB for ; Wed, 10 Feb 2021 00:45:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 705BA64E26 for ; Wed, 10 Feb 2021 00:45:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234167AbhBJApN (ORCPT ); Tue, 9 Feb 2021 19:45:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33740 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234638AbhBJAnR (ORCPT ); Tue, 9 Feb 2021 19:43:17 -0500 Received: from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com [IPv6:2607:f8b0:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 683DFC06178A for ; Tue, 9 Feb 2021 16:42:31 -0800 (PST) Received: by mail-ot1-x32b.google.com with SMTP id e4so283263ote.5 for ; Tue, 09 Feb 2021 16:42:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cI1Wn7QQuF0sK59lLixArXYXLfpnIwJV8oZPdAl0F9I=; b=DIvvnk6wC8ONJvFq9cTGdR3t5x/Tc4iGsaCj21MPN2ATDuZtlI7MnoRCkXsx8u/A6F XL71KEb2gHg8vMfwwrz1WlOqPT0W8csrMcnpvBDOGvQFyFYltgo08+oifi56gbd0Yh0b miKFg7PFvi0WjKFK4TORSVojMT39LF1llklBg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cI1Wn7QQuF0sK59lLixArXYXLfpnIwJV8oZPdAl0F9I=; b=VkPGHDq6Wy539eGEaAqI6z0alAmyw/cDrnevQa2qd+3Mvq4ywNKUbp03IQVinq2Qj4 3KrG4btvQWuZl+QCCb1N1YcLJw7y8pWOKOkdf4T99sOPNq5pf6w4lNDmD0JCeg36Uf5s glxUV9jf+l6LKgVUR/GpYAvH1824WLZznApFd3jeTdrjyFnHKmLzplUDo+g5KVH5nyQI DcEsWvRFTfJnZ7bBqjCuZoyCDj/g2TqBmH8EXDac+iabh9V9VyBM+oPhY0BndjISpr+E wPNzu8xfX6/TOQIJi0vtJIcxr1IThtPkmVCC+5HYXxrS4BgbC0scloKmpz8Drv6DOIWb SNNA== X-Gm-Message-State: AOAM533lhN4nJaABDOHYOuhbU9wRWJ8g2ER5VNZoAyj5qcHN3MCZQwVD W0l3EZ67Z10BFYnrbvwUb8hHVw== X-Google-Smtp-Source: ABdhPJzKQa0dSZJCF0TM5/ZcnkFLZt3bvK+BZ0jF/xZh3XELFHCeH3EjFvlM737bclqF5vunbMW+kw== X-Received: by 2002:a05:6830:573:: with SMTP id f19mr229610otc.117.1612917750861; Tue, 09 Feb 2021 16:42:30 -0800 (PST) Received: from shuah-t480s.internal (c-24-9-64-241.hsd1.co.comcast.net. [24.9.64.241]) by smtp.gmail.com with ESMTPSA id s123sm103060oos.3.2021.02.09.16.42.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 16:42:30 -0800 (PST) From: Shuah Khan To: kvalo@codeaurora.org, davem@davemloft.net, kuba@kernel.org Cc: Shuah Khan , ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] ath10k: fix conf_mutex lock assert in ath10k_debug_fw_stats_request() Date: Tue, 9 Feb 2021 17:42:22 -0700 Message-Id: <1c38ef6d39ed89a564bc817d964d923ff0676c53.1612915444.git.skhan@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org ath10k_debug_fw_stats_request() is called ath10k_sta_statistics() without holding conf_mutex. ath10k_debug_fw_stats_request() simply returns when CONFIG_ATH10K_DEBUGFS is disabled. When CONFIG_ATH10K_DEBUGFS is enabled, ath10k_debug_fw_stats_request() code path isn't protected. This assert is triggered when CONFIG_LOCKDEP and CONFIG_ATH10K_DEBUGFS are enabled. All other ath10k_debug_fw_stats_request() callers hold conf_mutex. Fix ath10k_sta_statistics() to do the same. WARNING: CPU: 5 PID: 696 at drivers/net/wireless/ath/ath10k/debug.c:357 ath10k_debug_fw_stats_request+0x29a/0x2d0 [ath10k_core] Modules linked in: rfcomm ccm fuse cmac algif_hash algif_skcipher af_alg bnep binfmt_misc nls_iso8859_1 intel_rapl_msr intel_rapl_common snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep snd_pcm amdgpu snd_seq_midi snd_seq_midi_event snd_rawmidi edac_mce_amd snd_seq ath10k_pci ath10k_core aesni_intel gpu_sched drm_ttm_helper btusb ttm glue_helper crypto_simd btrtl ath cryptd drm_kms_helper snd_seq_device btbcm snd_timer rapl btintel cec i2c_algo_bit mac80211 bluetooth fb_sys_fops input_leds ecdh_generic snd wmi_bmof syscopyarea ecc serio_raw efi_pstore ccp k10temp sysfillrect soundcore sysimgblt snd_pci_acp3x cfg80211 ipmi_devintf libarc4 ipmi_msghandler mac_hid sch_fq_codel parport_pc ppdev lp parport drm ip_tables x_tables autofs4 hid_generic usbhid hid crc32_pclmul psmouse ahci nvme libahci i2c_piix4 nvme_core r8169 realtek wmi video CPU: 5 PID: 696 Comm: NetworkManager Tainted: G W 5.11.0-rc7+ #20 Hardware name: LENOVO 10VGCTO1WW/3130, BIOS M1XKT45A 08/21/2019 RIP: 0010:ath10k_debug_fw_stats_request+0x29a/0x2d0 [ath10k_core] Code: 83 c4 10 44 89 f8 5b 41 5c 41 5d 41 5e 41 5f 5d c3 48 8d bf e8 20 00 00 be ff ff ff ff e8 de 2d 47 fa 85 c0 0f 85 8d fd ff ff <0f> 0b e9 86 fd ff ff 41 bf a1 ff ff ff 44 89 fa 48 c7 c6 2c 71 c4 RSP: 0018:ffffaffbc124b7d0 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff93d02e4fec70 RCX: 0000000000000001 RDX: 0000000000000000 RSI: ffff93d00cba5248 RDI: ffff93d00ab309a0 RBP: ffffaffbc124b808 R08: 0000000000000000 R09: ffff93d02e4fec70 R10: 0000000000000001 R11: 0000000000000246 R12: ffff93d00cba3160 R13: ffff93d00cba3160 R14: ffff93d02e4fe4f0 R15: 0000000000000001 FS: 00007f7ce8d50bc0(0000) GS:ffff93d137d40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fc3595ad160 CR3: 000000010d492000 CR4: 00000000003506e0 Call Trace: ? sta_info_get_bss+0xeb/0x1f0 [mac80211] ath10k_sta_statistics+0x4f/0x280 [ath10k_core] sta_set_sinfo+0xda/0xd20 [mac80211] ieee80211_get_station+0x58/0x80 [mac80211] nl80211_get_station+0xbd/0x340 [cfg80211] genl_family_rcv_msg_doit+0xe7/0x150 genl_rcv_msg+0xe2/0x1e0 ? nl80211_dump_station+0x3a0/0x3a0 [cfg80211] ? nl80211_send_station+0xef0/0xef0 [cfg80211] ? genl_get_cmd+0xd0/0xd0 netlink_rcv_skb+0x55/0x100 genl_rcv+0x29/0x40 netlink_unicast+0x1a8/0x270 netlink_sendmsg+0x253/0x480 sock_sendmsg+0x65/0x70 ____sys_sendmsg+0x219/0x260 ? __import_iovec+0x32/0x170 ___sys_sendmsg+0xb7/0x100 ? end_opal_session+0x39/0xd0 ? __fget_files+0xe0/0x1d0 ? find_held_lock+0x31/0x90 ? __fget_files+0xe0/0x1d0 ? __fget_files+0x103/0x1d0 ? __fget_light+0x32/0x80 __sys_sendmsg+0x5a/0xa0 ? syscall_enter_from_user_mode+0x21/0x60 __x64_sys_sendmsg+0x1f/0x30 do_syscall_64+0x38/0x50 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7f7cea2c791d Code: 28 89 54 24 1c 48 89 74 24 10 89 7c 24 08 e8 4a ee ff ff 8b 54 24 1c 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 33 44 89 c7 48 89 44 24 08 e8 9e ee ff ff 48 RSP: 002b:00007ffedf612a30 EFLAGS: 00000293 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 00005618c4cfec00 RCX: 00007f7cea2c791d RDX: 0000000000000000 RSI: 00007ffedf612a80 RDI: 000000000000000b RBP: 00007ffedf612a80 R08: 0000000000000000 R09: 00005618c4e74000 R10: 00005618c4da0590 R11: 0000000000000293 R12: 00005618c4cfec00 R13: 00005618c4cfe2c0 R14: 00007f7cea32ef80 R15: 00005618c4cff340 irq event stamp: 520897 hardirqs last enabled at (520903): [] console_unlock+0x4e5/0x5d0 hardirqs last disabled at (520908): [] console_unlock+0x458/0x5d0 softirqs last enabled at (520722): [] asm_call_irq_on_stack+0x12/0x20 softirqs last disabled at (520717): [] asm_call_irq_on_stack+0x12/0x20 Signed-off-by: Shuah Khan --- drivers/net/wireless/ath/ath10k/mac.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 7d98250380ec..e815aab412d7 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -9117,7 +9117,9 @@ static void ath10k_sta_statistics(struct ieee80211_hw *hw, if (!ath10k_peer_stats_enabled(ar)) return; + mutex_lock(&ar->conf_mutex); ath10k_debug_fw_stats_request(ar); + mutex_unlock(&ar->conf_mutex); sinfo->rx_duration = arsta->rx_duration; sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_DURATION); From patchwork Wed Feb 10 00:42:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shuah Khan X-Patchwork-Id: 380656 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49987C433DB for ; Wed, 10 Feb 2021 00:46:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 14B5964D8F for ; Wed, 10 Feb 2021 00:46:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234536AbhBJApw (ORCPT ); Tue, 9 Feb 2021 19:45:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33822 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234262AbhBJAnd (ORCPT ); Tue, 9 Feb 2021 19:43:33 -0500 Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com [IPv6:2607:f8b0:4864:20::32d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68D30C061793 for ; Tue, 9 Feb 2021 16:42:33 -0800 (PST) Received: by mail-ot1-x32d.google.com with SMTP id e4so283311ote.5 for ; Tue, 09 Feb 2021 16:42:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=z79ZGo6240pzhO2w017tO0EYbGsfaiPNtzjr+o4CyVs=; b=IzTLSvrpTU984HA6FPmdIzo9c6yUerDFYx83kwD6vDItCnWrzOaqUZxkMK4IpSWaRu X7ouFY7siJXiMCMfiq0Uyv7L12I1VKyxkPiMaRgpx8/WEPNACGL3zdhgYDftwC/uzMyY OA1xt8kCu8ptII2jy+Z3CIpBxzLL1s7XaMulQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=z79ZGo6240pzhO2w017tO0EYbGsfaiPNtzjr+o4CyVs=; b=MlmJhL4ceWAd7YIUNmVeIddPBj/1MFg/ocYuQHU95qZQTOjmdin/+gwSvO//xgKBMY RXD9b2RAh1jVxzaxXx3gdqgvVTvXq0JHMwFZiWs4bXhuREpQ0dcIjrb2iXWkMMskUqm7 uPIs3/usZcGFB+ZTJaSMfyh8JxMRnOaQUhtiTVO2vSBnboyc20YtXnGWlhBgb/u51A+y hXH5yzV8mTz9McJZieI4UMW/hkV9McfHW/nGMu6ML1y3DqOOBFPyADSVVJAct7N070Hh ZUa7gvnC/2lMJZeI6rc9SKe9esZrHA7E/kkrNCkndaf2kFf3Vr79YnQjI6MqsHSOvCyD TzMw== X-Gm-Message-State: AOAM5336I06Jp8Y3MRPOQbfjHc17b8defvcpjfZVTAFabWmw8MCVnZd8 Px44nb3DEUrGUnXN76WC6PDZWg== X-Google-Smtp-Source: ABdhPJxB0TlZqQYNJ/niDq4cWTmLSxwTkRDSAQZFaHU3r9ztbpakBwJQt50GOVe3qiWjqQ1PoSba0g== X-Received: by 2002:a05:6830:1bc9:: with SMTP id v9mr259484ota.106.1612917752876; Tue, 09 Feb 2021 16:42:32 -0800 (PST) Received: from shuah-t480s.internal (c-24-9-64-241.hsd1.co.comcast.net. [24.9.64.241]) by smtp.gmail.com with ESMTPSA id s123sm103060oos.3.2021.02.09.16.42.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 16:42:32 -0800 (PST) From: Shuah Khan To: kvalo@codeaurora.org, davem@davemloft.net, kuba@kernel.org Cc: Shuah Khan , ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/5] ath10k: fix WARNING: suspicious RCU usage Date: Tue, 9 Feb 2021 17:42:23 -0700 Message-Id: <23a1333dfb0367cc69e7177a2e373df0b6d42980.1612915444.git.skhan@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org ieee80211_find_sta_by_ifaddr() must be called under the RCU lock and the resulting pointer is only valid under RCU lock as well. Fix ath10k_wmi_tlv_parse_peer_stats_info() to hold RCU lock before it calls ieee80211_find_sta_by_ifaddr() and release it when the resulting pointer is no longer needed. The log below shows the problem. While at it, fix ath10k_wmi_tlv_op_pull_peer_stats_info() to do the same. ============================= WARNING: suspicious RCU usage 5.11.0-rc7+ #20 Tainted: G W ----------------------------- include/linux/rhashtable.h:594 suspicious rcu_dereference_check() usage! other info that might help us debug this: rcu_scheduler_active = 2, debug_locks = 1 no locks held by ksoftirqd/5/44. stack backtrace: CPU: 5 PID: 44 Comm: ksoftirqd/5 Tainted: G W 5.11.0-rc7+ #20 Hardware name: LENOVO 10VGCTO1WW/3130, BIOS M1XKT45A 08/21/2019 Call Trace: dump_stack+0x7d/0x9f lockdep_rcu_suspicious+0xdb/0xe5 __rhashtable_lookup+0x1eb/0x260 [mac80211] ieee80211_find_sta_by_ifaddr+0x5b/0xc0 [mac80211] ath10k_wmi_tlv_parse_peer_stats_info+0x3e/0x90 [ath10k_core] ath10k_wmi_tlv_iter+0x6a/0xc0 [ath10k_core] ? ath10k_wmi_tlv_op_pull_mgmt_tx_bundle_compl_ev+0xe0/0xe0 [ath10k_core] ath10k_wmi_tlv_op_rx+0x5da/0xda0 [ath10k_core] ? trace_hardirqs_on+0x54/0xf0 ? ath10k_ce_completed_recv_next+0x4e/0x60 [ath10k_core] ath10k_wmi_process_rx+0x1d/0x40 [ath10k_core] ath10k_htc_rx_completion_handler+0x115/0x180 [ath10k_core] ath10k_pci_process_rx_cb+0x149/0x1b0 [ath10k_pci] ? ath10k_htc_process_trailer+0x2d0/0x2d0 [ath10k_core] ? ath10k_pci_sleep.part.0+0x6a/0x80 [ath10k_pci] ath10k_pci_htc_rx_cb+0x15/0x20 [ath10k_pci] ath10k_ce_per_engine_service+0x61/0x80 [ath10k_core] ath10k_ce_per_engine_service_any+0x7d/0xa0 [ath10k_core] ath10k_pci_napi_poll+0x48/0x120 [ath10k_pci] net_rx_action+0x136/0x500 __do_softirq+0xc6/0x459 ? smpboot_thread_fn+0x2b/0x1f0 run_ksoftirqd+0x2b/0x60 smpboot_thread_fn+0x116/0x1f0 kthread+0x14b/0x170 ? smpboot_register_percpu_thread+0xe0/0xe0 ? __kthread_bind_mask+0x70/0x70 ret_from_fork+0x22/0x30 Signed-off-by: Shuah Khan --- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c index 7b5834157fe5..615157dd6866 100644 --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c @@ -225,6 +225,7 @@ static int ath10k_wmi_tlv_parse_peer_stats_info(struct ath10k *ar, u16 tag, u16 const struct wmi_tlv_peer_stats_info *stat = ptr; struct ieee80211_sta *sta; struct ath10k_sta *arsta; + int ret = 0; if (tag != WMI_TLV_TAG_STRUCT_PEER_STATS_INFO) return -EPROTO; @@ -240,10 +241,12 @@ static int ath10k_wmi_tlv_parse_peer_stats_info(struct ath10k *ar, u16 tag, u16 __le32_to_cpu(stat->last_tx_rate_code), __le32_to_cpu(stat->last_tx_bitrate_kbps)); + rcu_read_lock(); sta = ieee80211_find_sta_by_ifaddr(ar->hw, stat->peer_macaddr.addr, NULL); if (!sta) { ath10k_warn(ar, "not found station for peer stats\n"); - return -EINVAL; + ret = -EINVAL; + goto exit; } arsta = (struct ath10k_sta *)sta->drv_priv; @@ -252,7 +255,9 @@ static int ath10k_wmi_tlv_parse_peer_stats_info(struct ath10k *ar, u16 tag, u16 arsta->tx_rate_code = __le32_to_cpu(stat->last_tx_rate_code); arsta->tx_bitrate_kbps = __le32_to_cpu(stat->last_tx_bitrate_kbps); - return 0; +exit: + rcu_read_unlock(); + return ret; } static int ath10k_wmi_tlv_op_pull_peer_stats_info(struct ath10k *ar, @@ -573,13 +578,13 @@ static void ath10k_wmi_event_tdls_peer(struct ath10k *ar, struct sk_buff *skb) case WMI_TDLS_TEARDOWN_REASON_TX: case WMI_TDLS_TEARDOWN_REASON_RSSI: case WMI_TDLS_TEARDOWN_REASON_PTR_TIMEOUT: + rcu_read_lock(); station = ieee80211_find_sta_by_ifaddr(ar->hw, ev->peer_macaddr.addr, NULL); if (!station) { ath10k_warn(ar, "did not find station from tdls peer event"); - kfree(tb); - return; + goto exit; } arvif = ath10k_get_arvif(ar, __le32_to_cpu(ev->vdev_id)); ieee80211_tdls_oper_request( @@ -590,6 +595,8 @@ static void ath10k_wmi_event_tdls_peer(struct ath10k *ar, struct sk_buff *skb) ); break; } +exit: + rcu_read_unlock(); kfree(tb); } From patchwork Wed Feb 10 00:42:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shuah Khan X-Patchwork-Id: 380655 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E877C433E0 for ; Wed, 10 Feb 2021 00:49:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CD8E464E4B for ; Wed, 10 Feb 2021 00:49:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233684AbhBJAsg (ORCPT ); Tue, 9 Feb 2021 19:48:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233902AbhBJApw (ORCPT ); Tue, 9 Feb 2021 19:45:52 -0500 Received: from mail-oi1-x229.google.com (mail-oi1-x229.google.com [IPv6:2607:f8b0:4864:20::229]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9105EC06121C for ; Tue, 9 Feb 2021 16:42:37 -0800 (PST) Received: by mail-oi1-x229.google.com with SMTP id h6so200391oie.5 for ; Tue, 09 Feb 2021 16:42:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MVSZTT1h7rg/Bji9PEZgBTdOFc1Uv4h/Ji7bDyaOHUI=; b=b2vrzFxHfxSWjiku00Fz3a6ecUxKY3t2TA0ZzSD7MG6YCM8ajrR7O2gxN7GLKC0rrC FVbuFVlPE0yeTOQlclSOdWDAZdh2akjPV49OJuSExxHxugqDN4N8XLofPBw9tHtZ205Y S3uPZv6Ya+G7CILfj3nxGLLgYE/xenGdXkgrc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MVSZTT1h7rg/Bji9PEZgBTdOFc1Uv4h/Ji7bDyaOHUI=; b=LmrGrOAsht7N9Gi+PItUIOrz9fzfrETeYJDGuQYHUNUKILvYVCK8cLQG4U7GwAbSEx iYnDUvmT5Oy1LYrK/EOkKQCeVcYdRXht9/k/SZ8QE5GuaqVP/xFtxRW5n/Dg7l5t2dAa dupMcNGoO/d8HA6Jdjskm05vNqdqzc9M9SomSG4NWqW7cRFIICUlT9UsImBeVxUVcGAD /ZG5cbo+ZrLQohn4i5Q7vm5cBqZBtfgaasnKFXBAWyNAj8BcefP3SDR85Wj/mqIARVeS PDSYe1/4EWtsLR1NJmbPjRTHEeadLBxxNOage41OFt+tArlAGLaDA5uSC1eo1Nx4WXZf GyAw== X-Gm-Message-State: AOAM531eeEYE7MLWvbm46cSMCKKD2PJsjCk8SmwuGr9hTwvMgZIyUyZE CrR1td6gyIBS9A6f09KaQlA7dw== X-Google-Smtp-Source: ABdhPJzy8O/u6gQ1mql56Asz4MrIdqm2ujZLVWA9B95vdv7w6LIFLxn2QJpAEovPx21tylnZEk7yJA== X-Received: by 2002:aca:8d0:: with SMTP id 199mr294690oii.94.1612917756994; Tue, 09 Feb 2021 16:42:36 -0800 (PST) Received: from shuah-t480s.internal (c-24-9-64-241.hsd1.co.comcast.net. [24.9.64.241]) by smtp.gmail.com with ESMTPSA id s123sm103060oos.3.2021.02.09.16.42.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 16:42:36 -0800 (PST) From: Shuah Khan To: kvalo@codeaurora.org, davem@davemloft.net, kuba@kernel.org Cc: Shuah Khan , ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] ath10k: detect conf_mutex held ath10k_drain_tx() calls Date: Tue, 9 Feb 2021 17:42:25 -0700 Message-Id: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org ath10k_drain_tx() must not be called with conf_mutex held as workers can use that also. Add check to detect conf_mutex held calls. Signed-off-by: Shuah Khan Reported-by: kernel test robot Reported-by: kernel test robot --- drivers/net/wireless/ath/ath10k/mac.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 53f92945006f..3545ce7dce0a 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -4566,6 +4566,7 @@ static void ath10k_mac_op_wake_tx_queue(struct ieee80211_hw *hw, /* Must not be called with conf_mutex held as workers can use that also. */ void ath10k_drain_tx(struct ath10k *ar) { + WARN_ON(lockdep_is_held(&ar->conf_mutex)); /* make sure rcu-protected mac80211 tx path itself is drained */ synchronize_net();