diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2015-02-18 14:53:58 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2015-02-19 08:44:29 +0100 |
commit | 3a6d576be9fe02b0c3ffa89ef6eac048e14eec84 (patch) | |
tree | 70bcc5b6861fe48521d9aab181c8d7e0db15c5de /net/bluetooth/l2cap_core.c | |
parent | 539c496d88f7f96d42abde4e9d901c8f8167d615 (diff) | |
download | op-kernel-dev-3a6d576be9fe02b0c3ffa89ef6eac048e14eec84.zip op-kernel-dev-3a6d576be9fe02b0c3ffa89ef6eac048e14eec84.tar.gz |
Bluetooth: Convert disconn_cfm to be triggered through hci_cb
This patch moves all the disconn_cfm callbacks to be based on the hci_cb
list. This means making l2cap_disconn_cfm private to l2cap_core.c and
sco_conn_cb private to sco.c respectively. Since the hci_conn type
filtering isn't done any more on the wrapper level the callbacks
themselves need to check that they were passed a relevant type of
connection.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/l2cap_core.c')
-rw-r--r-- | net/bluetooth/l2cap_core.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index 6e2c3bd..91c6828 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c @@ -7324,8 +7324,11 @@ int l2cap_disconn_ind(struct hci_conn *hcon) return conn->disc_reason; } -void l2cap_disconn_cfm(struct hci_conn *hcon, u8 reason) +static void l2cap_disconn_cfm(struct hci_conn *hcon, u8 reason) { + if (hcon->type != ACL_LINK && hcon->type != LE_LINK) + return; + BT_DBG("hcon %p reason %d", hcon, reason); l2cap_conn_del(hcon, bt_to_errno(reason)); @@ -7547,6 +7550,7 @@ drop: static struct hci_cb l2cap_cb = { .name = "L2CAP", .connect_cfm = l2cap_connect_cfm, + .disconn_cfm = l2cap_disconn_cfm, .security_cfm = l2cap_security_cfm, }; |