netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [syzbot] [bluetooth?] WARNING: bad unlock balance in l2cap_recv_frame
@ 2023-04-15 11:54 syzbot
  2023-04-17  2:27 ` [PATCH] Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp Min Li
  2023-04-17  5:34 ` [syzbot] [bluetooth?] WARNING: bad unlock balance in l2cap_recv_frame Dmitry Vyukov
  0 siblings, 2 replies; 4+ messages in thread
From: syzbot @ 2023-04-15 11:54 UTC (permalink / raw)
  To: davem, edumazet, johan.hedberg, kuba, linux-bluetooth,
	linux-kernel, luiz.dentz, marcel, netdev, pabeni, syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    95abc817ab3a Merge tag 'acpi-6.3-rc7' of git://git.kernel...
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13c85123c80000
kernel config:  https://syzkaller.appspot.com/x/.config?x=c21559e740385326
dashboard link: https://syzkaller.appspot.com/bug?extid=9519d6b5b79cf7787cf3
compiler:       gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/87e400f90ed9/disk-95abc817.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/cf7aa6546e50/vmlinux-95abc817.xz
kernel image: https://storage.googleapis.com/syzbot-assets/a44d83ac79a7/bzImage-95abc817.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+9519d6b5b79cf7787cf3@syzkaller.appspotmail.com

=====================================
WARNING: bad unlock balance detected!
6.3.0-rc6-syzkaller-00168-g95abc817ab3a #0 Not tainted
-------------------------------------
kworker/u5:7/5124 is trying to release lock (&conn->chan_lock) at:
[<ffffffff89148e14>] l2cap_disconnect_rsp net/bluetooth/l2cap_core.c:4697 [inline]
[<ffffffff89148e14>] l2cap_le_sig_cmd net/bluetooth/l2cap_core.c:6426 [inline]
[<ffffffff89148e14>] l2cap_le_sig_channel net/bluetooth/l2cap_core.c:6464 [inline]
[<ffffffff89148e14>] l2cap_recv_frame+0x85a4/0x9390 net/bluetooth/l2cap_core.c:7796
but there are no more locks to release!

other info that might help us debug this:
2 locks held by kworker/u5:7/5124:
 #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
 #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline]
 #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:639 [inline]
 #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:666 [inline]
 #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: process_one_work+0x87a/0x15c0 kernel/workqueue.c:2361
 #1: ffffc9000468fda8 ((work_completion)(&hdev->rx_work)){+.+.}-{0:0}, at: process_one_work+0x8ae/0x15c0 kernel/workqueue.c:2365

stack backtrace:
CPU: 1 PID: 5124 Comm: kworker/u5:7 Not tainted 6.3.0-rc6-syzkaller-00168-g95abc817ab3a #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/30/2023
Workqueue: hci1 hci_rx_work
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xd9/0x150 lib/dump_stack.c:106
 __lock_release kernel/locking/lockdep.c:5346 [inline]
 lock_release+0x4f1/0x670 kernel/locking/lockdep.c:5689
 __mutex_unlock_slowpath+0x99/0x5e0 kernel/locking/mutex.c:907
 l2cap_disconnect_rsp net/bluetooth/l2cap_core.c:4697 [inline]
 l2cap_le_sig_cmd net/bluetooth/l2cap_core.c:6426 [inline]
 l2cap_le_sig_channel net/bluetooth/l2cap_core.c:6464 [inline]
 l2cap_recv_frame+0x85a4/0x9390 net/bluetooth/l2cap_core.c:7796
 l2cap_recv_acldata+0xa80/0xbf0 net/bluetooth/l2cap_core.c:8504
 hci_acldata_packet net/bluetooth/hci_core.c:3828 [inline]
 hci_rx_work+0x709/0x1340 net/bluetooth/hci_core.c:4063
 process_one_work+0x991/0x15c0 kernel/workqueue.c:2390
 worker_thread+0x669/0x1090 kernel/workqueue.c:2537
 kthread+0x2e8/0x3a0 kernel/kthread.c:376
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
 </TASK>


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
  2023-04-15 11:54 [syzbot] [bluetooth?] WARNING: bad unlock balance in l2cap_recv_frame syzbot
