From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Wed, 24 Nov 2021 16:16:13 -0800
Subject: Bluetooth: HCI: Fix definition of hci_rp_delete_stored_link_key
Patch-mainline: v5.17-rc1
Git-commit: 7978656caf2ad3963fb63797128ec8d71caa2798
References: jsc#PED-1407
num_keys is actually 2 octects not 1:
BLUETOOTH CORE SPECIFICATION Version 5.3 | Vol 4, Part E
page 1989:
Num_Keys_Deleted:
Size: 2 octets
0xXXXX Number of Link Keys Deleted
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Acked-by: Lee, Chun-Yi <jlee@suse.com>
---
include/net/bluetooth/hci.h | 2 +-
net/bluetooth/hci_event.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -1058,7 +1058,7 @@ struct hci_cp_delete_stored_link_key {
} __packed;
struct hci_rp_delete_stored_link_key {
__u8 status;
- __u8 num_keys;
+ __le16 num_keys;
} __packed;
#define HCI_MAX_NAME_LENGTH 248
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -272,7 +272,7 @@ static void hci_cc_delete_stored_link_ke
return;
if (rp->num_keys <= hdev->stored_num_keys)
- hdev->stored_num_keys -= rp->num_keys;
+ hdev->stored_num_keys -= le16_to_cpu(rp->num_keys);
else
hdev->stored_num_keys = 0;
}