| From 77f328dbc6cf42f22c691a164958a5452142a542 Mon Sep 17 00:00:00 2001 |
| From: Sean Wang <sean.wang@mediatek.com> |
| Date: Fri, 15 Feb 2019 07:19:35 +0800 |
| Subject: Bluetooth: mediatek: fix up an error path to restore bdev->tx_state |
| |
| From: Sean Wang <sean.wang@mediatek.com> |
| |
| commit 77f328dbc6cf42f22c691a164958a5452142a542 upstream. |
| |
| Restore bdev->tx_state with clearing bit BTMTKUART_TX_WAIT_VND_EVT |
| when there is an error on waiting for the corresponding event. |
| |
| Fixes: 7237c4c9ec92 ("Bluetooth: mediatek: Add protocol support for MediaTek serial devices") |
| Signed-off-by: Sean Wang <sean.wang@mediatek.com> |
| Signed-off-by: Marcel Holtmann <marcel@holtmann.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/bluetooth/btmtkuart.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/bluetooth/btmtkuart.c |
| +++ b/drivers/bluetooth/btmtkuart.c |
| @@ -115,11 +115,13 @@ static int mtk_hci_wmt_sync(struct hci_d |
| TASK_INTERRUPTIBLE, HCI_INIT_TIMEOUT); |
| if (err == -EINTR) { |
| bt_dev_err(hdev, "Execution of wmt command interrupted"); |
| + clear_bit(BTMTKUART_TX_WAIT_VND_EVT, &bdev->tx_state); |
| return err; |
| } |
| |
| if (err) { |
| bt_dev_err(hdev, "Execution of wmt command timed out"); |
| + clear_bit(BTMTKUART_TX_WAIT_VND_EVT, &bdev->tx_state); |
| return -ETIMEDOUT; |
| } |
| |