]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Bluetooth: Fix unnecessary error message for HCI request completion
authorJohan Hedberg <johan.hedberg@intel.com>
Tue, 27 Nov 2018 09:37:46 +0000 (11:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Feb 2019 18:44:56 +0000 (19:44 +0100)
[ Upstream commit 1629db9c75342325868243d6bca5853017d91cf8 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/bluetooth/hci_event.c

index d2f9eb169ba80e757f2b5333904bdafa307c25d5..6f78489fdb132806f9ea18a9aad394e896ead3d9 100644 (file)
@@ -5212,6 +5212,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_DBG("Last event is not cmd complete (0x%2.2x)", hdr->evt);
                return false;