mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-22 07:53:11 -05:00
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: 689ca16e52
("Bluetooth: NXP: Add protocol support for NXP Bluetooth chipsets")
Signed-off-by: Neeraj Sanjay Kale <neeraj.sanjaykale@nxp.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
a182d9c84f
commit
8023dd2204
1 changed files with 1 additions and 0 deletions
|
@ -1381,6 +1381,7 @@ static void btnxpuart_tx_work(struct work_struct *work)
|
||||||
|
|
||||||
while ((skb = nxp_dequeue(nxpdev))) {
|
while ((skb = nxp_dequeue(nxpdev))) {
|
||||||
len = serdev_device_write_buf(serdev, skb->data, skb->len);
|
len = serdev_device_write_buf(serdev, skb->data, skb->len);
|
||||||
|
serdev_device_wait_until_sent(serdev, 0);
|
||||||
hdev->stat.byte_tx += len;
|
hdev->stat.byte_tx += len;
|
||||||
|
|
||||||
skb_pull(skb, len);
|
skb_pull(skb, len);
|
||||||
|
|
Loading…
Reference in a new issue