diff mbox series

[1/1] Bluetooth: Fix unnecessary error message for HCI request completion

Message ID 20190327083240.9104-2-kai.heng.feng@canonical.com
State New
Headers show
Series Fix "Bluetooth: hci0: last event is not cmd complete (0x0f)" | expand

Commit Message

Kai-Heng Feng March 27, 2019, 8:32 a.m. UTC
From: Johan Hedberg <johan.hedberg@intel.com>

BugLink: https://bugs.launchpad.net/bugs/1748565

In case a command which completes in Command Status was sent using the
hci_cmd_send-family of APIs there would be a misleading error in the
hci_get_cmd_complete function, since the code would be trying to fetch
the Command Complete parameters when there are none.

Avoid the misleading error and silently bail out from the function in
case the received event is a command status.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
(cherry picked from commit 1629db9c75342325868243d6bca5853017d91cf8)
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
 net/bluetooth/hci_event.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Stefan Bader March 28, 2019, 2:10 p.m. UTC | #1
On 27.03.19 09:32, Kai-Heng Feng wrote:
> From: Johan Hedberg <johan.hedberg@intel.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1748565
> 
> In case a command which completes in Command Status was sent using the
> hci_cmd_send-family of APIs there would be a misleading error in the
> hci_get_cmd_complete function, since the code would be trying to fetch
> the Command Complete parameters when there are none.
> 
> Avoid the misleading error and silently bail out from the function in
> case the received event is a command status.
> 
> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
> Acked-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
> (cherry picked from commit 1629db9c75342325868243d6bca5853017d91cf8)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
> ---
>  net/bluetooth/hci_event.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
> index 139707cd9d35..dc2bcf91baf4 100644
> --- a/net/bluetooth/hci_event.c
> +++ b/net/bluetooth/hci_event.c
> @@ -5213,6 +5213,12 @@ static bool hci_get_cmd_complete(struct hci_dev *hdev, u16 opcode,
>  		return true;
>  	}
>  
> +	/* Check if request ended in Command Status - no way to retreive
> +	 * any extra parameters in this case.
> +	 */
> +	if (hdr->evt == HCI_EV_CMD_STATUS)
> +		return false;
> +
>  	if (hdr->evt != HCI_EV_CMD_COMPLETE) {
>  		bt_dev_err(hdev, "last event is not cmd complete (0x%2.2x)",
>  			   hdr->evt);
>
diff mbox series

Patch

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 139707cd9d35..dc2bcf91baf4 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -5213,6 +5213,12 @@  static bool hci_get_cmd_complete(struct hci_dev *hdev, u16 opcode,
 		return true;
 	}
 
+	/* Check if request ended in Command Status - no way to retreive
+	 * any extra parameters in this case.
+	 */
+	if (hdr->evt == HCI_EV_CMD_STATUS)
+		return false;
+
 	if (hdr->evt != HCI_EV_CMD_COMPLETE) {
 		bt_dev_err(hdev, "last event is not cmd complete (0x%2.2x)",
 			   hdr->evt);