mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 15:41:36 +00:00
Bluetooth: Fix broken usage of get_unaligned_le16
In case the struct is already __packed, there is no need to use unaligned access to the data. So just use __le16_to_cpu in these cases. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
parent
1036b89042
commit
1f350c8724
@ -862,7 +862,7 @@ static int set_discoverable(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||
|
||||
BT_DBG("request for %s", hdev->name);
|
||||
|
||||
timeout = get_unaligned_le16(&cp->timeout);
|
||||
timeout = __le16_to_cpu(cp->timeout);
|
||||
if (!cp->val && timeout > 0)
|
||||
return cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE,
|
||||
MGMT_STATUS_INVALID_PARAMS);
|
||||
@ -1461,7 +1461,7 @@ static int load_link_keys(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||
u16 key_count, expected_len;
|
||||
int i;
|
||||
|
||||
key_count = get_unaligned_le16(&cp->key_count);
|
||||
key_count = __le16_to_cpu(cp->key_count);
|
||||
|
||||
expected_len = sizeof(*cp) + key_count *
|
||||
sizeof(struct mgmt_link_key_info);
|
||||
@ -2611,7 +2611,7 @@ static int load_long_term_keys(struct sock *sk, struct hci_dev *hdev,
|
||||
u16 key_count, expected_len;
|
||||
int i;
|
||||
|
||||
key_count = get_unaligned_le16(&cp->key_count);
|
||||
key_count = __le16_to_cpu(cp->key_count);
|
||||
|
||||
expected_len = sizeof(*cp) + key_count *
|
||||
sizeof(struct mgmt_ltk_info);
|
||||
@ -2722,9 +2722,9 @@ int mgmt_control(struct sock *sk, struct msghdr *msg, size_t msglen)
|
||||
}
|
||||
|
||||
hdr = buf;
|
||||
opcode = get_unaligned_le16(&hdr->opcode);
|
||||
index = get_unaligned_le16(&hdr->index);
|
||||
len = get_unaligned_le16(&hdr->len);
|
||||
opcode = __le16_to_cpu(hdr->opcode);
|
||||
index = __le16_to_cpu(hdr->index);
|
||||
len = __le16_to_cpu(hdr->len);
|
||||
|
||||
if (len != msglen - sizeof(*hdr)) {
|
||||
err = -EINVAL;
|
||||
|
Loading…
Reference in New Issue
Block a user