linux/drivers/bluetooth
Zijun Hu 88e72239ea Bluetooth: qca: Fix BT enable failure again for QCA6390 after warm reboot
Commit 272970be3d ("Bluetooth: hci_qca: Fix driver shutdown on closed
serdev") will cause below regression issue:

BT can't be enabled after below steps:
cold boot -> enable BT -> disable BT -> warm reboot -> BT enable failure
if property enable-gpios is not configured within DT|ACPI for QCA6390.

The commit is to fix a use-after-free issue within qca_serdev_shutdown()
by adding condition to avoid the serdev is flushed or wrote after closed
but also introduces this regression issue regarding above steps since the
VSC is not sent to reset controller during warm reboot.

Fixed by sending the VSC to reset controller within qca_serdev_shutdown()
once BT was ever enabled, and the use-after-free issue is also fixed by
this change since the serdev is still opened before it is flushed or wrote.

Verified by the reported machine Dell XPS 13 9310 laptop over below two
kernel commits:
commit e00fc2700a ("Bluetooth: btusb: Fix triggering coredump
implementation for QCA") of bluetooth-next tree.
commit b23d98d46d ("Bluetooth: btusb: Fix triggering coredump
implementation for QCA") of linus mainline tree.

Fixes: 272970be3d ("Bluetooth: hci_qca: Fix driver shutdown on closed serdev")
Cc: stable@vger.kernel.org
Reported-by: Wren Turkal <wt@penguintechs.org>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218726
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Tested-by: Wren Turkal <wt@penguintechs.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-06-28 14:30:31 -04:00
..
ath3k.c Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl 2024-05-14 10:51:05 -04:00
bcm203x.c Bluetooth: bcm203x: remove superfluous header files 2022-03-18 17:12:09 +01:00
bfusb.c Bluetooth: bfusb: fix division by zero in send path 2021-10-25 15:04:46 +02:00
bluecard_cs.c Bluetooth: Use fallthrough pseudo-keyword 2020-07-10 19:09:42 +02:00
bpa10x.c Bluetooth: bpa10x: change return value 2019-09-04 16:11:46 +02:00
bt3c_cs.c Bluetooth: bt3c_cs: Fix obsolete function 2018-09-27 12:57:39 +02:00
btbcm.c Bluetooth: btbcm: Use devm_kstrdup() 2024-03-06 17:24:06 -05:00
btbcm.h Bluetooth: hci_bcm: Add support for FW loading in autobaud mode 2022-07-21 17:04:38 -07:00
btintel_pcie.c Bluetooth: btintel_pcie: Fix REVERSE_INULL issue reported by coverity 2024-06-28 14:30:25 -04:00
btintel_pcie.h Bluetooth: btintel_pcie: Refactor and code cleanup 2024-05-14 10:58:30 -04:00
btintel.c Bluetooth: btintel: Export few static functions 2024-05-14 10:54:55 -04:00
btintel.h Bluetooth: btintel: Fix compiler warning for multi_v7_defconfig config 2024-05-14 10:56:16 -04:00
btmrvl_debugfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_390.RULE 2022-06-10 14:51:36 +02:00
btmrvl_drv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_390.RULE 2022-06-10 14:51:36 +02:00
btmrvl_main.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
btmrvl_sdio.c Bluetooth: btmrvl_sdio: drop driver owner initialization 2024-04-04 11:09:12 +02:00
btmrvl_sdio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_390.RULE 2022-06-10 14:51:36 +02:00
btmtk.c Bluetooth: btusb: mediatek: Fix double free of skb in coredump 2024-04-24 16:26:16 -04:00
btmtk.h Bluetooth: btmtk: Add MODULE_FIRMWARE() for MT7922 2024-03-06 17:27:11 -05:00
btmtksdio.c Bluetooth: btmtksdio: drop driver owner initialization 2024-04-04 11:09:12 +02:00
btmtkuart.c treewide, serdev: change receive_buf() return type to size_t 2024-01-27 18:13:53 -08:00
btnxpuart.c TTY/Serial driver update for 6.9-rc1 2024-03-21 12:44:10 -07:00
btqca.c Bluetooth: qca: Fix error code in qca_read_fw_build_info() 2024-05-14 10:51:09 -04:00
btqca.h Bluetooth: qca: clean up defines 2024-05-14 10:51:07 -04:00
btqcomsmd.c Bluetooth: btqcomsmd: Convert to platform remove callback returning void 2024-05-14 10:51:03 -04:00
btrsi.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
btrtl.c Bluetooth: Populate hci_set_hw_info for Intel and Realtek 2024-05-14 10:51:05 -04:00
btrtl.h Bluetooth: btrtl: Add Realtek devcoredump support 2023-08-11 11:35:14 -07:00
btsdio.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
btusb.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
dtl1_cs.c networking: add and use skb_put_u8() 2017-06-16 11:48:40 -04:00
h4_recv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
hci_ag6xx.c Bluetooth: hci_uart: Remove redundant assignment to fw_ptr 2021-06-26 07:52:41 +02:00
hci_ath.c Bluetooth: hci_uart: check for missing tty operations 2019-07-31 13:17:33 -07:00
hci_bcm4377.c Bluetooth: hci_bcm4377: Fix msgid release 2024-06-28 14:30:22 -04:00
hci_bcm.c Bluetooth: hci_bcm: Limit bcm43455 baudrate to 2000000 2024-05-14 10:51:05 -04:00
hci_bcsp.c treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
hci_h4.c Bluetooth: hci_h4: Fix padding calculation error within h4_recv_buf() 2021-11-16 13:57:25 +01:00
hci_h5.c Bluetooth: btrtl: fix out of bounds memory access 2024-03-06 17:26:21 -05:00
hci_intel.c Bluetooth: hci_intel: Fix multiple issues reported by checkpatch.pl 2024-05-14 10:51:04 -04:00
hci_ldisc.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
hci_ll.c Bluetooth: hci_ll: drop of_match_ptr for ID table 2023-04-23 21:49:03 -07:00
hci_mrvl.c Bluetooth: hci_mrvl: Add serdev support for 88W8997 2023-04-23 21:45:29 -07:00
hci_nokia.c Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe() 2023-08-11 11:50:41 -07:00
hci_qca.c Bluetooth: qca: Fix BT enable failure again for QCA6390 after warm reboot 2024-06-28 14:30:31 -04:00
hci_serdev.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
hci_uart.h Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
hci_vhci.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
Kconfig Bluetooth: btintel_pcie: Add support for PCIe transport 2024-05-14 10:54:56 -04:00
Makefile Bluetooth: btintel_pcie: Add support for PCIe transport 2024-05-14 10:54:56 -04:00
virtio_bt.c virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00