Commit 8023dd22 authored by Neeraj Sanjay Kale's avatar Neeraj Sanjay Kale Committed by Luiz Augusto von Dentz
Browse files

Bluetooth: btnxpuart: Fix driver sending truncated data



This fixes the apparent controller hang issue seen during stress test
where the host sends a truncated payload, followed by HCI commands. The
controller treats these HCI commands as a part of previously truncated
payload, leading to command timeouts.

Adding a serdev_device_wait_until_sent() call after
serdev_device_write_buf() fixed the issue.

Fixes: 689ca16e ("Bluetooth: NXP: Add protocol support for NXP Bluetooth chipsets")
Signed-off-by: default avatarNeeraj Sanjay Kale <neeraj.sanjaykale@nxp.com>
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
parent a182d9c8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1381,6 +1381,7 @@ static void btnxpuart_tx_work(struct work_struct *work)

	while ((skb = nxp_dequeue(nxpdev))) {
		len = serdev_device_write_buf(serdev, skb->data, skb->len);
		serdev_device_wait_until_sent(serdev, 0);
		hdev->stat.byte_tx += len;

		skb_pull(skb, len);