Bluetooth: Introduce hci_dev_test_flag helper macro
Instead of manually coding test_bit on hdev->dev_flags all the time, use hci_dev_test_flag helper macro. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
committed by
Johan Hedberg
parent
cc91cb042c
commit
d7a5a11d7f
+46
-46
@@ -265,7 +265,7 @@ static void hci_cc_write_local_name(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_set_local_name_complete(hdev, sent, status);
|
||||
else if (!status)
|
||||
memcpy(hdev->dev_name, sent, HCI_MAX_NAME_LENGTH);
|
||||
@@ -282,8 +282,8 @@ static void hci_cc_read_local_name(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
if (rp->status)
|
||||
return;
|
||||
|
||||
if (test_bit(HCI_SETUP, &hdev->dev_flags) ||
|
||||
test_bit(HCI_CONFIG, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_SETUP) ||
|
||||
hci_dev_test_flag(hdev, HCI_CONFIG))
|
||||
memcpy(hdev->dev_name, rp->name, HCI_MAX_NAME_LENGTH);
|
||||
}
|
||||
|
||||
@@ -309,7 +309,7 @@ static void hci_cc_write_auth_enable(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
clear_bit(HCI_AUTH, &hdev->flags);
|
||||
}
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_auth_enable_complete(hdev, status);
|
||||
|
||||
hci_dev_unlock(hdev);
|
||||
@@ -404,7 +404,7 @@ static void hci_cc_write_class_of_dev(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
if (status == 0)
|
||||
memcpy(hdev->dev_class, sent, 3);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_set_class_of_dev_complete(hdev, sent, status);
|
||||
|
||||
hci_dev_unlock(hdev);
|
||||
@@ -497,7 +497,7 @@ static void hci_cc_write_ssp_mode(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
hdev->features[1][0] &= ~LMP_HOST_SSP;
|
||||
}
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_ssp_enable_complete(hdev, sent->mode, status);
|
||||
else if (!status) {
|
||||
if (sent->mode)
|
||||
@@ -529,7 +529,7 @@ static void hci_cc_write_sc_support(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
hdev->features[1][0] &= ~LMP_HOST_SC;
|
||||
}
|
||||
|
||||
if (!test_bit(HCI_MGMT, &hdev->dev_flags) && !status) {
|
||||
if (!hci_dev_test_flag(hdev, HCI_MGMT) && !status) {
|
||||
if (sent->support)
|
||||
set_bit(HCI_SC_ENABLED, &hdev->dev_flags);
|
||||
else
|
||||
@@ -548,8 +548,8 @@ static void hci_cc_read_local_version(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
if (rp->status)
|
||||
return;
|
||||
|
||||
if (test_bit(HCI_SETUP, &hdev->dev_flags) ||
|
||||
test_bit(HCI_CONFIG, &hdev->dev_flags)) {
|
||||
if (hci_dev_test_flag(hdev, HCI_SETUP) ||
|
||||
hci_dev_test_flag(hdev, HCI_CONFIG)) {
|
||||
hdev->hci_ver = rp->hci_ver;
|
||||
hdev->hci_rev = __le16_to_cpu(rp->hci_rev);
|
||||
hdev->lmp_ver = rp->lmp_ver;
|
||||
@@ -568,8 +568,8 @@ static void hci_cc_read_local_commands(struct hci_dev *hdev,
|
||||
if (rp->status)
|
||||
return;
|
||||
|
||||
if (test_bit(HCI_SETUP, &hdev->dev_flags) ||
|
||||
test_bit(HCI_CONFIG, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_SETUP) ||
|
||||
hci_dev_test_flag(hdev, HCI_CONFIG))
|
||||
memcpy(hdev->commands, rp->commands, sizeof(hdev->commands));
|
||||
}
|
||||
|
||||
@@ -691,7 +691,7 @@ static void hci_cc_read_bd_addr(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
if (test_bit(HCI_INIT, &hdev->flags))
|
||||
bacpy(&hdev->bdaddr, &rp->bdaddr);
|
||||
|
||||
if (test_bit(HCI_SETUP, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_SETUP))
|
||||
bacpy(&hdev->setup_addr, &rp->bdaddr);
|
||||
}
|
||||
|
||||
@@ -900,7 +900,7 @@ static void hci_cc_pin_code_reply(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_pin_code_reply_complete(hdev, &rp->bdaddr, rp->status);
|
||||
|
||||
if (rp->status)
|
||||
@@ -926,7 +926,7 @@ static void hci_cc_pin_code_neg_reply(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_pin_code_neg_reply_complete(hdev, &rp->bdaddr,
|
||||
rp->status);
|
||||
|
||||
@@ -985,7 +985,7 @@ static void hci_cc_user_confirm_reply(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_user_confirm_reply_complete(hdev, &rp->bdaddr, ACL_LINK, 0,
|
||||
rp->status);
|
||||
|
||||
@@ -1001,7 +1001,7 @@ static void hci_cc_user_confirm_neg_reply(struct hci_dev *hdev,
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_user_confirm_neg_reply_complete(hdev, &rp->bdaddr,
|
||||
ACL_LINK, 0, rp->status);
|
||||
|
||||
@@ -1016,7 +1016,7 @@ static void hci_cc_user_passkey_reply(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_user_passkey_reply_complete(hdev, &rp->bdaddr, ACL_LINK,
|
||||
0, rp->status);
|
||||
|
||||
@@ -1032,7 +1032,7 @@ static void hci_cc_user_passkey_neg_reply(struct hci_dev *hdev,
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_user_passkey_neg_reply_complete(hdev, &rp->bdaddr,
|
||||
ACL_LINK, 0, rp->status);
|
||||
|
||||
@@ -1229,7 +1229,7 @@ static void hci_cc_le_set_scan_enable(struct hci_dev *hdev,
|
||||
if (test_and_clear_bit(HCI_LE_SCAN_INTERRUPTED,
|
||||
&hdev->dev_flags))
|
||||
hci_discovery_set_state(hdev, DISCOVERY_STOPPED);
|
||||
else if (!test_bit(HCI_LE_ADV, &hdev->dev_flags) &&
|
||||
else if (!hci_dev_test_flag(hdev, HCI_LE_ADV) &&
|
||||
hdev->discovery.state == DISCOVERY_FINDING)
|
||||
mgmt_reenable_advertising(hdev);
|
||||
|
||||
@@ -1769,7 +1769,7 @@ static void hci_cs_remote_name_req(struct hci_dev *hdev, __u8 status)
|
||||
|
||||
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
hci_check_pending_name(hdev, conn, &cp->bdaddr, NULL, 0);
|
||||
|
||||
if (!conn)
|
||||
@@ -2118,7 +2118,7 @@ static void hci_inquiry_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
smp_mb__after_atomic(); /* wake_up_bit advises about this barrier */
|
||||
wake_up_bit(&hdev->flags, HCI_INQUIRY);
|
||||
|
||||
if (!test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
return;
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
@@ -2154,7 +2154,7 @@ static void hci_inquiry_result_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
if (!num_rsp)
|
||||
return;
|
||||
|
||||
if (test_bit(HCI_PERIODIC_INQ, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_PERIODIC_INQ))
|
||||
return;
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
@@ -2304,8 +2304,8 @@ static void hci_conn_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
* connection. These features are only touched through mgmt so
|
||||
* only do the checks if HCI_MGMT is set.
|
||||
*/
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags) &&
|
||||
!test_bit(HCI_CONNECTABLE, &hdev->dev_flags) &&
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT) &&
|
||||
!hci_dev_test_flag(hdev, HCI_CONNECTABLE) &&
|
||||
!hci_bdaddr_list_lookup(&hdev->whitelist, &ev->bdaddr,
|
||||
BDADDR_BREDR)) {
|
||||
hci_reject_conn(hdev, &ev->bdaddr);
|
||||
@@ -2542,7 +2542,7 @@ static void hci_remote_name_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
|
||||
|
||||
if (!test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
goto check_auth;
|
||||
|
||||
if (ev->status == 0)
|
||||
@@ -2626,7 +2626,7 @@ static void hci_encrypt_change_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
* connections that are not encrypted with AES-CCM
|
||||
* using a P-256 authenticated combination key.
|
||||
*/
|
||||
if (test_bit(HCI_SC_ONLY, &hdev->dev_flags) &&
|
||||
if (hci_dev_test_flag(hdev, HCI_SC_ONLY) &&
|
||||
(!test_bit(HCI_CONN_AES_CCM, &conn->flags) ||
|
||||
conn->key_type != HCI_LK_AUTH_COMBINATION_P256)) {
|
||||
hci_connect_cfm(conn, HCI_ERROR_AUTH_FAILURE);
|
||||
@@ -3331,11 +3331,11 @@ static void hci_pin_code_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
hci_conn_drop(conn);
|
||||
}
|
||||
|
||||
if (!test_bit(HCI_BONDABLE, &hdev->dev_flags) &&
|
||||
if (!hci_dev_test_flag(hdev, HCI_BONDABLE) &&
|
||||
!test_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags)) {
|
||||
hci_send_cmd(hdev, HCI_OP_PIN_CODE_NEG_REPLY,
|
||||
sizeof(ev->bdaddr), &ev->bdaddr);
|
||||
} else if (test_bit(HCI_MGMT, &hdev->dev_flags)) {
|
||||
} else if (hci_dev_test_flag(hdev, HCI_MGMT)) {
|
||||
u8 secure;
|
||||
|
||||
if (conn->pending_sec_level == BT_SECURITY_HIGH)
|
||||
@@ -3391,7 +3391,7 @@ static void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
BT_DBG("%s", hdev->name);
|
||||
|
||||
if (!test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
return;
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
@@ -3465,7 +3465,7 @@ static void hci_link_key_notify_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
set_bit(HCI_CONN_NEW_LINK_KEY, &conn->flags);
|
||||
conn_set_key(conn, ev->key_type, conn->pin_length);
|
||||
|
||||
if (!test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
goto unlock;
|
||||
|
||||
key = hci_add_link_key(hdev, conn, &ev->bdaddr, ev->link_key,
|
||||
@@ -3487,7 +3487,7 @@ static void hci_link_key_notify_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
* store_hint being 0).
|
||||
*/
|
||||
if (key->type == HCI_LK_DEBUG_COMBINATION &&
|
||||
!test_bit(HCI_KEEP_DEBUG_KEYS, &hdev->dev_flags)) {
|
||||
!hci_dev_test_flag(hdev, HCI_KEEP_DEBUG_KEYS)) {
|
||||
list_del_rcu(&key->list);
|
||||
kfree_rcu(key, rcu);
|
||||
goto unlock;
|
||||
@@ -3570,7 +3570,7 @@ static void hci_inquiry_result_with_rssi_evt(struct hci_dev *hdev,
|
||||
if (!num_rsp)
|
||||
return;
|
||||
|
||||
if (test_bit(HCI_PERIODIC_INQ, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_PERIODIC_INQ))
|
||||
return;
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
@@ -3776,7 +3776,7 @@ static void hci_extended_inquiry_result_evt(struct hci_dev *hdev,
|
||||
if (!num_rsp)
|
||||
return;
|
||||
|
||||
if (test_bit(HCI_PERIODIC_INQ, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_PERIODIC_INQ))
|
||||
return;
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
@@ -3794,7 +3794,7 @@ static void hci_extended_inquiry_result_evt(struct hci_dev *hdev,
|
||||
data.rssi = info->rssi;
|
||||
data.ssp_mode = 0x01;
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
name_known = eir_has_data_type(info->data,
|
||||
sizeof(info->data),
|
||||
EIR_NAME_COMPLETE);
|
||||
@@ -3898,7 +3898,7 @@ static u8 bredr_oob_data_present(struct hci_conn *conn)
|
||||
* information. However it can only be trusted when
|
||||
* not in Secure Connection Only mode.
|
||||
*/
|
||||
if (!test_bit(HCI_SC_ONLY, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_SC_ONLY))
|
||||
return data->present;
|
||||
|
||||
/* When Secure Connections Only mode is enabled, then
|
||||
@@ -3942,13 +3942,13 @@ static void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
hci_conn_hold(conn);
|
||||
|
||||
if (!test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
goto unlock;
|
||||
|
||||
/* Allow pairing if we're pairable, the initiators of the
|
||||
* pairing or if the remote is not requesting bonding.
|
||||
*/
|
||||
if (test_bit(HCI_BONDABLE, &hdev->dev_flags) ||
|
||||
if (hci_dev_test_flag(hdev, HCI_BONDABLE) ||
|
||||
test_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags) ||
|
||||
(conn->remote_auth & ~0x01) == HCI_AT_NO_BONDING) {
|
||||
struct hci_cp_io_capability_reply cp;
|
||||
@@ -3974,7 +3974,7 @@ static void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
/* If we're not bondable, force one of the non-bondable
|
||||
* authentication requirement values.
|
||||
*/
|
||||
if (!test_bit(HCI_BONDABLE, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_BONDABLE))
|
||||
conn->auth_type &= HCI_AT_NO_BONDING_MITM;
|
||||
|
||||
cp.authentication = conn->auth_type;
|
||||
@@ -4029,7 +4029,7 @@ static void hci_user_confirm_request_evt(struct hci_dev *hdev,
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (!test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
goto unlock;
|
||||
|
||||
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
|
||||
@@ -4100,7 +4100,7 @@ static void hci_user_passkey_request_evt(struct hci_dev *hdev,
|
||||
|
||||
BT_DBG("%s", hdev->name);
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_user_passkey_request(hdev, &ev->bdaddr, ACL_LINK, 0);
|
||||
}
|
||||
|
||||
@@ -4119,7 +4119,7 @@ static void hci_user_passkey_notify_evt(struct hci_dev *hdev,
|
||||
conn->passkey_notify = __le32_to_cpu(ev->passkey);
|
||||
conn->passkey_entered = 0;
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_user_passkey_notify(hdev, &conn->dst, conn->type,
|
||||
conn->dst_type, conn->passkey_notify,
|
||||
conn->passkey_entered);
|
||||
@@ -4157,7 +4157,7 @@ static void hci_keypress_notify_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
return;
|
||||
}
|
||||
|
||||
if (test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
mgmt_user_passkey_notify(hdev, &conn->dst, conn->type,
|
||||
conn->dst_type, conn->passkey_notify,
|
||||
conn->passkey_entered);
|
||||
@@ -4226,7 +4226,7 @@ static void hci_remote_oob_data_request_evt(struct hci_dev *hdev,
|
||||
|
||||
hci_dev_lock(hdev);
|
||||
|
||||
if (!test_bit(HCI_MGMT, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_MGMT))
|
||||
goto unlock;
|
||||
|
||||
data = hci_find_remote_oob_data(hdev, &ev->bdaddr, BDADDR_BREDR);
|
||||
@@ -4243,7 +4243,7 @@ static void hci_remote_oob_data_request_evt(struct hci_dev *hdev,
|
||||
struct hci_cp_remote_oob_ext_data_reply cp;
|
||||
|
||||
bacpy(&cp.bdaddr, &ev->bdaddr);
|
||||
if (test_bit(HCI_SC_ONLY, &hdev->dev_flags)) {
|
||||
if (hci_dev_test_flag(hdev, HCI_SC_ONLY)) {
|
||||
memset(cp.hash192, 0, sizeof(cp.hash192));
|
||||
memset(cp.rand192, 0, sizeof(cp.rand192));
|
||||
} else {
|
||||
@@ -4432,7 +4432,7 @@ static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
if (conn->out) {
|
||||
conn->resp_addr_type = ev->bdaddr_type;
|
||||
bacpy(&conn->resp_addr, &ev->bdaddr);
|
||||
if (test_bit(HCI_PRIVACY, &hdev->dev_flags)) {
|
||||
if (hci_dev_test_flag(hdev, HCI_PRIVACY)) {
|
||||
conn->init_addr_type = ADDR_LE_DEV_RANDOM;
|
||||
bacpy(&conn->init_addr, &hdev->rpa);
|
||||
} else {
|
||||
@@ -4658,7 +4658,7 @@ static void process_adv_report(struct hci_dev *hdev, u8 type, bdaddr_t *bdaddr,
|
||||
/* If the controller is not using resolvable random
|
||||
* addresses, then this report can be ignored.
|
||||
*/
|
||||
if (!test_bit(HCI_PRIVACY, &hdev->dev_flags))
|
||||
if (!hci_dev_test_flag(hdev, HCI_PRIVACY))
|
||||
return;
|
||||
|
||||
/* If the local IRK of the controller does not match
|
||||
|
||||
Reference in New Issue
Block a user