From: Andre Guedes Date: Tue, 31 May 2011 17:20:54 +0000 (-0300) Subject: Bluetooth: Add 'dst_type' field to struct hci_conn X-Git-Tag: firefly_0821_release~7613^2~525 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=149c097ce73e6f301c8d257828334506028be307;p=firefly-linux-kernel-4.4.55.git Bluetooth: Add 'dst_type' field to struct hci_conn This patch adds a new field (dst_type) to the struct hci_conn which holds the type of the destination address (bdaddr_t dst). This approach is needed in order to use the struct hci_conn as an abstraction of LE connections in HCI Layer. For non-LE this field is ignored. This patch also set properly the 'dst_type' field after initializing LE hci_conn structures. Change-Id: I1e363bb6de263fdb1fe976a5a16ed5debc9b8c0c Signed-off-by: Andre Guedes Signed-off-by: Gustavo F. Padovan --- diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 90a921cfd23d..924e1720567e 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -224,6 +224,7 @@ struct hci_conn { spinlock_t lock; bdaddr_t dst; + __u8 dst_type; __u16 handle; __u16 state; __u8 mode; diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 0fc8b6f158a5..cfc664a99453 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -1236,10 +1236,12 @@ static void hci_cs_le_create_conn(struct hci_dev *hdev, __u8 status) } else { if (!conn) { conn = hci_conn_add(hdev, LE_LINK, 0, &cp->peer_addr); - if (conn) + if (conn) { + conn->dst_type = cp->peer_addr_type; conn->out = 1; - else + } else { BT_ERR("No memory for new connection"); + } } } @@ -2698,6 +2700,8 @@ static inline void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff hci_dev_unlock(hdev); return; } + + conn->dst_type = ev->bdaddr_type; } if (ev->status) {