diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2014-07-03 12:33:49 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2014-07-03 12:45:08 -0400 |
commit | 912b42ef05a1e9f72a82c21d678a29c5055045d5 (patch) | |
tree | e0dc92cbed6b9bb10e9cb465ba9110234050c190 /net/bluetooth/hci_event.c | |
parent | 435a13d839abe8c8b9ebe1be635d1ab8f7352f56 (diff) |
Bluetooth: Use hci_conn_params in pend_le_conns
Since the connection parameters are always a basis for adding entries to
hdev->pend_le_conns (so far of type bdaddr_list) it's simpler and more
efficient to have the parameters themselves be the entries in the
pend_le_conns list. We do this by adding another list_head to the
hci_conn_params struct.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/hci_event.c')
-rw-r--r-- | net/bluetooth/hci_event.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 643c5a8d4050..4ebfcedd9ae7 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c | |||
@@ -2209,7 +2209,7 @@ static void hci_disconn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) | |||
2209 | /* Fall through */ | 2209 | /* Fall through */ |
2210 | 2210 | ||
2211 | case HCI_AUTO_CONN_ALWAYS: | 2211 | case HCI_AUTO_CONN_ALWAYS: |
2212 | hci_pend_le_conn_add(hdev, &conn->dst, conn->dst_type); | 2212 | hci_pend_le_conn_add(hdev, params); |
2213 | break; | 2213 | break; |
2214 | 2214 | ||
2215 | default: | 2215 | default: |
@@ -4036,6 +4036,7 @@ static void hci_disconn_phylink_complete_evt(struct hci_dev *hdev, | |||
4036 | static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) | 4036 | static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) |
4037 | { | 4037 | { |
4038 | struct hci_ev_le_conn_complete *ev = (void *) skb->data; | 4038 | struct hci_ev_le_conn_complete *ev = (void *) skb->data; |
4039 | struct hci_conn_params *params; | ||
4039 | struct hci_conn *conn; | 4040 | struct hci_conn *conn; |
4040 | struct smp_irk *irk; | 4041 | struct smp_irk *irk; |
4041 | u8 addr_type; | 4042 | u8 addr_type; |
@@ -4152,7 +4153,9 @@ static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) | |||
4152 | 4153 | ||
4153 | hci_proto_connect_cfm(conn, ev->status); | 4154 | hci_proto_connect_cfm(conn, ev->status); |
4154 | 4155 | ||
4155 | hci_pend_le_conn_del(hdev, &conn->dst, conn->dst_type); | 4156 | params = hci_conn_params_lookup(hdev, &conn->dst, conn->dst_type); |
4157 | if (params) | ||
4158 | hci_pend_le_conn_del(hdev, params); | ||
4156 | 4159 | ||
4157 | unlock: | 4160 | unlock: |
4158 | hci_dev_unlock(hdev); | 4161 | hci_dev_unlock(hdev); |