All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Guedes <andre.guedes@openbossa.org>
To: linux-bluetooth@vger.kernel.org
Cc: Andre Guedes <andre.guedes@openbossa.org>
Subject: [PATCH v2 08/11] Bluetooth: Add 'dst_type' param to hci_conn_add()
Date: Fri, 20 May 2011 21:10:42 -0300	[thread overview]
Message-ID: <1305936645-15007-8-git-send-email-andre.guedes@openbossa.org> (raw)
In-Reply-To: <1305936645-15007-1-git-send-email-andre.guedes@openbossa.org>

The address type must be considered to create LE struct hci_conn
objects. For non-LE this parameter is ignored.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
---
 include/net/bluetooth/hci_core.h |    3 ++-
 net/bluetooth/hci_conn.c         |   12 ++++++++----
 net/bluetooth/hci_event.c        |   11 +++++++----
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 539eb85..486224d 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -425,7 +425,8 @@ void hci_add_sco(struct hci_conn *conn, __u16 handle);
 void hci_setup_sync(struct hci_conn *conn, __u16 handle);
 void hci_sco_setup(struct hci_conn *conn, __u8 status);
 
-struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst);
+struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst,
+								__u8 dst_type);
 int hci_conn_del(struct hci_conn *conn);
 void hci_conn_hash_flush(struct hci_dev *hdev);
 void hci_conn_check_pending(struct hci_dev *hdev);
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 3163330..84ad32b 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -282,7 +282,8 @@ static void hci_conn_auto_accept(unsigned long arg)
 	hci_dev_unlock(hdev);
 }
 
-struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)
+struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst,
+								__u8 dst_type)
 {
 	struct hci_conn *conn;
 
@@ -319,6 +320,9 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)
 	case ESCO_LINK:
 		conn->pkt_type = hdev->esco_type & ~EDR_ESCO_MASK;
 		break;
+	case LE_LINK:
+		conn->dst_type = dst_type;
+		break;
 	}
 
 	skb_queue_head_init(&conn->data_q);
@@ -450,7 +454,7 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8
 		le = hci_conn_hash_lookup_ba(hdev, LE_LINK, dst);
 		if (le)
 			return ERR_PTR(-EBUSY);
-		le = hci_conn_add(hdev, LE_LINK, dst);
+		le = hci_conn_add(hdev, LE_LINK, dst, 0);
 		if (!le)
 			return ERR_PTR(-ENOMEM);
 		if (le->state == BT_OPEN)
@@ -463,7 +467,7 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8
 
 	acl = hci_conn_hash_lookup_ba(hdev, ACL_LINK, dst);
 	if (!acl) {
-		acl = hci_conn_add(hdev, ACL_LINK, dst);
+		acl = hci_conn_add(hdev, ACL_LINK, dst, 0);
 		if (!acl)
 			return NULL;
 	}
@@ -482,7 +486,7 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8
 
 	sco = hci_conn_hash_lookup_ba(hdev, type, dst);
 	if (!sco) {
-		sco = hci_conn_add(hdev, type, dst);
+		sco = hci_conn_add(hdev, type, dst, 0);
 		if (!sco) {
 			hci_conn_put(acl);
 			return NULL;
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 8d6dc1e..2710332 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -913,7 +913,7 @@ static inline void hci_cs_create_conn(struct hci_dev *hdev, __u8 status)
 		}
 	} else {
 		if (!conn) {
-			conn = hci_conn_add(hdev, ACL_LINK, &cp->bdaddr);
+			conn = hci_conn_add(hdev, ACL_LINK, &cp->bdaddr, 0);
 			if (conn) {
 				conn->out = 1;
 				conn->link_mode |= HCI_LM_MASTER;
@@ -1236,7 +1236,8 @@ static void hci_cs_le_create_conn(struct hci_dev *hdev, __u8 status)
 		}
 	} else {
 		if (!conn) {
-			conn = hci_conn_add(hdev, LE_LINK, &cp->peer_addr);
+			conn = hci_conn_add(hdev, LE_LINK, &cp->peer_addr,
+						cp->peer_addr_type);
 			if (conn)
 				conn->out = 1;
 			else
@@ -1400,7 +1401,8 @@ static inline void hci_conn_request_evt(struct hci_dev *hdev, struct sk_buff *sk
 
 		conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr);
 		if (!conn) {
-			conn = hci_conn_add(hdev, ev->link_type, &ev->bdaddr);
+			conn = hci_conn_add(hdev, ev->link_type,
+							&ev->bdaddr, 0);
 			if (!conn) {
 				BT_ERR("No memory for new connection");
 				hci_dev_unlock(hdev);
@@ -2684,7 +2686,8 @@ static inline void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff
 
 	conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &ev->bdaddr);
 	if (!conn) {
-		conn = hci_conn_add(hdev, LE_LINK, &ev->bdaddr);
+		conn = hci_conn_add(hdev, LE_LINK, &ev->bdaddr,
+							ev->bdaddr_type);
 		if (!conn) {
 			BT_ERR("No memory for new connection");
 			hci_dev_unlock(hdev);
-- 
1.7.4.1


  parent reply	other threads:[~2011-05-21  0:10 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-21  0:10 [PATCH v2 01/11] Bluetooth: Add advertising report meta event structs Andre Guedes
2011-05-21  0:10 ` [PATCH v2 02/11] Bluetooth: LE advertising cache Andre Guedes
2011-05-21  0:10 ` [PATCH v2 03/11] Bluetooth: Add Advertising Report Meta Event handler Andre Guedes
2011-05-21  0:10 ` [PATCH v2 04/11] Bluetooth: LE Set Scan Enable command complete event Andre Guedes
2011-05-24 10:42   ` Ville Tervo
2011-05-25 16:42     ` Andre Guedes
2011-05-21  0:10 ` [PATCH v2 05/11] Bluetooth: Clear advertising cache before scanning Andre Guedes
2011-05-24 10:51   ` Ville Tervo
2011-05-21  0:10 ` [PATCH v2 06/11] Bluetooth: Advertising entries lifetime Andre Guedes
2011-06-07  5:18   ` Luiz Augusto von Dentz
2011-06-07 15:02     ` Johan Hedberg
2011-06-07 15:32       ` Anderson Lizardo
2011-06-07 19:08     ` Andre Guedes
2011-06-09 18:20       ` Claudio Takahasi
2011-05-21  0:10 ` [PATCH v2 07/11] Bluetooth: Add 'dst_type' field to struct hci_conn Andre Guedes
2011-05-24 11:08   ` Ville Tervo
2011-05-21  0:10 ` Andre Guedes [this message]
2011-05-21  0:10 ` [PATCH v2 09/11] Bluetooth: Remove useless check in hci_connect() Andre Guedes
2011-05-24 11:13   ` Ville Tervo
2011-05-21  0:10 ` [PATCH v2 10/11] Bluetooth: Check advertising cache " Andre Guedes
2011-05-24 11:15   ` Ville Tervo
2011-05-21  0:10 ` [PATCH v2 11/11] Bluetooth: Set 'peer_addr_type' in hci_le_connect() Andre Guedes
2011-05-24 11:16   ` Ville Tervo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1305936645-15007-8-git-send-email-andre.guedes@openbossa.org \
    --to=andre.guedes@openbossa.org \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.