Commit 807deac2 authored by Gustavo Padovan's avatar Gustavo Padovan Committed by Johan Hedberg

Bluetooth: Fix coding style in hci_event.c

Follow the net subsystem rules.
Signed-off-by: default avatarGustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent b80f021f
...@@ -95,7 +95,8 @@ static void hci_cc_exit_periodic_inq(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -95,7 +95,8 @@ static void hci_cc_exit_periodic_inq(struct hci_dev *hdev, struct sk_buff *skb)
hci_conn_check_pending(hdev); hci_conn_check_pending(hdev);
} }
static void hci_cc_remote_name_req_cancel(struct hci_dev *hdev, struct sk_buff *skb) static void hci_cc_remote_name_req_cancel(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
BT_DBG("%s", hdev->name); BT_DBG("%s", hdev->name);
} }
...@@ -166,7 +167,8 @@ static void hci_cc_write_link_policy(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -166,7 +167,8 @@ static void hci_cc_write_link_policy(struct hci_dev *hdev, struct sk_buff *skb)
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static void hci_cc_read_def_link_policy(struct hci_dev *hdev, struct sk_buff *skb) static void hci_cc_read_def_link_policy(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_rp_read_def_link_policy *rp = (void *) skb->data; struct hci_rp_read_def_link_policy *rp = (void *) skb->data;
...@@ -178,7 +180,8 @@ static void hci_cc_read_def_link_policy(struct hci_dev *hdev, struct sk_buff *sk ...@@ -178,7 +180,8 @@ static void hci_cc_read_def_link_policy(struct hci_dev *hdev, struct sk_buff *sk
hdev->link_policy = __le16_to_cpu(rp->policy); hdev->link_policy = __le16_to_cpu(rp->policy);
} }
static void hci_cc_write_def_link_policy(struct hci_dev *hdev, struct sk_buff *skb) static void hci_cc_write_def_link_policy(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
__u8 status = *((__u8 *) skb->data); __u8 status = *((__u8 *) skb->data);
void *sent; void *sent;
...@@ -329,7 +332,7 @@ static void hci_cc_write_scan_enable(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -329,7 +332,7 @@ static void hci_cc_write_scan_enable(struct hci_dev *hdev, struct sk_buff *skb)
if (hdev->discov_timeout > 0) { if (hdev->discov_timeout > 0) {
int to = msecs_to_jiffies(hdev->discov_timeout * 1000); int to = msecs_to_jiffies(hdev->discov_timeout * 1000);
queue_delayed_work(hdev->workqueue, &hdev->discov_off, queue_delayed_work(hdev->workqueue, &hdev->discov_off,
to); to);
} }
} else if (old_iscan) } else if (old_iscan)
mgmt_discoverable(hdev, 0); mgmt_discoverable(hdev, 0);
...@@ -358,7 +361,7 @@ static void hci_cc_read_class_of_dev(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -358,7 +361,7 @@ static void hci_cc_read_class_of_dev(struct hci_dev *hdev, struct sk_buff *skb)
memcpy(hdev->dev_class, rp->dev_class, 3); memcpy(hdev->dev_class, rp->dev_class, 3);
BT_DBG("%s class 0x%.2x%.2x%.2x", hdev->name, BT_DBG("%s class 0x%.2x%.2x%.2x", hdev->name,
hdev->dev_class[2], hdev->dev_class[1], hdev->dev_class[0]); hdev->dev_class[2], hdev->dev_class[1], hdev->dev_class[0]);
} }
static void hci_cc_write_class_of_dev(struct hci_dev *hdev, struct sk_buff *skb) static void hci_cc_write_class_of_dev(struct hci_dev *hdev, struct sk_buff *skb)
...@@ -473,7 +476,7 @@ static u8 hci_get_inquiry_mode(struct hci_dev *hdev) ...@@ -473,7 +476,7 @@ static u8 hci_get_inquiry_mode(struct hci_dev *hdev)
return 1; return 1;
if (hdev->manufacturer == 11 && hdev->hci_rev == 0x00 && if (hdev->manufacturer == 11 && hdev->hci_rev == 0x00 &&
hdev->lmp_subver == 0x0757) hdev->lmp_subver == 0x0757)
return 1; return 1;
if (hdev->manufacturer == 15) { if (hdev->manufacturer == 15) {
...@@ -486,7 +489,7 @@ static u8 hci_get_inquiry_mode(struct hci_dev *hdev) ...@@ -486,7 +489,7 @@ static u8 hci_get_inquiry_mode(struct hci_dev *hdev)
} }
if (hdev->manufacturer == 31 && hdev->hci_rev == 0x2005 && if (hdev->manufacturer == 31 && hdev->hci_rev == 0x2005 &&
hdev->lmp_subver == 0x1805) hdev->lmp_subver == 0x1805)
return 1; return 1;
return 0; return 0;
...@@ -618,8 +621,7 @@ static void hci_cc_read_local_version(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -618,8 +621,7 @@ static void hci_cc_read_local_version(struct hci_dev *hdev, struct sk_buff *skb)
hdev->lmp_subver = __le16_to_cpu(rp->lmp_subver); hdev->lmp_subver = __le16_to_cpu(rp->lmp_subver);
BT_DBG("%s manufacturer %d hci ver %d:%d", hdev->name, BT_DBG("%s manufacturer %d hci ver %d:%d", hdev->name,
hdev->manufacturer, hdev->manufacturer, hdev->hci_ver, hdev->hci_rev);
hdev->hci_ver, hdev->hci_rev);
if (test_bit(HCI_INIT, &hdev->flags)) if (test_bit(HCI_INIT, &hdev->flags))
hci_setup(hdev); hci_setup(hdev);
...@@ -713,10 +715,10 @@ static void hci_cc_read_local_features(struct hci_dev *hdev, struct sk_buff *skb ...@@ -713,10 +715,10 @@ static void hci_cc_read_local_features(struct hci_dev *hdev, struct sk_buff *skb
hdev->esco_type |= (ESCO_2EV5 | ESCO_3EV5); hdev->esco_type |= (ESCO_2EV5 | ESCO_3EV5);
BT_DBG("%s features 0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", hdev->name, BT_DBG("%s features 0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", hdev->name,
hdev->features[0], hdev->features[1], hdev->features[0], hdev->features[1],
hdev->features[2], hdev->features[3], hdev->features[2], hdev->features[3],
hdev->features[4], hdev->features[5], hdev->features[4], hdev->features[5],
hdev->features[6], hdev->features[7]); hdev->features[6], hdev->features[7]);
} }
static void hci_set_le_support(struct hci_dev *hdev) static void hci_set_le_support(struct hci_dev *hdev)
...@@ -736,7 +738,7 @@ static void hci_set_le_support(struct hci_dev *hdev) ...@@ -736,7 +738,7 @@ static void hci_set_le_support(struct hci_dev *hdev)
} }
static void hci_cc_read_local_ext_features(struct hci_dev *hdev, static void hci_cc_read_local_ext_features(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_rp_read_local_ext_features *rp = (void *) skb->data; struct hci_rp_read_local_ext_features *rp = (void *) skb->data;
...@@ -762,7 +764,7 @@ static void hci_cc_read_local_ext_features(struct hci_dev *hdev, ...@@ -762,7 +764,7 @@ static void hci_cc_read_local_ext_features(struct hci_dev *hdev,
} }
static void hci_cc_read_flow_control_mode(struct hci_dev *hdev, static void hci_cc_read_flow_control_mode(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_rp_read_flow_control_mode *rp = (void *) skb->data; struct hci_rp_read_flow_control_mode *rp = (void *) skb->data;
...@@ -798,9 +800,8 @@ static void hci_cc_read_buffer_size(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -798,9 +800,8 @@ static void hci_cc_read_buffer_size(struct hci_dev *hdev, struct sk_buff *skb)
hdev->acl_cnt = hdev->acl_pkts; hdev->acl_cnt = hdev->acl_pkts;
hdev->sco_cnt = hdev->sco_pkts; hdev->sco_cnt = hdev->sco_pkts;
BT_DBG("%s acl mtu %d:%d sco mtu %d:%d", hdev->name, BT_DBG("%s acl mtu %d:%d sco mtu %d:%d", hdev->name, hdev->acl_mtu,
hdev->acl_mtu, hdev->acl_pkts, hdev->acl_pkts, hdev->sco_mtu, hdev->sco_pkts);
hdev->sco_mtu, hdev->sco_pkts);
} }
static void hci_cc_read_bd_addr(struct hci_dev *hdev, struct sk_buff *skb) static void hci_cc_read_bd_addr(struct hci_dev *hdev, struct sk_buff *skb)
...@@ -816,7 +817,7 @@ static void hci_cc_read_bd_addr(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -816,7 +817,7 @@ static void hci_cc_read_bd_addr(struct hci_dev *hdev, struct sk_buff *skb)
} }
static void hci_cc_read_data_block_size(struct hci_dev *hdev, static void hci_cc_read_data_block_size(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_rp_read_data_block_size *rp = (void *) skb->data; struct hci_rp_read_data_block_size *rp = (void *) skb->data;
...@@ -832,7 +833,7 @@ static void hci_cc_read_data_block_size(struct hci_dev *hdev, ...@@ -832,7 +833,7 @@ static void hci_cc_read_data_block_size(struct hci_dev *hdev,
hdev->block_cnt = hdev->num_blocks; hdev->block_cnt = hdev->num_blocks;
BT_DBG("%s blk mtu %d cnt %d len %d", hdev->name, hdev->block_mtu, BT_DBG("%s blk mtu %d cnt %d len %d", hdev->name, hdev->block_mtu,
hdev->block_cnt, hdev->block_len); hdev->block_cnt, hdev->block_len);
hci_req_complete(hdev, HCI_OP_READ_DATA_BLOCK_SIZE, rp->status); hci_req_complete(hdev, HCI_OP_READ_DATA_BLOCK_SIZE, rp->status);
} }
...@@ -847,7 +848,7 @@ static void hci_cc_write_ca_timeout(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -847,7 +848,7 @@ static void hci_cc_write_ca_timeout(struct hci_dev *hdev, struct sk_buff *skb)
} }
static void hci_cc_read_local_amp_info(struct hci_dev *hdev, static void hci_cc_read_local_amp_info(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_rp_read_local_amp_info *rp = (void *) skb->data; struct hci_rp_read_local_amp_info *rp = (void *) skb->data;
...@@ -871,7 +872,7 @@ static void hci_cc_read_local_amp_info(struct hci_dev *hdev, ...@@ -871,7 +872,7 @@ static void hci_cc_read_local_amp_info(struct hci_dev *hdev,
} }
static void hci_cc_delete_stored_link_key(struct hci_dev *hdev, static void hci_cc_delete_stored_link_key(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
__u8 status = *((__u8 *) skb->data); __u8 status = *((__u8 *) skb->data);
...@@ -890,7 +891,7 @@ static void hci_cc_set_event_mask(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -890,7 +891,7 @@ static void hci_cc_set_event_mask(struct hci_dev *hdev, struct sk_buff *skb)
} }
static void hci_cc_write_inquiry_mode(struct hci_dev *hdev, static void hci_cc_write_inquiry_mode(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
__u8 status = *((__u8 *) skb->data); __u8 status = *((__u8 *) skb->data);
...@@ -900,7 +901,7 @@ static void hci_cc_write_inquiry_mode(struct hci_dev *hdev, ...@@ -900,7 +901,7 @@ static void hci_cc_write_inquiry_mode(struct hci_dev *hdev,
} }
static void hci_cc_read_inq_rsp_tx_power(struct hci_dev *hdev, static void hci_cc_read_inq_rsp_tx_power(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_rp_read_inq_rsp_tx_power *rp = (void *) skb->data; struct hci_rp_read_inq_rsp_tx_power *rp = (void *) skb->data;
...@@ -959,7 +960,7 @@ static void hci_cc_pin_code_neg_reply(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -959,7 +960,7 @@ static void hci_cc_pin_code_neg_reply(struct hci_dev *hdev, struct sk_buff *skb)
if (test_bit(HCI_MGMT, &hdev->dev_flags)) if (test_bit(HCI_MGMT, &hdev->dev_flags))
mgmt_pin_code_neg_reply_complete(hdev, &rp->bdaddr, mgmt_pin_code_neg_reply_complete(hdev, &rp->bdaddr,
rp->status); rp->status);
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
...@@ -1000,7 +1001,7 @@ static void hci_cc_user_confirm_reply(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -1000,7 +1001,7 @@ static void hci_cc_user_confirm_reply(struct hci_dev *hdev, struct sk_buff *skb)
} }
static void hci_cc_user_confirm_neg_reply(struct hci_dev *hdev, static void hci_cc_user_confirm_neg_reply(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_rp_user_confirm_reply *rp = (void *) skb->data; struct hci_rp_user_confirm_reply *rp = (void *) skb->data;
...@@ -1031,7 +1032,7 @@ static void hci_cc_user_passkey_reply(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -1031,7 +1032,7 @@ static void hci_cc_user_passkey_reply(struct hci_dev *hdev, struct sk_buff *skb)
} }
static void hci_cc_user_passkey_neg_reply(struct hci_dev *hdev, static void hci_cc_user_passkey_neg_reply(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_rp_user_confirm_reply *rp = (void *) skb->data; struct hci_rp_user_confirm_reply *rp = (void *) skb->data;
...@@ -1047,7 +1048,7 @@ static void hci_cc_user_passkey_neg_reply(struct hci_dev *hdev, ...@@ -1047,7 +1048,7 @@ static void hci_cc_user_passkey_neg_reply(struct hci_dev *hdev,
} }
static void hci_cc_read_local_oob_data_reply(struct hci_dev *hdev, static void hci_cc_read_local_oob_data_reply(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_rp_read_local_oob_data *rp = (void *) skb->data; struct hci_rp_read_local_oob_data *rp = (void *) skb->data;
...@@ -1076,7 +1077,7 @@ static void hci_cc_le_set_scan_param(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -1076,7 +1077,7 @@ static void hci_cc_le_set_scan_param(struct hci_dev *hdev, struct sk_buff *skb)
} }
static void hci_cc_le_set_scan_enable(struct hci_dev *hdev, static void hci_cc_le_set_scan_enable(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_cp_le_set_scan_enable *cp; struct hci_cp_le_set_scan_enable *cp;
__u8 status = *((__u8 *) skb->data); __u8 status = *((__u8 *) skb->data);
...@@ -1157,7 +1158,7 @@ static void hci_cc_le_ltk_neg_reply(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -1157,7 +1158,7 @@ static void hci_cc_le_ltk_neg_reply(struct hci_dev *hdev, struct sk_buff *skb)
} }
static inline void hci_cc_write_le_host_supported(struct hci_dev *hdev, static inline void hci_cc_write_le_host_supported(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_cp_write_le_host_supported *sent; struct hci_cp_write_le_host_supported *sent;
__u8 status = *((__u8 *) skb->data); __u8 status = *((__u8 *) skb->data);
...@@ -1176,7 +1177,7 @@ static inline void hci_cc_write_le_host_supported(struct hci_dev *hdev, ...@@ -1176,7 +1177,7 @@ static inline void hci_cc_write_le_host_supported(struct hci_dev *hdev,
} }
if (test_bit(HCI_MGMT, &hdev->dev_flags) && if (test_bit(HCI_MGMT, &hdev->dev_flags) &&
!test_bit(HCI_INIT, &hdev->flags)) !test_bit(HCI_INIT, &hdev->flags))
mgmt_le_enable_complete(hdev, sent->le, status); mgmt_le_enable_complete(hdev, sent->le, status);
hci_req_complete(hdev, HCI_OP_WRITE_LE_HOST_SUPPORTED, status); hci_req_complete(hdev, HCI_OP_WRITE_LE_HOST_SUPPORTED, status);
...@@ -1333,7 +1334,7 @@ static void hci_cs_set_conn_encrypt(struct hci_dev *hdev, __u8 status) ...@@ -1333,7 +1334,7 @@ static void hci_cs_set_conn_encrypt(struct hci_dev *hdev, __u8 status)
} }
static int hci_outgoing_auth_needed(struct hci_dev *hdev, static int hci_outgoing_auth_needed(struct hci_dev *hdev,
struct hci_conn *conn) struct hci_conn *conn)
{ {
if (conn->state != BT_CONFIG || !conn->out) if (conn->state != BT_CONFIG || !conn->out)
return 0; return 0;
...@@ -1343,9 +1344,8 @@ static int hci_outgoing_auth_needed(struct hci_dev *hdev, ...@@ -1343,9 +1344,8 @@ static int hci_outgoing_auth_needed(struct hci_dev *hdev,
/* Only request authentication for SSP connections or non-SSP /* Only request authentication for SSP connections or non-SSP
* devices with sec_level HIGH or if MITM protection is requested */ * devices with sec_level HIGH or if MITM protection is requested */
if (!hci_conn_ssp_enabled(conn) && if (!hci_conn_ssp_enabled(conn) && !(conn->auth_type & 0x01) &&
conn->pending_sec_level != BT_SECURITY_HIGH && conn->pending_sec_level != BT_SECURITY_HIGH)
!(conn->auth_type & 0x01))
return 0; return 0;
return 1; return 1;
...@@ -1638,7 +1638,7 @@ static void hci_cs_le_create_conn(struct hci_dev *hdev, __u8 status) ...@@ -1638,7 +1638,7 @@ static void hci_cs_le_create_conn(struct hci_dev *hdev, __u8 status)
conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->peer_addr); conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->peer_addr);
BT_DBG("%s bdaddr %s conn %p", hdev->name, batostr(&cp->peer_addr), BT_DBG("%s bdaddr %s conn %p", hdev->name, batostr(&cp->peer_addr),
conn); conn);
if (status) { if (status) {
if (conn && conn->state == BT_CONNECT) { if (conn && conn->state == BT_CONNECT) {
...@@ -1668,7 +1668,8 @@ static void hci_cs_le_start_enc(struct hci_dev *hdev, u8 status) ...@@ -1668,7 +1668,8 @@ static void hci_cs_le_start_enc(struct hci_dev *hdev, u8 status)
BT_DBG("%s status 0x%x", hdev->name, status); BT_DBG("%s status 0x%x", hdev->name, status);
} }
static inline void hci_inquiry_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_inquiry_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
__u8 status = *((__u8 *) skb->data); __u8 status = *((__u8 *) skb->data);
struct discovery_state *discov = &hdev->discovery; struct discovery_state *discov = &hdev->discovery;
...@@ -1708,7 +1709,8 @@ static inline void hci_inquiry_complete_evt(struct hci_dev *hdev, struct sk_buff ...@@ -1708,7 +1709,8 @@ static inline void hci_inquiry_complete_evt(struct hci_dev *hdev, struct sk_buff
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_inquiry_result_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_inquiry_result_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct inquiry_data data; struct inquiry_data data;
struct inquiry_info *info = (void *) (skb->data + 1); struct inquiry_info *info = (void *) (skb->data + 1);
...@@ -1745,7 +1747,8 @@ static inline void hci_inquiry_result_evt(struct hci_dev *hdev, struct sk_buff * ...@@ -1745,7 +1747,8 @@ static inline void hci_inquiry_result_evt(struct hci_dev *hdev, struct sk_buff *
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_conn_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_conn_complete *ev = (void *) skb->data; struct hci_ev_conn_complete *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -1823,18 +1826,19 @@ static inline void hci_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *s ...@@ -1823,18 +1826,19 @@ static inline void hci_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *s
hci_conn_check_pending(hdev); hci_conn_check_pending(hdev);
} }
static inline void hci_conn_request_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_conn_request_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_conn_request *ev = (void *) skb->data; struct hci_ev_conn_request *ev = (void *) skb->data;
int mask = hdev->link_mode; int mask = hdev->link_mode;
BT_DBG("%s bdaddr %s type 0x%x", hdev->name, BT_DBG("%s bdaddr %s type 0x%x", hdev->name, batostr(&ev->bdaddr),
batostr(&ev->bdaddr), ev->link_type); ev->link_type);
mask |= hci_proto_connect_ind(hdev, &ev->bdaddr, ev->link_type); mask |= hci_proto_connect_ind(hdev, &ev->bdaddr, ev->link_type);
if ((mask & HCI_LM_ACCEPT) && if ((mask & HCI_LM_ACCEPT) &&
!hci_blacklist_lookup(hdev, &ev->bdaddr)) { !hci_blacklist_lookup(hdev, &ev->bdaddr)) {
/* Connection accepted */ /* Connection accepted */
struct inquiry_entry *ie; struct inquiry_entry *ie;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -1897,7 +1901,8 @@ static inline void hci_conn_request_evt(struct hci_dev *hdev, struct sk_buff *sk ...@@ -1897,7 +1901,8 @@ static inline void hci_conn_request_evt(struct hci_dev *hdev, struct sk_buff *sk
} }
} }
static inline void hci_disconn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_disconn_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_disconn_complete *ev = (void *) skb->data; struct hci_ev_disconn_complete *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -1914,10 +1919,10 @@ static inline void hci_disconn_complete_evt(struct hci_dev *hdev, struct sk_buff ...@@ -1914,10 +1919,10 @@ static inline void hci_disconn_complete_evt(struct hci_dev *hdev, struct sk_buff
conn->state = BT_CLOSED; conn->state = BT_CLOSED;
if (test_and_clear_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags) && if (test_and_clear_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags) &&
(conn->type == ACL_LINK || conn->type == LE_LINK)) { (conn->type == ACL_LINK || conn->type == LE_LINK)) {
if (ev->status != 0) if (ev->status != 0)
mgmt_disconnect_failed(hdev, &conn->dst, conn->type, mgmt_disconnect_failed(hdev, &conn->dst, conn->type,
conn->dst_type, ev->status); conn->dst_type, ev->status);
else else
mgmt_device_disconnected(hdev, &conn->dst, conn->type, mgmt_device_disconnected(hdev, &conn->dst, conn->type,
conn->dst_type); conn->dst_type);
...@@ -1934,7 +1939,8 @@ static inline void hci_disconn_complete_evt(struct hci_dev *hdev, struct sk_buff ...@@ -1934,7 +1939,8 @@ static inline void hci_disconn_complete_evt(struct hci_dev *hdev, struct sk_buff
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_auth_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_auth_complete *ev = (void *) skb->data; struct hci_ev_auth_complete *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -1949,7 +1955,7 @@ static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *s ...@@ -1949,7 +1955,7 @@ static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *s
if (!ev->status) { if (!ev->status) {
if (!hci_conn_ssp_enabled(conn) && if (!hci_conn_ssp_enabled(conn) &&
test_bit(HCI_CONN_REAUTH_PEND, &conn->flags)) { test_bit(HCI_CONN_REAUTH_PEND, &conn->flags)) {
BT_INFO("re-auth of legacy device is not possible."); BT_INFO("re-auth of legacy device is not possible.");
} else { } else {
conn->link_mode |= HCI_LM_AUTH; conn->link_mode |= HCI_LM_AUTH;
...@@ -1969,7 +1975,7 @@ static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *s ...@@ -1969,7 +1975,7 @@ static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *s
cp.handle = ev->handle; cp.handle = ev->handle;
cp.encrypt = 0x01; cp.encrypt = 0x01;
hci_send_cmd(hdev, HCI_OP_SET_CONN_ENCRYPT, sizeof(cp), hci_send_cmd(hdev, HCI_OP_SET_CONN_ENCRYPT, sizeof(cp),
&cp); &cp);
} else { } else {
conn->state = BT_CONNECTED; conn->state = BT_CONNECTED;
hci_proto_connect_cfm(conn, ev->status); hci_proto_connect_cfm(conn, ev->status);
...@@ -1989,7 +1995,7 @@ static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *s ...@@ -1989,7 +1995,7 @@ static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *s
cp.handle = ev->handle; cp.handle = ev->handle;
cp.encrypt = 0x01; cp.encrypt = 0x01;
hci_send_cmd(hdev, HCI_OP_SET_CONN_ENCRYPT, sizeof(cp), hci_send_cmd(hdev, HCI_OP_SET_CONN_ENCRYPT, sizeof(cp),
&cp); &cp);
} else { } else {
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags); clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
hci_encrypt_cfm(conn, ev->status, 0x00); hci_encrypt_cfm(conn, ev->status, 0x00);
...@@ -2039,7 +2045,8 @@ static inline void hci_remote_name_evt(struct hci_dev *hdev, struct sk_buff *skb ...@@ -2039,7 +2045,8 @@ static inline void hci_remote_name_evt(struct hci_dev *hdev, struct sk_buff *skb
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_encrypt_change_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_encrypt_change_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_encrypt_change *ev = (void *) skb->data; struct hci_ev_encrypt_change *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2082,7 +2089,8 @@ static inline void hci_encrypt_change_evt(struct hci_dev *hdev, struct sk_buff * ...@@ -2082,7 +2089,8 @@ static inline void hci_encrypt_change_evt(struct hci_dev *hdev, struct sk_buff *
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_change_link_key_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_change_link_key_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_change_link_key_complete *ev = (void *) skb->data; struct hci_ev_change_link_key_complete *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2104,7 +2112,8 @@ static inline void hci_change_link_key_complete_evt(struct hci_dev *hdev, struct ...@@ -2104,7 +2112,8 @@ static inline void hci_change_link_key_complete_evt(struct hci_dev *hdev, struct
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_remote_features_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_remote_features_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_remote_features *ev = (void *) skb->data; struct hci_ev_remote_features *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2128,7 +2137,7 @@ static inline void hci_remote_features_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2128,7 +2137,7 @@ static inline void hci_remote_features_evt(struct hci_dev *hdev, struct sk_buff
cp.handle = ev->handle; cp.handle = ev->handle;
cp.page = 0x01; cp.page = 0x01;
hci_send_cmd(hdev, HCI_OP_READ_REMOTE_EXT_FEATURES, hci_send_cmd(hdev, HCI_OP_READ_REMOTE_EXT_FEATURES,
sizeof(cp), &cp); sizeof(cp), &cp);
goto unlock; goto unlock;
} }
...@@ -2153,17 +2162,20 @@ static inline void hci_remote_features_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2153,17 +2162,20 @@ static inline void hci_remote_features_evt(struct hci_dev *hdev, struct sk_buff
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_remote_version_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_remote_version_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
BT_DBG("%s", hdev->name); BT_DBG("%s", hdev->name);
} }
static inline void hci_qos_setup_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_qos_setup_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
BT_DBG("%s", hdev->name); BT_DBG("%s", hdev->name);
} }
static inline void hci_cmd_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_cmd_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_cmd_complete *ev = (void *) skb->data; struct hci_ev_cmd_complete *ev = (void *) skb->data;
__u16 opcode; __u16 opcode;
...@@ -2465,7 +2477,8 @@ static inline void hci_cmd_status_evt(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -2465,7 +2477,8 @@ static inline void hci_cmd_status_evt(struct hci_dev *hdev, struct sk_buff *skb)
} }
} }
static inline void hci_role_change_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_role_change_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_role_change *ev = (void *) skb->data; struct hci_ev_role_change *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2491,7 +2504,8 @@ static inline void hci_role_change_evt(struct hci_dev *hdev, struct sk_buff *skb ...@@ -2491,7 +2504,8 @@ static inline void hci_role_change_evt(struct hci_dev *hdev, struct sk_buff *skb
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_num_comp_pkts_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; struct hci_ev_num_comp_pkts *ev = (void *) skb->data;
int i; int i;
...@@ -2502,7 +2516,7 @@ static inline void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *s ...@@ -2502,7 +2516,7 @@ static inline void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *s
} }
if (skb->len < sizeof(*ev) || skb->len < sizeof(*ev) + if (skb->len < sizeof(*ev) || skb->len < sizeof(*ev) +
ev->num_hndl * sizeof(struct hci_comp_pkts_info)) { ev->num_hndl * sizeof(struct hci_comp_pkts_info)) {
BT_DBG("%s bad parameters", hdev->name); BT_DBG("%s bad parameters", hdev->name);
return; return;
} }
...@@ -2569,13 +2583,13 @@ static inline void hci_num_comp_blocks_evt(struct hci_dev *hdev, ...@@ -2569,13 +2583,13 @@ static inline void hci_num_comp_blocks_evt(struct hci_dev *hdev,
} }
if (skb->len < sizeof(*ev) || skb->len < sizeof(*ev) + if (skb->len < sizeof(*ev) || skb->len < sizeof(*ev) +
ev->num_hndl * sizeof(struct hci_comp_blocks_info)) { ev->num_hndl * sizeof(struct hci_comp_blocks_info)) {
BT_DBG("%s bad parameters", hdev->name); BT_DBG("%s bad parameters", hdev->name);
return; return;
} }
BT_DBG("%s num_blocks %d num_hndl %d", hdev->name, ev->num_blocks, BT_DBG("%s num_blocks %d num_hndl %d", hdev->name, ev->num_blocks,
ev->num_hndl); ev->num_hndl);
for (i = 0; i < ev->num_hndl; i++) { for (i = 0; i < ev->num_hndl; i++) {
struct hci_comp_blocks_info *info = &ev->handles[i]; struct hci_comp_blocks_info *info = &ev->handles[i];
...@@ -2607,7 +2621,8 @@ static inline void hci_num_comp_blocks_evt(struct hci_dev *hdev, ...@@ -2607,7 +2621,8 @@ static inline void hci_num_comp_blocks_evt(struct hci_dev *hdev,
queue_work(hdev->workqueue, &hdev->tx_work); queue_work(hdev->workqueue, &hdev->tx_work);
} }
static inline void hci_mode_change_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_mode_change_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_mode_change *ev = (void *) skb->data; struct hci_ev_mode_change *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2635,7 +2650,8 @@ static inline void hci_mode_change_evt(struct hci_dev *hdev, struct sk_buff *skb ...@@ -2635,7 +2650,8 @@ static inline void hci_mode_change_evt(struct hci_dev *hdev, struct sk_buff *skb
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_pin_code_request_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_pin_code_request_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_pin_code_req *ev = (void *) skb->data; struct hci_ev_pin_code_req *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2656,7 +2672,7 @@ static inline void hci_pin_code_request_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2656,7 +2672,7 @@ static inline void hci_pin_code_request_evt(struct hci_dev *hdev, struct sk_buff
if (!test_bit(HCI_PAIRABLE, &hdev->dev_flags)) if (!test_bit(HCI_PAIRABLE, &hdev->dev_flags))
hci_send_cmd(hdev, HCI_OP_PIN_CODE_NEG_REPLY, hci_send_cmd(hdev, HCI_OP_PIN_CODE_NEG_REPLY,
sizeof(ev->bdaddr), &ev->bdaddr); sizeof(ev->bdaddr), &ev->bdaddr);
else if (test_bit(HCI_MGMT, &hdev->dev_flags)) { else if (test_bit(HCI_MGMT, &hdev->dev_flags)) {
u8 secure; u8 secure;
...@@ -2672,7 +2688,8 @@ static inline void hci_pin_code_request_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2672,7 +2688,8 @@ static inline void hci_pin_code_request_evt(struct hci_dev *hdev, struct sk_buff
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_link_key_request_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_link_key_req *ev = (void *) skb->data; struct hci_ev_link_key_req *ev = (void *) skb->data;
struct hci_cp_link_key_reply cp; struct hci_cp_link_key_reply cp;
...@@ -2689,15 +2706,15 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2689,15 +2706,15 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff
key = hci_find_link_key(hdev, &ev->bdaddr); key = hci_find_link_key(hdev, &ev->bdaddr);
if (!key) { if (!key) {
BT_DBG("%s link key not found for %s", hdev->name, BT_DBG("%s link key not found for %s", hdev->name,
batostr(&ev->bdaddr)); batostr(&ev->bdaddr));
goto not_found; goto not_found;
} }
BT_DBG("%s found key type %u for %s", hdev->name, key->type, BT_DBG("%s found key type %u for %s", hdev->name, key->type,
batostr(&ev->bdaddr)); batostr(&ev->bdaddr));
if (!test_bit(HCI_DEBUG_KEYS, &hdev->dev_flags) && if (!test_bit(HCI_DEBUG_KEYS, &hdev->dev_flags) &&
key->type == HCI_LK_DEBUG_COMBINATION) { key->type == HCI_LK_DEBUG_COMBINATION) {
BT_DBG("%s ignoring debug key", hdev->name); BT_DBG("%s ignoring debug key", hdev->name);
goto not_found; goto not_found;
} }
...@@ -2705,16 +2722,15 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2705,16 +2722,15 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
if (conn) { if (conn) {
if (key->type == HCI_LK_UNAUTH_COMBINATION && if (key->type == HCI_LK_UNAUTH_COMBINATION &&
conn->auth_type != 0xff && conn->auth_type != 0xff && (conn->auth_type & 0x01)) {
(conn->auth_type & 0x01)) {
BT_DBG("%s ignoring unauthenticated key", hdev->name); BT_DBG("%s ignoring unauthenticated key", hdev->name);
goto not_found; goto not_found;
} }
if (key->type == HCI_LK_COMBINATION && key->pin_len < 16 && if (key->type == HCI_LK_COMBINATION && key->pin_len < 16 &&
conn->pending_sec_level == BT_SECURITY_HIGH) { conn->pending_sec_level == BT_SECURITY_HIGH) {
BT_DBG("%s ignoring key unauthenticated for high \ BT_DBG("%s ignoring key unauthenticated for high \
security", hdev->name); security", hdev->name);
goto not_found; goto not_found;
} }
...@@ -2736,7 +2752,8 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2736,7 +2752,8 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_link_key_notify_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_link_key_notify_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_link_key_notify *ev = (void *) skb->data; struct hci_ev_link_key_notify *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2760,12 +2777,13 @@ static inline void hci_link_key_notify_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2760,12 +2777,13 @@ static inline void hci_link_key_notify_evt(struct hci_dev *hdev, struct sk_buff
if (test_bit(HCI_LINK_KEYS, &hdev->dev_flags)) if (test_bit(HCI_LINK_KEYS, &hdev->dev_flags))
hci_add_link_key(hdev, conn, 1, &ev->bdaddr, ev->link_key, hci_add_link_key(hdev, conn, 1, &ev->bdaddr, ev->link_key,
ev->key_type, pin_len); ev->key_type, pin_len);
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_clock_offset_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_clock_offset_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_clock_offset *ev = (void *) skb->data; struct hci_ev_clock_offset *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2788,7 +2806,8 @@ static inline void hci_clock_offset_evt(struct hci_dev *hdev, struct sk_buff *sk ...@@ -2788,7 +2806,8 @@ static inline void hci_clock_offset_evt(struct hci_dev *hdev, struct sk_buff *sk
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_pkt_type_change_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_pkt_type_change_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_pkt_type_change *ev = (void *) skb->data; struct hci_ev_pkt_type_change *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2804,7 +2823,8 @@ static inline void hci_pkt_type_change_evt(struct hci_dev *hdev, struct sk_buff ...@@ -2804,7 +2823,8 @@ static inline void hci_pkt_type_change_evt(struct hci_dev *hdev, struct sk_buff
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_pscan_rep_mode_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_pscan_rep_mode_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_pscan_rep_mode *ev = (void *) skb->data; struct hci_ev_pscan_rep_mode *ev = (void *) skb->data;
struct inquiry_entry *ie; struct inquiry_entry *ie;
...@@ -2822,7 +2842,8 @@ static inline void hci_pscan_rep_mode_evt(struct hci_dev *hdev, struct sk_buff * ...@@ -2822,7 +2842,8 @@ static inline void hci_pscan_rep_mode_evt(struct hci_dev *hdev, struct sk_buff *
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_inquiry_result_with_rssi_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_inquiry_result_with_rssi_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct inquiry_data data; struct inquiry_data data;
int num_rsp = *((__u8 *) skb->data); int num_rsp = *((__u8 *) skb->data);
...@@ -2881,7 +2902,8 @@ static inline void hci_inquiry_result_with_rssi_evt(struct hci_dev *hdev, struct ...@@ -2881,7 +2902,8 @@ static inline void hci_inquiry_result_with_rssi_evt(struct hci_dev *hdev, struct
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_remote_ext_features_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_remote_ext_features_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_remote_ext_features *ev = (void *) skb->data; struct hci_ev_remote_ext_features *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2929,7 +2951,8 @@ static inline void hci_remote_ext_features_evt(struct hci_dev *hdev, struct sk_b ...@@ -2929,7 +2951,8 @@ static inline void hci_remote_ext_features_evt(struct hci_dev *hdev, struct sk_b
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_sync_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_sync_conn_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_sync_conn_complete *ev = (void *) skb->data; struct hci_ev_sync_conn_complete *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -2984,19 +3007,22 @@ static inline void hci_sync_conn_complete_evt(struct hci_dev *hdev, struct sk_bu ...@@ -2984,19 +3007,22 @@ static inline void hci_sync_conn_complete_evt(struct hci_dev *hdev, struct sk_bu
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_sync_conn_changed_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_sync_conn_changed_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
BT_DBG("%s", hdev->name); BT_DBG("%s", hdev->name);
} }
static inline void hci_sniff_subrate_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_sniff_subrate_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_sniff_subrate *ev = (void *) skb->data; struct hci_ev_sniff_subrate *ev = (void *) skb->data;
BT_DBG("%s status %d", hdev->name, ev->status); BT_DBG("%s status %d", hdev->name, ev->status);
} }
static inline void hci_extended_inquiry_result_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_extended_inquiry_result_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct inquiry_data data; struct inquiry_data data;
struct extended_inquiry_info *info = (void *) (skb->data + 1); struct extended_inquiry_info *info = (void *) (skb->data + 1);
...@@ -3062,7 +3088,8 @@ static inline u8 hci_get_auth_req(struct hci_conn *conn) ...@@ -3062,7 +3088,8 @@ static inline u8 hci_get_auth_req(struct hci_conn *conn)
return conn->auth_type; return conn->auth_type;
} }
static inline void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_io_capa_request_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_io_capa_request *ev = (void *) skb->data; struct hci_ev_io_capa_request *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -3081,7 +3108,7 @@ static inline void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff ...@@ -3081,7 +3108,7 @@ static inline void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff
goto unlock; goto unlock;
if (test_bit(HCI_PAIRABLE, &hdev->dev_flags) || if (test_bit(HCI_PAIRABLE, &hdev->dev_flags) ||
(conn->remote_auth & ~0x01) == HCI_AT_NO_BONDING) { (conn->remote_auth & ~0x01) == HCI_AT_NO_BONDING) {
struct hci_cp_io_capability_reply cp; struct hci_cp_io_capability_reply cp;
bacpy(&cp.bdaddr, &ev->bdaddr); bacpy(&cp.bdaddr, &ev->bdaddr);
...@@ -3093,13 +3120,13 @@ static inline void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff ...@@ -3093,13 +3120,13 @@ static inline void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff
cp.authentication = conn->auth_type; cp.authentication = conn->auth_type;
if ((conn->out || test_bit(HCI_CONN_REMOTE_OOB, &conn->flags)) && if ((conn->out || test_bit(HCI_CONN_REMOTE_OOB, &conn->flags)) &&
hci_find_remote_oob_data(hdev, &conn->dst)) hci_find_remote_oob_data(hdev, &conn->dst))
cp.oob_data = 0x01; cp.oob_data = 0x01;
else else
cp.oob_data = 0x00; cp.oob_data = 0x00;
hci_send_cmd(hdev, HCI_OP_IO_CAPABILITY_REPLY, hci_send_cmd(hdev, HCI_OP_IO_CAPABILITY_REPLY,
sizeof(cp), &cp); sizeof(cp), &cp);
} else { } else {
struct hci_cp_io_capability_neg_reply cp; struct hci_cp_io_capability_neg_reply cp;
...@@ -3107,14 +3134,15 @@ static inline void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff ...@@ -3107,14 +3134,15 @@ static inline void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff
cp.reason = HCI_ERROR_PAIRING_NOT_ALLOWED; cp.reason = HCI_ERROR_PAIRING_NOT_ALLOWED;
hci_send_cmd(hdev, HCI_OP_IO_CAPABILITY_NEG_REPLY, hci_send_cmd(hdev, HCI_OP_IO_CAPABILITY_NEG_REPLY,
sizeof(cp), &cp); sizeof(cp), &cp);
} }
unlock: unlock:
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_io_capa_reply_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_io_capa_reply_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_io_capa_reply *ev = (void *) skb->data; struct hci_ev_io_capa_reply *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -3137,7 +3165,7 @@ static inline void hci_io_capa_reply_evt(struct hci_dev *hdev, struct sk_buff *s ...@@ -3137,7 +3165,7 @@ static inline void hci_io_capa_reply_evt(struct hci_dev *hdev, struct sk_buff *s
} }
static inline void hci_user_confirm_request_evt(struct hci_dev *hdev, static inline void hci_user_confirm_request_evt(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_ev_user_confirm_req *ev = (void *) skb->data; struct hci_ev_user_confirm_req *ev = (void *) skb->data;
int loc_mitm, rem_mitm, confirm_hint = 0; int loc_mitm, rem_mitm, confirm_hint = 0;
...@@ -3165,13 +3193,13 @@ static inline void hci_user_confirm_request_evt(struct hci_dev *hdev, ...@@ -3165,13 +3193,13 @@ static inline void hci_user_confirm_request_evt(struct hci_dev *hdev,
if (!conn->connect_cfm_cb && loc_mitm && conn->remote_cap == 0x03) { if (!conn->connect_cfm_cb && loc_mitm && conn->remote_cap == 0x03) {
BT_DBG("Rejecting request: remote device can't provide MITM"); BT_DBG("Rejecting request: remote device can't provide MITM");
hci_send_cmd(hdev, HCI_OP_USER_CONFIRM_NEG_REPLY, hci_send_cmd(hdev, HCI_OP_USER_CONFIRM_NEG_REPLY,
sizeof(ev->bdaddr), &ev->bdaddr); sizeof(ev->bdaddr), &ev->bdaddr);
goto unlock; goto unlock;
} }
/* If no side requires MITM protection; auto-accept */ /* If no side requires MITM protection; auto-accept */
if ((!loc_mitm || conn->remote_cap == 0x03) && if ((!loc_mitm || conn->remote_cap == 0x03) &&
(!rem_mitm || conn->io_capability == 0x03)) { (!rem_mitm || conn->io_capability == 0x03)) {
/* If we're not the initiators request authorization to /* If we're not the initiators request authorization to
* proceed from user space (mgmt_user_confirm with * proceed from user space (mgmt_user_confirm with
...@@ -3183,7 +3211,7 @@ static inline void hci_user_confirm_request_evt(struct hci_dev *hdev, ...@@ -3183,7 +3211,7 @@ static inline void hci_user_confirm_request_evt(struct hci_dev *hdev,
} }
BT_DBG("Auto-accept of user confirmation with %ums delay", BT_DBG("Auto-accept of user confirmation with %ums delay",
hdev->auto_accept_delay); hdev->auto_accept_delay);
if (hdev->auto_accept_delay > 0) { if (hdev->auto_accept_delay > 0) {
int delay = msecs_to_jiffies(hdev->auto_accept_delay); int delay = msecs_to_jiffies(hdev->auto_accept_delay);
...@@ -3192,7 +3220,7 @@ static inline void hci_user_confirm_request_evt(struct hci_dev *hdev, ...@@ -3192,7 +3220,7 @@ static inline void hci_user_confirm_request_evt(struct hci_dev *hdev,
} }
hci_send_cmd(hdev, HCI_OP_USER_CONFIRM_REPLY, hci_send_cmd(hdev, HCI_OP_USER_CONFIRM_REPLY,
sizeof(ev->bdaddr), &ev->bdaddr); sizeof(ev->bdaddr), &ev->bdaddr);
goto unlock; goto unlock;
} }
...@@ -3205,7 +3233,7 @@ static inline void hci_user_confirm_request_evt(struct hci_dev *hdev, ...@@ -3205,7 +3233,7 @@ static inline void hci_user_confirm_request_evt(struct hci_dev *hdev,
} }
static inline void hci_user_passkey_request_evt(struct hci_dev *hdev, static inline void hci_user_passkey_request_evt(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_ev_user_passkey_req *ev = (void *) skb->data; struct hci_ev_user_passkey_req *ev = (void *) skb->data;
...@@ -3219,7 +3247,8 @@ static inline void hci_user_passkey_request_evt(struct hci_dev *hdev, ...@@ -3219,7 +3247,8 @@ static inline void hci_user_passkey_request_evt(struct hci_dev *hdev,
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_simple_pair_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_simple_pair_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_simple_pair_complete *ev = (void *) skb->data; struct hci_ev_simple_pair_complete *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -3247,7 +3276,8 @@ static inline void hci_simple_pair_complete_evt(struct hci_dev *hdev, struct sk_ ...@@ -3247,7 +3276,8 @@ static inline void hci_simple_pair_complete_evt(struct hci_dev *hdev, struct sk_
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_remote_host_features_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_remote_host_features_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_remote_host_features *ev = (void *) skb->data; struct hci_ev_remote_host_features *ev = (void *) skb->data;
struct inquiry_entry *ie; struct inquiry_entry *ie;
...@@ -3285,20 +3315,21 @@ static inline void hci_remote_oob_data_request_evt(struct hci_dev *hdev, ...@@ -3285,20 +3315,21 @@ static inline void hci_remote_oob_data_request_evt(struct hci_dev *hdev,
memcpy(cp.randomizer, data->randomizer, sizeof(cp.randomizer)); memcpy(cp.randomizer, data->randomizer, sizeof(cp.randomizer));
hci_send_cmd(hdev, HCI_OP_REMOTE_OOB_DATA_REPLY, sizeof(cp), hci_send_cmd(hdev, HCI_OP_REMOTE_OOB_DATA_REPLY, sizeof(cp),
&cp); &cp);
} else { } else {
struct hci_cp_remote_oob_data_neg_reply cp; struct hci_cp_remote_oob_data_neg_reply cp;
bacpy(&cp.bdaddr, &ev->bdaddr); bacpy(&cp.bdaddr, &ev->bdaddr);
hci_send_cmd(hdev, HCI_OP_REMOTE_OOB_DATA_NEG_REPLY, sizeof(cp), hci_send_cmd(hdev, HCI_OP_REMOTE_OOB_DATA_NEG_REPLY, sizeof(cp),
&cp); &cp);
} }
unlock: unlock:
hci_dev_unlock(hdev); hci_dev_unlock(hdev);
} }
static inline void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) static inline void hci_le_conn_complete_evt(struct hci_dev *hdev,
struct sk_buff *skb)
{ {
struct hci_ev_le_conn_complete *ev = (void *) skb->data; struct hci_ev_le_conn_complete *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
...@@ -3321,7 +3352,7 @@ static inline void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff ...@@ -3321,7 +3352,7 @@ static inline void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff
if (ev->status) { if (ev->status) {
mgmt_connect_failed(hdev, &ev->bdaddr, conn->type, mgmt_connect_failed(hdev, &ev->bdaddr, conn->type,
conn->dst_type, ev->status); conn->dst_type, ev->status);
hci_proto_connect_cfm(conn, ev->status); hci_proto_connect_cfm(conn, ev->status);
conn->state = BT_CLOSED; conn->state = BT_CLOSED;
hci_conn_del(conn); hci_conn_del(conn);
...@@ -3346,7 +3377,7 @@ static inline void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff ...@@ -3346,7 +3377,7 @@ static inline void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff
} }
static inline void hci_le_adv_report_evt(struct hci_dev *hdev, static inline void hci_le_adv_report_evt(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
u8 num_reports = skb->data[0]; u8 num_reports = skb->data[0];
void *ptr = &skb->data[1]; void *ptr = &skb->data[1];
...@@ -3368,7 +3399,7 @@ static inline void hci_le_adv_report_evt(struct hci_dev *hdev, ...@@ -3368,7 +3399,7 @@ static inline void hci_le_adv_report_evt(struct hci_dev *hdev,
} }
static inline void hci_le_ltk_request_evt(struct hci_dev *hdev, static inline void hci_le_ltk_request_evt(struct hci_dev *hdev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct hci_ev_le_ltk_req *ev = (void *) skb->data; struct hci_ev_le_ltk_req *ev = (void *) skb->data;
struct hci_cp_le_ltk_reply cp; struct hci_cp_le_ltk_reply cp;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment