Skip to content

Commit

Permalink
Bluetooth: Clean up magic pointers
Browse files Browse the repository at this point in the history
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
  • Loading branch information
Andrei Emeltchenko authored and Gustavo F. Padovan committed Dec 20, 2011
1 parent 32ac5b9 commit 613a1c0
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
7 changes: 6 additions & 1 deletion include/net/bluetooth/hci.h
Original file line number Diff line number Diff line change
Expand Up @@ -979,9 +979,14 @@ struct hci_ev_role_change {
} __packed;

#define HCI_EV_NUM_COMP_PKTS 0x13
struct hci_comp_pkts_info {
__le16 handle;
__le16 count;
} __packed;

struct hci_ev_num_comp_pkts {
__u8 num_hndl;
/* variable length part */
struct hci_comp_pkts_info handles[0];
} __packed;

#define HCI_EV_MODE_CHANGE 0x14
Expand Down
8 changes: 4 additions & 4 deletions net/bluetooth/hci_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -2256,7 +2256,6 @@ static inline void hci_role_change_evt(struct hci_dev *hdev, struct sk_buff *skb
static inline void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *skb)
{
struct hci_ev_num_comp_pkts *ev = (void *) skb->data;
__le16 *ptr;
int i;

skb_pull(skb, sizeof(*ev));
Expand All @@ -2273,12 +2272,13 @@ static inline void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *s
return;
}

for (i = 0, ptr = (__le16 *) skb->data; i < ev->num_hndl; i++) {
for (i = 0; i < ev->num_hndl; i++) {
struct hci_comp_pkts_info *info = &ev->handles[i];
struct hci_conn *conn;
__u16 handle, count;

handle = get_unaligned_le16(ptr++);
count = get_unaligned_le16(ptr++);
handle = __le16_to_cpu(info->handle);
count = __le16_to_cpu(info->count);

conn = hci_conn_hash_lookup_handle(hdev, handle);
if (!conn)
Expand Down

0 comments on commit 613a1c0

Please sign in to comment.