Bluetooth: Fix flags of mgmt_device_found event

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>
This commit is contained in:
Jefferson Delfes 2012-06-11 09:18:51 -04:00 committed by Gustavo Padovan
parent 11778716ed
commit af7985bf85
2 changed files with 4 additions and 3 deletions

View File

@ -444,7 +444,7 @@ struct mgmt_ev_auth_failed {
struct mgmt_ev_device_found { struct mgmt_ev_device_found {
struct mgmt_addr_info addr; struct mgmt_addr_info addr;
__s8 rssi; __s8 rssi;
__u8 flags[4]; __le32 flags;
__le16 eir_len; __le16 eir_len;
__u8 eir[0]; __u8 eir[0];
} __packed; } __packed;

View File

@ -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->addr.type = link_to_bdaddr(link_type, addr_type);
ev->rssi = rssi; ev->rssi = rssi;
if (cfm_name) if (cfm_name)
ev->flags[0] |= MGMT_DEV_FOUND_CONFIRM_NAME; ev->flags |= MGMT_DEV_FOUND_CONFIRM_NAME;
if (!ssp) if (!ssp)
ev->flags[0] |= MGMT_DEV_FOUND_LEGACY_PAIRING; ev->flags |= MGMT_DEV_FOUND_LEGACY_PAIRING;
if (eir_len > 0) if (eir_len > 0)
memcpy(ev->eir, eir, eir_len); memcpy(ev->eir, eir, eir_len);
@ -3558,6 +3558,7 @@ int mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
dev_class, 3); dev_class, 3);
ev->eir_len = cpu_to_le16(eir_len); ev->eir_len = cpu_to_le16(eir_len);
ev->flags = cpu_to_le32(ev->flags);
ev_size = sizeof(*ev) + eir_len; ev_size = sizeof(*ev) + eir_len;