Message ID | 20211125001613.3274241-1-luiz.dentz@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] Bluetooth: HCI: Fix definition of hci_rp_read_stored_link_key | expand |
Hi Luiz, > Both max_num_keys and num_key are 2 octects: > > BLUETOOTH CORE SPECIFICATION Version 5.3 | Vol 4, Part E > page 1985: > > Max_Num_Keys: > Size: 2 octets > Range: 0x0000 to 0xFFFF > > Num_Keys_Read: > Size: 2 octets > Range: 0x0000 to 0xFFFF > > Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> > --- > v2: Use __le16 instead of __u16 in hci_rp_read_stored_link_key and update > fields in hci_dev to properly store 2 octects. Also add a patch for > hci_rp_delete_stored_link_key since num_keys is also 2 octecs like > hci_rp_read_stored_link_key. > > include/net/bluetooth/hci.h | 4 ++-- > include/net/bluetooth/hci_core.h | 4 ++-- > net/bluetooth/hci_event.c | 4 ++-- > 3 files changed, 6 insertions(+), 6 deletions(-) patch has been applied to bluetooth-next tree. However I had to fix some alignment issue. Regards Marcel
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 84db6b275231..3c5211c3a790 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -1047,8 +1047,8 @@ struct hci_cp_read_stored_link_key { } __packed; struct hci_rp_read_stored_link_key { __u8 status; - __u8 max_keys; - __u8 num_keys; + __le16 max_keys; + __le16 num_keys; } __packed; #define HCI_OP_DELETE_STORED_LINK_KEY 0x0c12 diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 2560cfe80db8..bb07a6d0d597 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -352,8 +352,8 @@ struct hci_dev { __u16 lmp_subver; __u16 voice_setting; __u8 num_iac; - __u8 stored_max_keys; - __u8 stored_num_keys; + __u16 stored_max_keys; + __u16 stored_num_keys; __u8 io_capability; __s8 inq_tx_power; __u8 err_data_reporting; diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index efc5458b1345..7452de6895fc 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -256,8 +256,8 @@ static void hci_cc_read_stored_link_key(struct hci_dev *hdev, return; if (!rp->status && sent->read_all == 0x01) { - hdev->stored_max_keys = rp->max_keys; - hdev->stored_num_keys = rp->num_keys; + hdev->stored_max_keys = le16_to_cpu(rp->max_keys); + hdev->stored_num_keys = le16_to_cpu(rp->num_keys); } }