diff options
| author | Jefferson Delfes <jefferson.delfes@openbossa.org> | 2012-06-11 09:18:51 -0400 |
|---|---|---|
| committer | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2012-06-12 22:19:21 -0400 |
| commit | af7985bf85840e3dc90ba108a679db044f91f00e (patch) | |
| tree | 5c28fee15c4ebe666cfefc9744c8f67a1adcc2d5 | |
| parent | 11778716ededa873f24eebaae011e52f3d27dfca (diff) | |
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>
| -rw-r--r-- | include/net/bluetooth/mgmt.h | 2 | ||||
| -rw-r--r-- | net/bluetooth/mgmt.c | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 23fd0546fccb..4348ee8bda69 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h | |||
| @@ -444,7 +444,7 @@ struct mgmt_ev_auth_failed { | |||
| 444 | struct mgmt_ev_device_found { | 444 | struct mgmt_ev_device_found { |
| 445 | struct mgmt_addr_info addr; | 445 | struct mgmt_addr_info addr; |
| 446 | __s8 rssi; | 446 | __s8 rssi; |
| 447 | __u8 flags[4]; | 447 | __le32 flags; |
| 448 | __le16 eir_len; | 448 | __le16 eir_len; |
| 449 | __u8 eir[0]; | 449 | __u8 eir[0]; |
| 450 | } __packed; | 450 | } __packed; |
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index c72307cc25fc..b4816632d724 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
| @@ -3546,9 +3546,9 @@ int mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, | |||
| 3546 | ev->addr.type = link_to_bdaddr(link_type, addr_type); | 3546 | ev->addr.type = link_to_bdaddr(link_type, addr_type); |
| 3547 | ev->rssi = rssi; | 3547 | ev->rssi = rssi; |
| 3548 | if (cfm_name) | 3548 | if (cfm_name) |
| 3549 | ev->flags[0] |= MGMT_DEV_FOUND_CONFIRM_NAME; | 3549 | ev->flags |= MGMT_DEV_FOUND_CONFIRM_NAME; |
| 3550 | if (!ssp) | 3550 | if (!ssp) |
| 3551 | ev->flags[0] |= MGMT_DEV_FOUND_LEGACY_PAIRING; | 3551 | ev->flags |= MGMT_DEV_FOUND_LEGACY_PAIRING; |
| 3552 | 3552 | ||
| 3553 | if (eir_len > 0) | 3553 | if (eir_len > 0) |
| 3554 | memcpy(ev->eir, eir, eir_len); | 3554 | memcpy(ev->eir, eir, eir_len); |
| @@ -3558,6 +3558,7 @@ int mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, | |||
| 3558 | dev_class, 3); | 3558 | dev_class, 3); |
| 3559 | 3559 | ||
| 3560 | ev->eir_len = cpu_to_le16(eir_len); | 3560 | ev->eir_len = cpu_to_le16(eir_len); |
| 3561 | ev->flags = cpu_to_le32(ev->flags); | ||
| 3561 | 3562 | ||
| 3562 | ev_size = sizeof(*ev) + eir_len; | 3563 | ev_size = sizeof(*ev) + eir_len; |
| 3563 | 3564 | ||
