[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240703102633.2821-1-hdanton@sina.com>
Date: Wed, 3 Jul 2024 18:26:33 +0800
From: Hillf Danton <hdanton@...a.com>
To: syzbot <syzbot+91dbdfecdd3287734d8e@...kaller.appspotmail.com>
Cc: linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [bluetooth?] possible deadlock in touch_wq_lockdep_map
On Tue, 02 Jul 2024 18:47:23 -0700
> syzbot has found a reproducer for the following issue on:
>
> HEAD commit: 734610514cb0 Merge tag 'erofs-for-6.10-rc7-fixes' of git:/..
> git tree: upstream
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1424d281980000
#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 734610514cb0
--- x/net/bluetooth/hci_core.c
+++ y/net/bluetooth/hci_core.c
@@ -1075,6 +1075,7 @@ static void hci_power_off(struct work_st
static void hci_error_reset(struct work_struct *work)
{
struct hci_dev *hdev = container_of(work, struct hci_dev, error_reset);
+ bool put;
hci_dev_hold(hdev);
BT_DBG("%s", hdev->name);
@@ -1084,10 +1085,13 @@ static void hci_error_reset(struct work_
else
bt_dev_err(hdev, "hardware error 0x%2.2x", hdev->hw_error_code);
+ put = !test_bit(HCI_UP, &hdev->flags);
+
if (!hci_dev_do_close(hdev))
hci_dev_do_open(hdev);
- hci_dev_put(hdev);
+ if (put)
+ hci_dev_put(hdev);
}
void hci_uuids_clear(struct hci_dev *hdev)
--
Powered by blists - more mailing lists