From nobody Fri Feb 13 12:35:20 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6BFD8CE7A8C for ; Sun, 24 Sep 2023 19:51:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231430AbjIXTvH (ORCPT ); Sun, 24 Sep 2023 15:51:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50136 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231404AbjIXTu7 (ORCPT ); Sun, 24 Sep 2023 15:50:59 -0400 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1FAE3FA for ; Sun, 24 Sep 2023 12:50:53 -0700 (PDT) Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3224c229d31so802683f8f.0 for ; Sun, 24 Sep 2023 12:50:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695585051; x=1696189851; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=Ad41TGXwIahQ49MHw+UdUbfiHlgxk7kDHjA1x4UOf8E=; b=iIosmKJhwRXo2fu6OuvkG0zG0Iu5Np4YrBPTgMdpB+WIab95Mt5QgOQCp0Zi1zLX9x AYj9KHfCjZj88XwDIwM6nql1sSl8xev5eOV8vxxLYvWiPPa5F45bSEpj/GzZmE1VBigf AznIfFnWH35b1CDK0fyLAcxYsP+44p0v3+Tq+CQM++/V9nA7N2iodVCMxuat4BPTkEsC hl4eV2HVWJaTdSnudREKWmrLPDyYvE7zDG6rr2BKDH+ODHRkzfYQE7xRHpqCSBoAp03r fNp76Dywfh35WpBGVOvHV5wEWYhJRLiUdy2j/OMh0r+Ak3eGyy+1QSHgA6Wnz4LS+CBG Pb9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695585051; x=1696189851; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Ad41TGXwIahQ49MHw+UdUbfiHlgxk7kDHjA1x4UOf8E=; b=U6kspouQB3Ly5PSmNTb447Xq/vnH56ZYjCTo3cHvmv9lpdmsCcI7I588tqRjJKLsSk E1VFvn7nr4D0MxBtmx/3X5bwJLpHepGKN9uCzIgW0JjAzFiwVH7X4sFZMZlISnrJzlET 5vhZEuia5vD8LOMVv/P7jMf069xhL1TPzjHhpI4y6Ay9MsxwVC+vnHXskknrNs8RSGmG 1anbSPtSQPrHebzH0JnCx8gqSBG8F+K2mhQ1fUi3czvoYznWx29SkyUweUp+jQOfV/KT KaU6l4+cwNXNyziKLpx1HhxXRTV+9zWCc3r8Wjy2H12bTUv8570LWye2a4f2kZf9oOrV ruOw== X-Gm-Message-State: AOJu0YxLIXg2o9jTMgggL59XG0e40AHWN2yyaWwnNcbQFPQyPxpIVQWz Xu+oUR1JFe7AQ44omSHy1gfjs9Tpir8= X-Google-Smtp-Source: AGHT+IGNP2pZpAtLJmnr9Np23Qt3h8YDzNGMTMBeRErqYnZDanSXWZ4oGsDt2pHasl8f/J/F1MMmbw== X-Received: by 2002:adf:d087:0:b0:320:b1e:7e6c with SMTP id y7-20020adfd087000000b003200b1e7e6cmr3764106wrh.3.1695585051315; Sun, 24 Sep 2023 12:50:51 -0700 (PDT) Received: from matrix-ESPRIMO-P710 (p579356c7.dip0.t-ipconnect.de. [87.147.86.199]) by smtp.gmail.com with ESMTPSA id n14-20020a5d400e000000b00321773bb933sm10020959wrp.77.2023.09.24.12.50.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Sep 2023 12:50:51 -0700 (PDT) Date: Sun, 24 Sep 2023 21:50:49 +0200 From: Philipp Hortmann To: Greg Kroah-Hartman , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] staging: rtl8192e: Put kfree() to end of rtllib_softmac_free() Message-ID: <85b63c62780356af91c30cc63280c5f59cd29210.1695582999.git.philipp.g.hortmann@gmail.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" To reverse order of initialization put kfree() to the end of rtllib_softmac_free(). Signed-off-by: Philipp Hortmann --- drivers/staging/rtl8192e/rtllib_softmac.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rt= l8192e/rtllib_softmac.c index 982578e1c0af..d3468b646ca8 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c @@ -2462,8 +2462,6 @@ int rtllib_softmac_init(struct rtllib_device *ieee) void rtllib_softmac_free(struct rtllib_device *ieee) { mutex_lock(&ieee->wx_mutex); - kfree(ieee->dot11d_info); - ieee->dot11d_info =3D NULL; del_timer_sync(&ieee->associate_timer); =20 cancel_delayed_work_sync(&ieee->associate_retry_wq); @@ -2476,6 +2474,9 @@ void rtllib_softmac_free(struct rtllib_device *ieee) cancel_work_sync(&ieee->ips_leave_wq); cancel_work_sync(&ieee->wx_sync_scan_wq); cancel_work_sync(&ieee->ps_task); + + kfree(ieee->dot11d_info); + ieee->dot11d_info =3D NULL; mutex_unlock(&ieee->wx_mutex); } =20 --=20 2.42.0 From nobody Fri Feb 13 12:35:20 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7AF1ACE7A8A for ; Sun, 24 Sep 2023 19:51:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230029AbjIXTvL (ORCPT ); Sun, 24 Sep 2023 15:51:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231459AbjIXTvH (ORCPT ); Sun, 24 Sep 2023 15:51:07 -0400 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADF5D193 for ; Sun, 24 Sep 2023 12:50:59 -0700 (PDT) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4051d33af1fso16243905e9.0 for ; Sun, 24 Sep 2023 12:50:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695585058; x=1696189858; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=fgyKxqKA15nbfaH4vMDu01hflBvGs/eg6IGSdQy6Jmg=; b=YICS9s8cGplPci++Do1NpU+EWsUwFr37i+tcskMiZqQ8CzHTfXjWSABODQKyI9mfqB xxpnqt11FtmcA2Uq5KPE8QxDSJ5qlHtv3nFrtv79DLZWOqqipIcoafFTgpRHvQahA2sy l4+EIOC0z4F7C3fd6rKEuy7fJDLCC1+wXFFXwgL54lXdyHQqz8UfOJjLtmCmIWiKluOQ Z0NnL9fLZMSAdDx3qjCKIamJwDisu2lNt1PnIiPah/SfkRrYX5E6+OGwwryh22bbv4qE Q0EM72Y5cSQmG80Uf+PLuMYLN7gT4mZVaU1v80zqlb1wy6e2JfrFc6q+QsN1GvXAsyMY Z2SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695585058; x=1696189858; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fgyKxqKA15nbfaH4vMDu01hflBvGs/eg6IGSdQy6Jmg=; b=V9JOC9N0xIaNqV8Lg+L3rZFlVBPH1dysZsgvEdIrskalKi3R6H7YGPQhIuC/wxdzSM VnJNdKOzOdaFk409GgVIHPUHSUK6SWVmovbTXm/hhruLM32IdB5DRxffANci5Gnp3cHi rsQhcpgYN+s/yZ2Bjy1BLTx3iZbzWM+1aEvyJp52K6/irtmQiiANF9YeKd3dbSn1G4rN coLM2gMz8dIF1TOwZQdMm+bhbkuTm34RyZ3roiq7CaB3mvRCKFlFeyds8jLCPKCUntWp mS/Nl2oaT7qHfh8cxDOydEwXV4eWiio2CFmq/C6f+I7WB3oGo4UxOwfW8ibVvpXYMKX1 /YUQ== X-Gm-Message-State: AOJu0Yz5rHNsvoxGu73F+ph4/LEreZYL1JBxEnCtzziD431LGb8p8rQB X/cM6xIbh2vFi6yb1b19M0Y= X-Google-Smtp-Source: AGHT+IF4ubKUcoW7XeHwG8rJ5kor+/5lTlxu9UUKJEk1dt+QSmfibbPJjVlYjeYfpDhqKv+ebMkVjA== X-Received: by 2002:a05:600c:3223:b0:3fe:d46a:ef4b with SMTP id r35-20020a05600c322300b003fed46aef4bmr4053775wmp.1.1695585057685; Sun, 24 Sep 2023 12:50:57 -0700 (PDT) Received: from matrix-ESPRIMO-P710 (p579356c7.dip0.t-ipconnect.de. [87.147.86.199]) by smtp.gmail.com with ESMTPSA id s17-20020a1cf211000000b003fe2a40d287sm10339959wmc.1.2023.09.24.12.50.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Sep 2023 12:50:57 -0700 (PDT) Date: Sun, 24 Sep 2023 21:50:55 +0200 From: Philipp Hortmann To: Greg Kroah-Hartman , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] staging: rtl8192e: Remove mutex from rtllib_softmac_free() Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The following commands use the mutex ieee->wx_mutex: cancel_delayed_work_sync(&ieee->associate_retry_wq) cancel_delayed_work_sync(&ieee->associate_procedure_wq) cancel_work_sync(&ieee->wx_sync_scan_wq) Therefore they cannot be canceled with ieee->wx_mutex locked. As the work functions are executed time shifted during normal operation of the driver, proper locking can only be done inside the functions. Signed-off-by: Philipp Hortmann --- Tested with rtl8192e (WLL6130-D99) in Mode n (12.5 MB/s) Transferred this patch over wlan connection of rtl8192e. [ 261.339100] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D [ 261.339102] WARNING: possible circular locking dependency detected [ 261.339103] 6.6.0-rc1+ #15 Tainted: G C OE [ 261.339105] ------------------------------------------------------ [ 261.339106] rmmod/6566 is trying to acquire lock: [ 261.339109] ffff888113ca8800 ((work_completion)(&(&ieee->associate_proce= dure_wq)->work)){+.+.}-{0:0}, at: __flush_work+0x4d/0x490 [ 261.339118] but task is already holding lock: [ 261.339119] ffff888113ca7aa0 (&ieee->wx_mutex){+.+.}-{4:4}, at: rtllib_s= oftmac_free+0x20/0xd0 [rtllib] [ 261.339134] which lock already depends on the new lock. [ 261.339136] the existing dependency chain (in reverse order) is: [ 261.339137] -> #1 (&ieee->wx_mutex){+.+.}-{4:4}: [ 261.339140] __mutex_lock+0x99/0xce0 [ 261.339146] mutex_lock_nested+0x1b/0x30 [ 261.339149] rtllib_associate_procedure_wq+0x5b/0x4b0 [rtllib] [ 261.339159] process_scheduled_works+0x308/0x580 [ 261.339161] worker_thread+0x19b/0x360 [ 261.339163] kthread+0x116/0x150 [ 261.339166] ret_from_fork+0x3c/0x60 [ 261.339170] ret_from_fork_asm+0x1b/0x30 [ 261.339174] -> #0 ((work_completion)(&(&ieee->associate_procedure_wq)->w= ork)){+.+.}-{0:0}: [ 261.339177] __lock_acquire+0x12e0/0x1de0 [ 261.339182] lock_acquire+0xdc/0x2c0 [ 261.339185] __flush_work+0x6d/0x490 [ 261.339187] __cancel_work_timer+0x137/0x1c0 [ 261.339190] cancel_delayed_work_sync+0x13/0x20 [ 261.339192] rtllib_softmac_free+0x5b/0xd0 [rtllib] [ 261.339201] free_rtllib+0x27/0x70 [rtllib] [ 261.339209] _rtl92e_pci_disconnect+0xaf/0x140 [r8192e_pci] [ 261.339217] pci_device_remove+0x39/0xb0 [ 261.339221] device_remove+0x46/0x70 [ 261.339225] device_release_driver_internal+0xb9/0x140 [ 261.339228] driver_detach+0x4d/0xa0 [ 261.339231] bus_remove_driver+0x6e/0xf0 [ 261.339233] driver_unregister+0x31/0x50 [ 261.339236] pci_unregister_driver+0x40/0x90 [ 261.339239] rtl8192_pci_driver_exit+0x10/0x380 [r8192e_pci] [ 261.339247] __do_sys_delete_module.isra.0+0x187/0x2f0 [ 261.339251] __x64_sys_delete_module+0x12/0x20 [ 261.339254] do_syscall_64+0x3b/0x90 [ 261.339257] entry_SYSCALL_64_after_hwframe+0x6e/0xd8 [ 261.339261] other info that might help us debug this: [ 261.339262] Possible unsafe locking scenario: [ 261.339263] CPU0 CPU1 [ 261.339264] ---- ---- [ 261.339265] lock(&ieee->wx_mutex); [ 261.339268] lock((work_completion)(&(&iee= e->associate_procedure_wq)->work)); [ 261.339270] lock(&ieee->wx_mutex); [ 261.339272] lock((work_completion)(&(&ieee->associate_procedure_wq)->w= ork)); [ 261.339274] *** DEADLOCK *** [ 261.339275] 2 locks held by rmmod/6566: [ 261.339277] #0: ffff8881015d51b0 (&dev->mutex){....}-{4:4}, at: __devic= e_driver_lock+0x2d/0x50 [ 261.339283] #1: ffff888113ca7aa0 (&ieee->wx_mutex){+.+.}-{4:4}, at: rtl= lib_softmac_free+0x20/0xd0 [rtllib] [ 261.339295] stack backtrace: [ 261.339296] CPU: 1 PID: 6566 Comm: rmmod Tainted: G C OE 6.= 6.0-rc1+ #15 [ 261.339299] Hardware name: FUJITSU ESPRIMO P710/D3161-A1, BIOS V4.6.5.3 = R1.16.0 for D3161-A1x 10/29/2012 [ 261.339301] Call Trace: [ 261.339302] [ 261.339304] dump_stack_lvl+0x5c/0xa0 [ 261.339309] dump_stack+0x10/0x20 [ 261.339311] print_circular_bug.isra.0+0x300/0x440 [ 261.339316] check_noncircular+0x136/0x150 [ 261.339319] ? register_lock_class+0x4c/0x460 [ 261.339322] ? __bfs+0x110/0x250 [ 261.339326] __lock_acquire+0x12e0/0x1de0 [ 261.339330] ? hugetlb_init+0x5b2/0x720 [ 261.339335] lock_acquire+0xdc/0x2c0 [ 261.339339] ? __flush_work+0x4d/0x490 [ 261.339342] ? __this_cpu_preempt_check+0x13/0x20 [ 261.339345] ? lock_release+0x14f/0x380 [ 261.339349] __flush_work+0x6d/0x490 [ 261.339352] ? __flush_work+0x4d/0x490 [ 261.339354] ? lock_timer_base+0x72/0xa0 [ 261.339357] ? __this_cpu_preempt_check+0x13/0x20 [ 261.339359] ? lock_acquired+0xef/0x3b0 [ 261.339362] ? sched_clock_noinstr+0x9/0x10 [ 261.339367] ? __cancel_work_timer+0x10d/0x1c0 [ 261.339369] ? __this_cpu_preempt_check+0x13/0x20 [ 261.339373] __cancel_work_timer+0x137/0x1c0 [ 261.339377] cancel_delayed_work_sync+0x13/0x20 [ 261.339380] rtllib_softmac_free+0x5b/0xd0 [rtllib] [ 261.339389] free_rtllib+0x27/0x70 [rtllib] [ 261.339397] _rtl92e_pci_disconnect+0xaf/0x140 [r8192e_pci] [ 261.339406] pci_device_remove+0x39/0xb0 [ 261.339410] device_remove+0x46/0x70 [ 261.339413] device_release_driver_internal+0xb9/0x140 [ 261.339417] driver_detach+0x4d/0xa0 [ 261.339420] bus_remove_driver+0x6e/0xf0 [ 261.339424] driver_unregister+0x31/0x50 [ 261.339427] pci_unregister_driver+0x40/0x90 [ 261.339431] rtl8192_pci_driver_exit+0x10/0x380 [r8192e_pci] [ 261.339439] __do_sys_delete_module.isra.0+0x187/0x2f0 [ 261.339442] ? syscall_enter_from_user_mode+0x21/0x60 [ 261.339446] ? lockdep_hardirqs_on+0x86/0x110 [ 261.339450] __x64_sys_delete_module+0x12/0x20 [ 261.339454] do_syscall_64+0x3b/0x90 [ 261.339457] entry_SYSCALL_64_after_hwframe+0x6e/0xd8 [ 261.339461] RIP: 0033:0x7f3b2132da6b [ 261.339464] Code: 73 01 c3 48 8b 0d 25 c4 0c 00 f7 d8 64 89 01 48 83 c8 = ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa b8 b0 00 00 00 0f 05 <48= > 3d 01 f0 ff ff 73 01 c3 48 8b 0d f5 c3 0c 00 f7 d8 64 89 01 48 [ 261.339466] RSP: 002b:00007ffea140e858 EFLAGS: 00000206 ORIG_RAX: 000000= 00000000b0 [ 261.339469] RAX: ffffffffffffffda RBX: 00005637c0086770 RCX: 00007f3b213= 2da6b [ 261.339471] RDX: 000000000000000a RSI: 0000000000000800 RDI: 00005637c00= 867d8 [ 261.339473] RBP: 00007ffea140e8b8 R08: 0000000000000000 R09: 00000000000= 00000 [ 261.339474] R10: 00007f3b213a9ac0 R11: 0000000000000206 R12: 00007ffea14= 0ea90 [ 261.339476] R13: 00007ffea140f7c0 R14: 00005637c00862a0 R15: 00005637c00= 86770 [ 261.339480] --- drivers/staging/rtl8192e/rtllib_softmac.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rt= l8192e/rtllib_softmac.c index d3468b646ca8..c874468d075c 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c @@ -2461,7 +2461,6 @@ int rtllib_softmac_init(struct rtllib_device *ieee) =20 void rtllib_softmac_free(struct rtllib_device *ieee) { - mutex_lock(&ieee->wx_mutex); del_timer_sync(&ieee->associate_timer); =20 cancel_delayed_work_sync(&ieee->associate_retry_wq); @@ -2477,7 +2476,6 @@ void rtllib_softmac_free(struct rtllib_device *ieee) =20 kfree(ieee->dot11d_info); ieee->dot11d_info =3D NULL; - mutex_unlock(&ieee->wx_mutex); } =20 static inline struct sk_buff * --=20 2.42.0 From nobody Fri Feb 13 12:35:20 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87B6ECE7A8A for ; Sun, 24 Sep 2023 19:51:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231571AbjIXTvZ (ORCPT ); Sun, 24 Sep 2023 15:51:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52912 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231486AbjIXTvP (ORCPT ); Sun, 24 Sep 2023 15:51:15 -0400 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2F371B4 for ; Sun, 24 Sep 2023 12:51:05 -0700 (PDT) Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4056ce55e6fso6045425e9.1 for ; Sun, 24 Sep 2023 12:51:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695585064; x=1696189864; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=MuoEl24Ovx/D9LBO4Mnd3G/eYK2lcTJZM4N+OjhdEbs=; b=eOsQYaNgJyH6y+6Orc/0437So4eZ+kqDqIw8G144zexiIs6WVISQKP+LMSzQDRg5rr Tfvwt+ZhBA03LALYIv5sEQsJdsW0Rgeh54mJBLEe0Iza7lvEdxrRU6eCgk9S4kCqtHEJ OZpdkOJrioAAAyfrTeJODo0DxvGBklw1VImlIC4Y4Ck0cMBGvUzjgKEmmy2ZkL/I4HPG ArqD3TegPy3pUYGFPB4Qmc7q09MCOAbi610/hPGwzAAgDBXHRR82bLJnx4Vui1leKQa7 JwaaPUtpyKacMHadk1Pyz4SucIxs/7LVR7C/eEYHLe1/QnlpkvNvH40pfOnIYnUkZeNv 5FJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695585064; x=1696189864; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=MuoEl24Ovx/D9LBO4Mnd3G/eYK2lcTJZM4N+OjhdEbs=; b=HnZjhPEY1GQb26rHUkXyv8e21ILvUS+pirnGtCgzhR0s10d6+JFL2xIBnXzabu4JoN LBp/PUsl580fVqpj3ALmmuPcr6oQZW9QQiqtfvIT8nWSafUW9uDct2vtIga21zgOu2fw 8YPNlZsRtwWVL0FMxfuhHw98UiHMkT4kKHfCletB/bnv5eHUt4u0GDFVSPYHtsAbSQpa 3F2hUZITuE958gzbMic7Jj6YrV/O9ZXitGC5X/L0LXoBwOwR8zDYtOaa7ZPJD//lx4ZF nNQQCaLOrxDxLtzU3fw/oFjUFTlcgOwFylrHby3ndpVF8fpgV+xJYkDHcbq03Z3JlQnk rnsA== X-Gm-Message-State: AOJu0Yz/8jYIa/uezBm3Xv9qdoLpJRvnpeWJhiw63Wb1qGVIjHHpy9Jy CLA+oizysAom6aZTM9cSTq8= X-Google-Smtp-Source: AGHT+IF1E7ErfqL9YGtl4LgTBaLYsAWhhedR+2y9IEVUvgBe6nn5ZYsDVwx3Mt+o2CxXRyM7aabrFA== X-Received: by 2002:a7b:c456:0:b0:404:72f9:d59a with SMTP id l22-20020a7bc456000000b0040472f9d59amr4358161wmi.0.1695585063719; Sun, 24 Sep 2023 12:51:03 -0700 (PDT) Received: from matrix-ESPRIMO-P710 (p579356c7.dip0.t-ipconnect.de. [87.147.86.199]) by smtp.gmail.com with ESMTPSA id y23-20020a05600c365700b004052093a8f6sm10326495wmq.25.2023.09.24.12.51.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Sep 2023 12:51:03 -0700 (PDT) Date: Sun, 24 Sep 2023 21:51:02 +0200 From: Philipp Hortmann To: Greg Kroah-Hartman , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] staging: rtl8192e: Unlock mutex for one line in rtllib_stop_protocol() Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The following command uses the mutex ieee->wx_mutex: cancel_delayed_work_sync(&ieee->associate_retry_wq) Therefore it cannot be canceled with ieee->wx_mutex locked. rtllib_stop_protocol() is always called with ieee->wx_mutex locked so according line can be unlocked. Signed-off-by: Philipp Hortmann --- [ 848.458088] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D [ 848.458089] WARNING: possible circular locking dependency detected [ 848.458091] 6.6.0-rc1+ #15 Tainted: G C OE [ 848.458102] ------------------------------------------------------ [ 848.458103] kworker/0:9/346 is trying to acquire lock: [ 848.458104] ffff88817dc37aa0 (&ieee->wx_mutex){+.+.}-{4:4}, at: rtllib_a= ssociate_retry_wq+0x2d/0xb0 [rtllib] [ 848.458121] but task is already holding lock: [ 848.458122] ffffc900017cfe38 ((work_completion)(&(&ieee->associate_retry= _wq)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x27f/0x580 [ 848.458129] which lock already depends on the new lock. [ 848.458130] the existing dependency chain (in reverse order) is: [ 848.458131] -> #1 ((work_completion)(&(&ieee->associate_retry_wq)->work)= ){+.+.}-{0:0}: [ 848.458134] __flush_work+0x6d/0x490 [ 848.458137] __cancel_work_timer+0x137/0x1c0 [ 848.458140] cancel_delayed_work_sync+0x13/0x20 [ 848.458142] rtllib_stop_protocol.part.0+0x49/0x120 [rtllib] [ 848.458151] rtllib_stop_protocol+0x1c/0x30 [rtllib] [ 848.458159] rtllib_wx_set_essid+0x12a/0x150 [rtllib] [ 848.458167] _rtl92e_wx_set_essid+0x4e/0xa0 [r8192e_pci] [ 848.458176] ioctl_standard_iw_point+0x2e6/0x390 [ 848.458180] ioctl_standard_call+0xaa/0xe0 [ 848.458183] wireless_process_ioctl+0x149/0x170 [ 848.458185] wext_handle_ioctl+0x9e/0x100 [ 848.458188] sock_ioctl+0x203/0x340 [ 848.458192] __x64_sys_ioctl+0x98/0xd0 [ 848.458195] do_syscall_64+0x3b/0x90 [ 848.458198] entry_SYSCALL_64_after_hwframe+0x6e/0xd8 [ 848.458202] -> #0 (&ieee->wx_mutex){+.+.}-{4:4}: [ 848.458206] __lock_acquire+0x12e0/0x1de0 [ 848.458209] lock_acquire+0xdc/0x2c0 [ 848.458212] __mutex_lock+0x99/0xce0 [ 848.458216] mutex_lock_nested+0x1b/0x30 [ 848.458219] rtllib_associate_retry_wq+0x2d/0xb0 [rtllib] [ 848.458227] process_scheduled_works+0x308/0x580 [ 848.458229] worker_thread+0x19b/0x360 [ 848.458231] kthread+0x116/0x150 [ 848.458234] ret_from_fork+0x3c/0x60 [ 848.458237] ret_from_fork_asm+0x1b/0x30 [ 848.458242] other info that might help us debug this: [ 848.458243] Possible unsafe locking scenario: [ 848.458244] CPU0 CPU1 [ 848.458245] ---- ---- [ 848.458246] lock((work_completion)(&(&ieee->associate_retry_wq)->work)= ); [ 848.458248] lock(&ieee->wx_mutex); [ 848.458250] lock((work_completion)(&(&iee= e->associate_retry_wq)->work)); [ 848.458252] lock(&ieee->wx_mutex); [ 848.458254] *** DEADLOCK *** [ 848.458255] 2 locks held by kworker/0:9/346: [ 848.458257] #0: ffff88810004f148 ((wq_completion)events){+.+.}-{0:0}, a= t: process_scheduled_works+0x27f/0x580 [ 848.458262] #1: ffffc900017cfe38 ((work_completion)(&(&ieee->associate_= retry_wq)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x27f/0x580 [ 848.458266] stack backtrace: [ 848.458268] CPU: 0 PID: 346 Comm: kworker/0:9 Tainted: G C OE = 6.6.0-rc1+ #15 [ 848.458270] Hardware name: FUJITSU ESPRIMO P710/D3161-A1, BIOS V4.6.5.3 = R1.16.0 for D3161-A1x 10/29/2012 [ 848.458272] Workqueue: events rtllib_associate_retry_wq [rtllib] [ 848.458281] Call Trace: [ 848.458283] [ 848.458285] dump_stack_lvl+0x5c/0xa0 [ 848.458288] dump_stack+0x10/0x20 [ 848.458291] print_circular_bug.isra.0+0x300/0x440 [ 848.458295] check_noncircular+0x136/0x150 [ 848.458298] ? ret_from_fork_asm+0x1b/0x30 [ 848.458302] ? __kernel_text_address+0x12/0x40 [ 848.458305] __lock_acquire+0x12e0/0x1de0 [ 848.458311] lock_acquire+0xdc/0x2c0 [ 848.458314] ? rtllib_associate_retry_wq+0x2d/0xb0 [rtllib] [ 848.458324] __mutex_lock+0x99/0xce0 [ 848.458327] ? rtllib_associate_retry_wq+0x2d/0xb0 [rtllib] [ 848.458336] ? rtllib_associate_retry_wq+0x2d/0xb0 [rtllib] [ 848.458344] ? __this_cpu_preempt_check+0x13/0x20 [ 848.458348] mutex_lock_nested+0x1b/0x30 [ 848.458351] ? mutex_lock_nested+0x1b/0x30 [ 848.458354] rtllib_associate_retry_wq+0x2d/0xb0 [rtllib] [ 848.458363] process_scheduled_works+0x308/0x580 [ 848.458368] ? __pfx_worker_thread+0x10/0x10 [ 848.458370] worker_thread+0x19b/0x360 [ 848.458373] ? __pfx_worker_thread+0x10/0x10 [ 848.458375] kthread+0x116/0x150 [ 848.458378] ? __pfx_kthread+0x10/0x10 [ 848.458381] ret_from_fork+0x3c/0x60 [ 848.458384] ? __pfx_kthread+0x10/0x10 [ 848.458387] ret_from_fork_asm+0x1b/0x30 [ 848.458392] --- drivers/staging/rtl8192e/rtllib_softmac.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rt= l8192e/rtllib_softmac.c index c874468d075c..72d0225dfdf1 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c @@ -2307,7 +2307,9 @@ void rtllib_stop_protocol(struct rtllib_device *ieee,= u8 shutdown) } =20 del_timer_sync(&ieee->associate_timer); + mutex_unlock(&ieee->wx_mutex); cancel_delayed_work_sync(&ieee->associate_retry_wq); + mutex_lock(&ieee->wx_mutex); cancel_delayed_work_sync(&ieee->link_change_wq); rtllib_stop_scan(ieee); =20 --=20 2.42.0 From nobody Fri Feb 13 12:35:20 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5605DCE7A8A for ; Sun, 24 Sep 2023 19:51:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231409AbjIXTvh (ORCPT ); Sun, 24 Sep 2023 15:51:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231451AbjIXTvY (ORCPT ); Sun, 24 Sep 2023 15:51:24 -0400 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6698192 for ; Sun, 24 Sep 2023 12:51:13 -0700 (PDT) Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-4051d33af1fso16244285e9.0 for ; Sun, 24 Sep 2023 12:51:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695585072; x=1696189872; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=DUJX0MEQvJ9Hzjkm/aaLCTeCHcG6yXlD+39vf+OkQMg=; b=XZTWUGKXo/3zfSO1mzx8QHpAj64crEC2cnHemIhTehSSeh9up+h4lvYv7XODG3KonK mmLeLowos9C6oNDyWy4ztzaxECH5j+c90UlKtSi8zC9bGybqp6307xl7BAjbnu1/gKUh ua/HkWp3RXbM5SA5cfgqCI5JVxgBaHGWwQy833CMBOV7kEd1Ejny/iJ/ABbZmZAcNB50 eY9PeekiGhS/9Hz8T4i5GreJlP7le2neJZx6Da4FwyuGBq9HorZzzqC5wFNj0M0GYOqI M9UslhsRtrp9+1KYyBLudr0Np/UvtQtfIAPE6mL1bN9OOtEeWQL8eGo/4FdFT8Lasc+j DDlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695585072; x=1696189872; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DUJX0MEQvJ9Hzjkm/aaLCTeCHcG6yXlD+39vf+OkQMg=; b=B5fXPtdMNtM+II6cz3zuHT6HIYno/h/7UhRDMCC3jqvd9w9eTRIcUE2+D4+8GVeo0L FIDXtm+zeYjNzZ04w0aX01iix5YkbVfFyoYMqv0LKEKMDvSmjMKrTRkqI59Dkk7DLXqd YtMYkwuUbrFauDtnZ6OZqRIoFwRskn4XVlN04jECh5+LSGOtA/C3eYIbUeZ9ZbM9Qxm/ HiNk5HuxeWnJySYWQgUtegMeBggQkb//plVKX76+reHo3IJqNeCBTxOdzEni+N54rgfA SH8vmRLXRYVnWYVM3Ys3sHXbEYDX93tk2ZgPHgpSaq1qw4HE7UyXINAQ2dEXUCmIf5CA ZPZQ== X-Gm-Message-State: AOJu0Yx/afgeImiRig48oJsWkNHRH2WLK2O4x/o5Vlr/v35hKdqA8gHe 7wJJ88ifqsl8dccY1aoqhNg= X-Google-Smtp-Source: AGHT+IFZXcJOWEv+NQQLucVmAtV1sYd3SNhlPW1VeiZTP67QvFa7U2ebZUmDVZYSOoR4hd9japr05w== X-Received: by 2002:a05:600c:4a12:b0:404:75cc:62e6 with SMTP id c18-20020a05600c4a1200b0040475cc62e6mr4036096wmp.3.1695585071781; Sun, 24 Sep 2023 12:51:11 -0700 (PDT) Received: from matrix-ESPRIMO-P710 (p579356c7.dip0.t-ipconnect.de. [87.147.86.199]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c308a00b003fee8793911sm6984929wmn.44.2023.09.24.12.51.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Sep 2023 12:51:11 -0700 (PDT) Date: Sun, 24 Sep 2023 21:51:10 +0200 From: Philipp Hortmann To: Greg Kroah-Hartman , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] staging: rtl8192e: Resolve circular locking with rx_pkt_pending_timer Message-ID: <08ff2088b0264bef60142ca35f7198dd8afa963c.1695582999.git.philipp.g.hortmann@gmail.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Resolve circular locking from reorder_spinlock with rx_pkt_pending_timer. Signed-off-by: Philipp Hortmann --- [ 4743.466837] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D [ 4743.466838] WARNING: possible circular locking dependency detected [ 4743.466840] 6.6.0-rc1+ #15 Tainted: G C OE [ 4743.466842] ------------------------------------------------------ [ 4743.466843] Renderer/12378 is trying to acquire lock: [ 4743.466845] ffff8882142f34d0 ((&rxts->rx_pkt_pending_timer)){+.-.}-{0:0}= , at: __timer_delete_sync+0x31/0xc0 [ 4743.466857] but task is already holding lock: [ 4743.466858] ffff8882142f0d48 (&ieee->reorder_spinlock){..-.}-{3:3}, at: = rtllib_rx+0x1885/0x2280 [rtllib] [ 4743.466873] which lock already depends on the new lock. [ 4743.466875] the existing dependency chain (in reverse order) is: [ 4743.466876] -> #1 (&ieee->reorder_spinlock){..-.}-{3:3}: [ 4743.466880] _raw_spin_lock_irqsave+0x53/0xa0 [ 4743.466884] RxPktPendingTimeout+0x4b/0x220 [rtllib] [ 4743.466894] call_timer_fn+0xab/0x230 [ 4743.466897] run_timer_softirq+0x4b2/0x570 [ 4743.466900] __do_softirq+0xca/0x3b7 [ 4743.466903] irq_exit_rcu+0xa0/0xe0 [ 4743.466907] sysvec_apic_timer_interrupt+0xb0/0xd0 [ 4743.466910] asm_sysvec_apic_timer_interrupt+0x1b/0x20 [ 4743.466913] cpuidle_enter_state+0xfa/0x500 [ 4743.466916] cpuidle_enter+0x2e/0x50 [ 4743.466919] call_cpuidle+0x23/0x50 [ 4743.466922] do_idle+0x21c/0x280 [ 4743.466924] cpu_startup_entry+0x20/0x30 [ 4743.466926] start_secondary+0x11a/0x140 [ 4743.466929] secondary_startup_64_no_verify+0x17d/0x18b [ 4743.466933] -> #0 ((&rxts->rx_pkt_pending_timer)){+.-.}-{0:0}: [ 4743.466936] __lock_acquire+0x12e0/0x1de0 [ 4743.466941] lock_acquire+0xdc/0x2c0 [ 4743.466944] __timer_delete_sync+0x52/0xc0 [ 4743.466947] timer_delete_sync+0x10/0x20 [ 4743.466949] rtllib_rx+0x1ab2/0x2280 [rtllib] [ 4743.466958] _rtl92e_irq_rx_tasklet+0x2d5/0x410 [r8192e_pci] [ 4743.466967] tasklet_action_common.isra.0+0x10a/0x290 [ 4743.466970] tasklet_action+0x2d/0x40 [ 4743.466973] __do_softirq+0xca/0x3b7 [ 4743.466976] irq_exit_rcu+0xa0/0xe0 [ 4743.466979] common_interrupt+0xc6/0xe0 [ 4743.466982] asm_common_interrupt+0x27/0x40 [ 4743.466984] preempt_count_add+0x13/0xc0 [ 4743.466988] ww_mutex_lock_interruptible+0x3c/0x110 [ 4743.466992] i915_gem_madvise_ioctl+0xe9/0x480 [i915] [ 4743.467126] drm_ioctl_kernel+0xc0/0x150 [drm] [ 4743.467178] drm_ioctl+0x2a9/0x510 [drm] [ 4743.467216] __x64_sys_ioctl+0x98/0xd0 [ 4743.467220] do_syscall_64+0x3b/0x90 [ 4743.467223] entry_SYSCALL_64_after_hwframe+0x6e/0xd8 [ 4743.467228] other info that might help us debug this: [ 4743.467229] Possible unsafe locking scenario: [ 4743.467230] CPU0 CPU1 [ 4743.467231] ---- ---- [ 4743.467233] lock(&ieee->reorder_spinlock); [ 4743.467235] lock((&rxts->rx_pkt_pending_t= imer)); [ 4743.467237] lock(&ieee->reorder_spinlock); [ 4743.467240] lock((&rxts->rx_pkt_pending_timer)); [ 4743.467242] *** DEADLOCK *** [ 4743.467243] 1 lock held by Renderer/12378: [ 4743.467245] #0: ffff8882142f0d48 (&ieee->reorder_spinlock){..-.}-{3:3},= at: rtllib_rx+0x1885/0x2280 [rtllib] [ 4743.467258] stack backtrace: [ 4743.467259] CPU: 2 PID: 12378 Comm: Renderer Tainted: G C OE = 6.6.0-rc1+ #15 [ 4743.467262] Hardware name: FUJITSU ESPRIMO P710/D3161-A1, BIOS V4.6.5.3 = R1.16.0 for D3161-A1x 10/29/2012 [ 4743.467264] Call Trace: [ 4743.467266] [ 4743.467268] dump_stack_lvl+0x5c/0xa0 [ 4743.467272] dump_stack+0x10/0x20 [ 4743.467275] print_circular_bug.isra.0+0x300/0x440 [ 4743.467280] check_noncircular+0x136/0x150 [ 4743.467284] ? __lock_acquire+0x654/0x1de0 [ 4743.467289] __lock_acquire+0x12e0/0x1de0 [ 4743.467295] lock_acquire+0xdc/0x2c0 [ 4743.467298] ? __timer_delete_sync+0x31/0xc0 [ 4743.467303] ? rtllib_rx+0x1885/0x2280 [rtllib] [ 4743.467311] ? __this_cpu_preempt_check+0x13/0x20 [ 4743.467314] ? lock_acquired+0xef/0x3b0 [ 4743.467318] __timer_delete_sync+0x52/0xc0 [ 4743.467321] ? __timer_delete_sync+0x31/0xc0 [ 4743.467324] timer_delete_sync+0x10/0x20 [ 4743.467327] rtllib_rx+0x1ab2/0x2280 [rtllib] [ 4743.467335] ? kmalloc_reserve+0x69/0x100 [ 4743.467342] _rtl92e_irq_rx_tasklet+0x2d5/0x410 [r8192e_pci] [ 4743.467351] ? lockdep_hardirqs_on+0x86/0x110 [ 4743.467357] tasklet_action_common.isra.0+0x10a/0x290 [ 4743.467361] tasklet_action+0x2d/0x40 [ 4743.467364] __do_softirq+0xca/0x3b7 [ 4743.467369] irq_exit_rcu+0xa0/0xe0 [ 4743.467372] common_interrupt+0xc6/0xe0 [ 4743.467375] [ 4743.467376] [ 4743.467378] asm_common_interrupt+0x27/0x40 [ 4743.467380] RIP: 0010:preempt_count_add+0x13/0xc0 [ 4743.467384] Code: 9d ec 00 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 = 90 90 90 90 90 0f 1f 44 00 00 55 8b 15 2c 58 ed 02 65 01 3d b5 de 2d 74 <48= > 89 e5 53 89 fb 85 d2 75 11 65 8b 05 a4 de 2d 74 0f b6 c0 3d f4 [ 4743.467386] RSP: 0018:ffffc9000d293c80 EFLAGS: 00000282 [ 4743.467389] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff8881175= 20000 [ 4743.467391] RDX: 0000000000000000 RSI: ffffffff8d51376a RDI: 00000000000= 00001 [ 4743.467392] RBP: ffffc9000d293d40 R08: 000004506ca6e7cf R09: ffff88805bf= cbd98 [ 4743.467394] R10: ffffc9000d293d58 R11: ffff8880336b80d8 R12: ffff88801ec= 7d640 [ 4743.467395] R13: ffff8880336b8000 R14: ffff888104828000 R15: 00000000000= 00000 [ 4743.467401] ? __ww_mutex_lock.constprop.0+0xa1/0x13e0 [ 4743.467405] ? __this_cpu_preempt_check+0x13/0x20 [ 4743.467407] ? lock_is_held_type+0xf3/0x150 [ 4743.467411] ? i915_gem_madvise_ioctl+0xe9/0x480 [i915] [ 4743.467529] ww_mutex_lock_interruptible+0x3c/0x110 [ 4743.467533] ? ww_mutex_lock_interruptible+0x3c/0x110 [ 4743.467537] i915_gem_madvise_ioctl+0xe9/0x480 [i915] [ 4743.467649] ? __pfx_i915_gem_madvise_ioctl+0x10/0x10 [i915] [ 4743.467760] drm_ioctl_kernel+0xc0/0x150 [drm] [ 4743.467805] ? __might_fault+0x7b/0x90 [ 4743.467809] drm_ioctl+0x2a9/0x510 [drm] [ 4743.467846] ? __pfx_i915_gem_madvise_ioctl+0x10/0x10 [i915] [ 4743.467962] ? __fget_files+0xce/0x190 [ 4743.467968] __x64_sys_ioctl+0x98/0xd0 [ 4743.467984] do_syscall_64+0x3b/0x90 [ 4743.467987] entry_SYSCALL_64_after_hwframe+0x6e/0xd8 [ 4743.467992] RIP: 0033:0x7f01d2dcf3ab [ 4743.467994] Code: 0f 1e fa 48 8b 05 e5 7a 0d 00 64 c7 00 26 00 00 00 48 = c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48= > 3d 01 f0 ff ff 73 01 c3 48 8b 0d b5 7a 0d 00 f7 d8 64 89 01 48 [ 4743.467997] RSP: 002b:00007f01badfce58 EFLAGS: 00000246 ORIG_RAX: 000000= 0000000010 [ 4743.467999] RAX: ffffffffffffffda RBX: 00007f01badfcec4 RCX: 00007f01d2d= cf3ab [ 4743.468001] RDX: 00007f01badfcec4 RSI: 00000000c00c6466 RDI: 00000000000= 00024 [ 4743.468002] RBP: 00000000c00c6466 R08: 00007f01bb1fd048 R09: 00000000000= 00103 [ 4743.468004] R10: 00007ffd919ca080 R11: 0000000000000246 R12: 00007f01744= a5e20 [ 4743.468006] R13: 0000000000000024 R14: 00007f01744a5e98 R15: 00007f01bb1= fd000 [ 4743.468010] --- drivers/staging/rtl8192e/rtllib_rx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/staging/rtl8192e/rtllib_rx.c b/drivers/staging/rtl8192= e/rtllib_rx.c index 456dd05e291d..a7b6f837024d 100644 --- a/drivers/staging/rtl8192e/rtllib_rx.c +++ b/drivers/staging/rtl8192e/rtllib_rx.c @@ -693,8 +693,10 @@ static void RxReorderIndicatePacket(struct rtllib_devi= ce *ieee, * Rx buffering. */ if (index > 0) { + spin_unlock_irqrestore(&ieee->reorder_spinlock, flags); if (timer_pending(&ts->rx_pkt_pending_timer)) del_timer_sync(&ts->rx_pkt_pending_timer); + spin_lock_irqsave(&ieee->reorder_spinlock, flags); ts->rx_timeout_indicate_seq =3D 0xffff; =20 if (index > REORDER_WIN_SIZE) { @@ -712,8 +714,10 @@ static void RxReorderIndicatePacket(struct rtllib_devi= ce *ieee, if (bPktInBuf && ts->rx_timeout_indicate_seq =3D=3D 0xffff) { netdev_dbg(ieee->dev, "%s(): SET rx timeout timer\n", __func__); ts->rx_timeout_indicate_seq =3D ts->rx_indicate_seq; + spin_unlock_irqrestore(&ieee->reorder_spinlock, flags); mod_timer(&ts->rx_pkt_pending_timer, jiffies + msecs_to_jiffies(ht_info->rx_reorder_pending_time)); + spin_lock_irqsave(&ieee->reorder_spinlock, flags); } spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); } --=20 2.42.0