]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Bluetooth: hci_sync: Avoid adding default advertising on startup
authorYang Li <yang.li@amlogic.com>
Mon, 28 Jul 2025 09:08:44 +0000 (17:08 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Sep 2025 16:54:12 +0000 (18:54 +0200)
[ Upstream commit de5d7d3f27ddd4046736f558a40e252ddda82013 ]

list_empty(&hdev->adv_instances) is always true during startup,
so an advertising instance is added by default.

Call trace:
  dump_backtrace+0x94/0xec
  show_stack+0x18/0x24
  dump_stack_lvl+0x48/0x60
  dump_stack+0x18/0x24
  hci_setup_ext_adv_instance_sync+0x17c/0x328
  hci_powered_update_adv_sync+0xb4/0x12c
  hci_powered_update_sync+0x54/0x70
  hci_power_on_sync+0xe4/0x278
  hci_set_powered_sync+0x28/0x34
  set_powered_sync+0x40/0x58
  hci_cmd_sync_work+0x94/0x100
  process_one_work+0x168/0x444
  worker_thread+0x378/0x3f4
  kthread+0x108/0x10c
  ret_from_fork+0x10/0x20

Link: https://github.com/bluez/bluez/issues/1442
Signed-off-by: Yang Li <yang.li@amlogic.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/bluetooth/hci_sync.c

index 965b0f2b43a722dd3a026a166170bf64c462f86a..a2c3b58db54c2cbe90bd6e49ad6f2bed08440f2d 100644 (file)
@@ -3287,7 +3287,7 @@ static int hci_powered_update_adv_sync(struct hci_dev *hdev)
         * advertising data. This also applies to the case
         * where BR/EDR was toggled during the AUTO_OFF phase.
         */
-       if (hci_dev_test_flag(hdev, HCI_ADVERTISING) ||
+       if (hci_dev_test_flag(hdev, HCI_ADVERTISING) &&
            list_empty(&hdev->adv_instances)) {
                if (ext_adv_capable(hdev)) {
                        err = hci_setup_ext_adv_instance_sync(hdev, 0x00);