Commit 98e0f7ea authored by Marcel Holtmann's avatar Marcel Holtmann Committed by Johan Hedberg

Bluetooth: Remove l2cap_conn->src and l2cap_conn->dst usage from L2CAP

The l2cap_conn->src and l2cap_conn->dst addresses are just a pointers
to hci_conn structure. Use hci_conn->hdev->bdaddr and hci_conn->dst
directly instead.
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
parent ce39fb4e
...@@ -1381,7 +1381,8 @@ static void l2cap_le_conn_ready(struct l2cap_conn *conn) ...@@ -1381,7 +1381,8 @@ static void l2cap_le_conn_ready(struct l2cap_conn *conn)
/* Check if we have socket listening on cid */ /* Check if we have socket listening on cid */
pchan = l2cap_global_chan_by_scid(BT_LISTEN, L2CAP_CID_ATT, pchan = l2cap_global_chan_by_scid(BT_LISTEN, L2CAP_CID_ATT,
conn->src, conn->dst); &conn->hcon->hdev->bdaddr,
&conn->hcon->dst);
if (!pchan) if (!pchan)
return; return;
...@@ -1399,8 +1400,8 @@ static void l2cap_le_conn_ready(struct l2cap_conn *conn) ...@@ -1399,8 +1400,8 @@ static void l2cap_le_conn_ready(struct l2cap_conn *conn)
chan->dcid = L2CAP_CID_ATT; chan->dcid = L2CAP_CID_ATT;
bacpy(&bt_sk(chan->sk)->src, conn->src); bacpy(&bt_sk(chan->sk)->src, &conn->hcon->hdev->bdaddr);
bacpy(&bt_sk(chan->sk)->dst, conn->dst); bacpy(&bt_sk(chan->sk)->dst, &conn->hcon->dst);
__l2cap_chan_add(conn, chan); __l2cap_chan_add(conn, chan);
...@@ -1665,9 +1666,6 @@ static struct l2cap_conn *l2cap_conn_add(struct hci_conn *hcon) ...@@ -1665,9 +1666,6 @@ static struct l2cap_conn *l2cap_conn_add(struct hci_conn *hcon)
break; break;
} }
conn->src = &hcon->hdev->bdaddr;
conn->dst = &hcon->dst;
conn->feat_mask = 0; conn->feat_mask = 0;
if (hcon->type == ACL_LINK) if (hcon->type == ACL_LINK)
...@@ -1861,7 +1859,7 @@ int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, ...@@ -1861,7 +1859,7 @@ int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
} }
/* Update source addr of the socket */ /* Update source addr of the socket */
bacpy(src, conn->src); bacpy(src, &hdev->bdaddr);
l2cap_chan_unlock(chan); l2cap_chan_unlock(chan);
l2cap_chan_add(conn, chan); l2cap_chan_add(conn, chan);
...@@ -3761,7 +3759,9 @@ static struct l2cap_chan *l2cap_connect(struct l2cap_conn *conn, ...@@ -3761,7 +3759,9 @@ static struct l2cap_chan *l2cap_connect(struct l2cap_conn *conn,
BT_DBG("psm 0x%2.2x scid 0x%4.4x", __le16_to_cpu(psm), scid); BT_DBG("psm 0x%2.2x scid 0x%4.4x", __le16_to_cpu(psm), scid);
/* Check if we have socket listening on psm */ /* Check if we have socket listening on psm */
pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, conn->src, conn->dst); pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm,
&conn->hcon->hdev->bdaddr,
&conn->hcon->dst);
if (!pchan) { if (!pchan) {
result = L2CAP_CR_BAD_PSM; result = L2CAP_CR_BAD_PSM;
goto sendresp; goto sendresp;
...@@ -3799,8 +3799,8 @@ static struct l2cap_chan *l2cap_connect(struct l2cap_conn *conn, ...@@ -3799,8 +3799,8 @@ static struct l2cap_chan *l2cap_connect(struct l2cap_conn *conn,
*/ */
conn->hcon->disc_timeout = HCI_DISCONN_TIMEOUT; conn->hcon->disc_timeout = HCI_DISCONN_TIMEOUT;
bacpy(&bt_sk(sk)->src, conn->src); bacpy(&bt_sk(sk)->src, &conn->hcon->hdev->bdaddr);
bacpy(&bt_sk(sk)->dst, conn->dst); bacpy(&bt_sk(sk)->dst, &conn->hcon->dst);
chan->psm = psm; chan->psm = psm;
chan->dcid = scid; chan->dcid = scid;
chan->local_amp_id = amp_id; chan->local_amp_id = amp_id;
...@@ -4479,7 +4479,8 @@ static int l2cap_create_channel_req(struct l2cap_conn *conn, ...@@ -4479,7 +4479,8 @@ static int l2cap_create_channel_req(struct l2cap_conn *conn,
struct amp_mgr *mgr = conn->hcon->amp_mgr; struct amp_mgr *mgr = conn->hcon->amp_mgr;
struct hci_conn *hs_hcon; struct hci_conn *hs_hcon;
hs_hcon = hci_conn_hash_lookup_ba(hdev, AMP_LINK, conn->dst); hs_hcon = hci_conn_hash_lookup_ba(hdev, AMP_LINK,
&conn->hcon->dst);
if (!hs_hcon) { if (!hs_hcon) {
hci_dev_put(hdev); hci_dev_put(hdev);
return -EBADSLT; return -EBADSLT;
...@@ -4922,7 +4923,7 @@ static inline int l2cap_move_channel_req(struct l2cap_conn *conn, ...@@ -4922,7 +4923,7 @@ static inline int l2cap_move_channel_req(struct l2cap_conn *conn,
*/ */
if ((__chan_is_moving(chan) || if ((__chan_is_moving(chan) ||
chan->move_role != L2CAP_MOVE_ROLE_NONE) && chan->move_role != L2CAP_MOVE_ROLE_NONE) &&
bacmp(conn->src, conn->dst) > 0) { bacmp(&conn->hcon->hdev->bdaddr, &conn->hcon->dst) > 0) {
result = L2CAP_MR_COLLISION; result = L2CAP_MR_COLLISION;
goto send_move_response; goto send_move_response;
} }
...@@ -6437,7 +6438,8 @@ static void l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm, ...@@ -6437,7 +6438,8 @@ static void l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm,
if (hcon->type != ACL_LINK) if (hcon->type != ACL_LINK)
goto drop; goto drop;
chan = l2cap_global_chan_by_psm(0, psm, conn->src, conn->dst); chan = l2cap_global_chan_by_psm(0, psm, &conn->hcon->hdev->bdaddr,
&conn->hcon->dst);
if (!chan) if (!chan)
goto drop; goto drop;
...@@ -6466,7 +6468,8 @@ static void l2cap_att_channel(struct l2cap_conn *conn, ...@@ -6466,7 +6468,8 @@ static void l2cap_att_channel(struct l2cap_conn *conn,
goto drop; goto drop;
chan = l2cap_global_chan_by_scid(BT_CONNECTED, L2CAP_CID_ATT, chan = l2cap_global_chan_by_scid(BT_CONNECTED, L2CAP_CID_ATT,
conn->src, conn->dst); &conn->hcon->hdev->bdaddr,
&conn->hcon->dst);
if (!chan) if (!chan)
goto drop; goto drop;
......
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