@ 2023-04-17  2:27 ` Min Li
  2023-04-17 18:30   ` patchwork-bot+bluetooth
  2023-04-17  5:34 ` [syzbot] [bluetooth?] WARNING: bad unlock balance in l2cap_recv_frame Dmitry Vyukov
  1 sibling, 1 reply; 4+ messages in thread
From: Min Li @ 2023-04-17  2:27 UTC (permalink / raw)
  To: syzbot+9519d6b5b79cf7787cf3
  Cc: davem, edumazet, johan.hedberg, kuba, linux-bluetooth,
	linux-kernel, luiz.dentz, marcel, netdev, pabeni, syzkaller-bugs,
	Min Li

conn->chan_lock isn't acquired before l2cap_get_chan_by_scid,
if l2cap_get_chan_by_scid returns NULL, then 'bad unlock balance'
is triggered.

Reported-by: syzbot+9519d6b5b79cf7787cf3@syzkaller.appspotmail.com
Link: https://lore.kernel.org/all/000000000000894f5f05f95e9f4d@google.com/
Signed-off-by: Min Li <lm0963hack@gmail.com>
---
 net/bluetooth/l2cap_core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 55a7226233f9..24d075282996 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -4694,7 +4694,6 @@ static inline int l2cap_disconnect_rsp(struct l2cap_conn *conn,
 
 	chan = l2cap_get_chan_by_scid(conn, scid);
 	if (!chan) {
-		mutex_unlock(&conn->chan_lock);
 		return 0;
 	}
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [syzbot] [bluetooth?] WARNING: bad unlock balance in l2cap_recv_frame
  2023-04-15 11:54 [syzbot] [bluetooth?] WARNING: bad unlock balance in l2cap_recv_frame syzbot
  2023-04-17  2:27 ` [PATCH] Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp Min Li
