Bluetooth: Access CMTP session addresses through L2CAP channel

The L2CAP socket structure does not contain the address information
anymore. They need to be accessed through the L2CAP channel.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
Marcel Holtmann 2013-10-13 09:49:55 -07:00 committed by Johan Hedberg
parent 24bc10cad3
commit 88f1fd2708

View File

@ -340,20 +340,20 @@ int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock)
down_write(&cmtp_session_sem); down_write(&cmtp_session_sem);
s = __cmtp_get_session(&bt_sk(sock->sk)->dst); s = __cmtp_get_session(&l2cap_pi(sock->sk)->chan->dst);
if (s && s->state == BT_CONNECTED) { if (s && s->state == BT_CONNECTED) {
err = -EEXIST; err = -EEXIST;
goto failed; goto failed;
} }
bacpy(&session->bdaddr, &bt_sk(sock->sk)->dst); bacpy(&session->bdaddr, &l2cap_pi(sock->sk)->chan->dst);
session->mtu = min_t(uint, l2cap_pi(sock->sk)->chan->omtu, session->mtu = min_t(uint, l2cap_pi(sock->sk)->chan->omtu,
l2cap_pi(sock->sk)->chan->imtu); l2cap_pi(sock->sk)->chan->imtu);
BT_DBG("mtu %d", session->mtu); BT_DBG("mtu %d", session->mtu);
sprintf(session->name, "%pMR", &bt_sk(sock->sk)->dst); sprintf(session->name, "%pMR", &session->bdaddr);
session->sock = sock; session->sock = sock;
session->state = BT_CONFIG; session->state = BT_CONFIG;