Skip to content

Commit

Permalink
Bluetooth: Fix flags of mgmt_device_found event
Browse files Browse the repository at this point in the history
Change flags field to matches userspace structure.
This field needs to be converted to little endian before forward it.

Signed-off-by: Jefferson Delfes <jefferson.delfes@openbossa.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
  • Loading branch information
Jefferson Delfes authored and Gustavo Padovan committed Jun 13, 2012
1 parent 1177871 commit af7985b
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
2 changes: 1 addition & 1 deletion include/net/bluetooth/mgmt.h
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ struct mgmt_ev_auth_failed {
struct mgmt_ev_device_found {
struct mgmt_addr_info addr;
__s8 rssi;
__u8 flags[4];
__le32 flags;
__le16 eir_len;
__u8 eir[0];
} __packed;
Expand Down
5 changes: 3 additions & 2 deletions net/bluetooth/mgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -3546,9 +3546,9 @@ int mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
ev->addr.type = link_to_bdaddr(link_type, addr_type);
ev->rssi = rssi;
if (cfm_name)
ev->flags[0] |= MGMT_DEV_FOUND_CONFIRM_NAME;
ev->flags |= MGMT_DEV_FOUND_CONFIRM_NAME;
if (!ssp)
ev->flags[0] |= MGMT_DEV_FOUND_LEGACY_PAIRING;
ev->flags |= MGMT_DEV_FOUND_LEGACY_PAIRING;

if (eir_len > 0)
memcpy(ev->eir, eir, eir_len);
Expand All @@ -3558,6 +3558,7 @@ int mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
dev_class, 3);

ev->eir_len = cpu_to_le16(eir_len);
ev->flags = cpu_to_le32(ev->flags);

ev_size = sizeof(*ev) + eir_len;

Expand Down

0 comments on commit af7985b

Please sign in to comment.