[PATCH v1] Bluetooth: btmtk: adjust the position to init iso data anchor
Chris Lu
chris.lu at mediatek.com
Wed Oct 23 04:36:26 PDT 2024
MediaTek iso data anchor init should be move to where MediaTek
claims iso data interface.
If there is an unexpected usb disconnect during setup flow,
it will cause a NULL pointer crash issue when releasing iso
anchor since the anchor wan't been init yet. Adjust the position
to do iso data anchor init.
Signed-off-by: Chris Lu <chris.lu at mediatek.com>
---
drivers/bluetooth/btmtk.c | 1 -
drivers/bluetooth/btusb.c | 2 ++
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c
index b7fc14aafc74..8a3f7c3fcfec 100644
--- a/drivers/bluetooth/btmtk.c
+++ b/drivers/bluetooth/btmtk.c
@@ -1215,7 +1215,6 @@ static int btmtk_usb_isointf_init(struct hci_dev *hdev)
struct sk_buff *skb;
int err;
- init_usb_anchor(&btmtk_data->isopkt_anchor);
spin_lock_init(&btmtk_data->isorxlock);
__set_mtk_intr_interface(hdev);
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 9970470c9d15..15c0885c37cd 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -2628,6 +2628,8 @@ static void btusb_mtk_claim_iso_intf(struct btusb_data *data)
struct btmtk_data *btmtk_data = hci_get_priv(data->hdev);
int err;
+ init_usb_anchor(&btmtk_data->isopkt_anchor);
+
err = usb_driver_claim_interface(&btusb_driver,
btmtk_data->isopkt_intf, data);
if (err < 0) {
--
2.18.0
More information about the Linux-mediatek
mailing list