@ 2023-04-17  5:34 ` Dmitry Vyukov
  1 sibling, 0 replies; 4+ messages in thread
From: Dmitry Vyukov @ 2023-04-17  5:34 UTC (permalink / raw)
  To: syzbot
  Cc: davem, edumazet, johan.hedberg, kuba, linux-bluetooth,
	linux-kernel, luiz.dentz, marcel, netdev, pabeni, syzkaller-bugs

On Sat, 15 Apr 2023 at 13:54, syzbot
<syzbot+9519d6b5b79cf7787cf3@syzkaller.appspotmail.com> wrote:
>
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit:    95abc817ab3a Merge tag 'acpi-6.3-rc7' of git://git.kernel...
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=13c85123c80000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=c21559e740385326
> dashboard link: https://syzkaller.appspot.com/bug?extid=9519d6b5b79cf7787cf3
> compiler:       gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
>
> Unfortunately, I don't have any reproducer for this issue yet.
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/87e400f90ed9/disk-95abc817.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/cf7aa6546e50/vmlinux-95abc817.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/a44d83ac79a7/bzImage-95abc817.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+9519d6b5b79cf7787cf3@syzkaller.appspotmail.com
>
> =====================================
> WARNING: bad unlock balance detected!
> 6.3.0-rc6-syzkaller-00168-g95abc817ab3a #0 Not tainted
> -------------------------------------
> kworker/u5:7/5124 is trying to release lock (&conn->chan_lock) at:
> [<ffffffff89148e14>] l2cap_disconnect_rsp net/bluetooth/l2cap_core.c:4697 [inline]
> [<ffffffff89148e14>] l2cap_le_sig_cmd net/bluetooth/l2cap_core.c:6426 [inline]
> [<ffffffff89148e14>] l2cap_le_sig_channel net/bluetooth/l2cap_core.c:6464 [inline]
> [<ffffffff89148e14>] l2cap_recv_frame+0x85a4/0x9390 net/bluetooth/l2cap_core.c:7796
> but there are no more locks to release!
>
> other info that might help us debug this:
> 2 locks held by kworker/u5:7/5124:
>  #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
>  #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
>  #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline]
>  #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:639 [inline]
>  #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:666 [inline]
>  #0: ffff88801ecca938 ((wq_completion)hci1#2){+.+.}-{0:0}, at: process_one_work+0x87a/0x15c0 kernel/workqueue.c:2361
>  #1: ffffc9000468fda8 ((work_completion)(&hdev->rx_work)){+.+.}-{0:0}, at: process_one_work+0x8ae/0x15c0 kernel/workqueue.c:2365
>
> stack backtrace:
> CPU: 1 PID: 5124 Comm: kworker/u5:7 Not tainted 6.3.0-rc6-syzkaller-00168-g95abc817ab3a #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/30/2023
> Workqueue: hci1 hci_rx_work
> Call Trace:
>  <TASK>
>  __dump_stack lib/dump_stack.c:88 [inline]
>  dump_stack_lvl+0xd9/0x150 lib/dump_stack.c:106
>  __lock_release kernel/locking/lockdep.c:5346 [inline]
>  lock_release+0x4f1/0x670 kernel/locking/lockdep.c:5689
>  __mutex_unlock_slowpath+0x99/0x5e0 kernel/locking/mutex.c:907
>  l2cap_disconnect_rsp net/bluetooth/l2cap_core.c:4697 [inline]
>  l2cap_le_sig_cmd net/bluetooth/l2cap_core.c:6426 [inline]
>  l2cap_le_sig_channel net/bluetooth/l2cap_core.c:6464 [inline]
>  l2cap_recv_frame+0x85a4/0x9390 net/bluetooth/l2cap_core.c:7796
>  l2cap_recv_acldata+0xa80/0xbf0 net/bluetooth/l2cap_core.c:8504
>  hci_acldata_packet net/bluetooth/hci_core.c:3828 [inline]
>  hci_rx_work+0x709/0x1340 net/bluetooth/hci_core.c:4063

/\/\/\/\/\/\/\/\

This is on the receiving path. Can this be triggered remotely?

>  process_one_work+0x991/0x15c0 kernel/workqueue.c:2390
>  worker_thread+0x669/0x1090 kernel/workqueue.c:2537
>  kthread+0x2e8/0x3a0 kernel/kthread.c:376
>  ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
>  </TASK>
>
>
> ---
> This report is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@googlegroups.com.
>
> syzbot will keep track of this issue. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
  2023-04-17  2:27 ` [PATCH] Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp Min Li
@ 2023-04-17 18:30   ` patchwork-bot+bluetooth
  0 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+bluetooth @ 2023-04-17 18:30 UTC (permalink / raw)
  To: Min Li
  Cc: syzbot+9519d6b5b79cf7787cf3, davem, edumazet, johan.hedberg,
	kuba, linux-bluetooth, linux-kernel, luiz.dentz, marcel, netdev,
	pabeni, syzkaller-bugs

Hello:

This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Mon, 17 Apr 2023 10:27:54 +0800 you wrote:
> conn->chan_lock isn't acquired before l2cap_get_chan_by_scid,
> if l2cap_get_chan_by_scid returns NULL, then 'bad unlock balance'
> is triggered.
> 
> Reported-by: syzbot+9519d6b5b79cf7787cf3@syzkaller.appspotmail.com
> Link: https://lore.kernel.org/all/000000000000894f5f05f95e9f4d@google.com/
> Signed-off-by: Min Li <lm0963hack@gmail.com>
> 
> [...]

Here is the summary with links:
  - Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
    https://git.kernel.org/bluetooth/bluetooth-next/c/ed62f7eeea0d

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-04-17 18:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-15 11:54 [syzbot] [bluetooth?] WARNING: bad unlock balance in l2cap_recv_frame syzbot
2023-04-17  2:27 ` [PATCH] Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp Min Li
2023-04-17 18:30   ` patchwork-bot+bluetooth
2023-04-17  5:34 ` [syzbot] [bluetooth?] WARNING: bad unlock balance in l2cap_recv_frame Dmitry Vyukov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).