summaryrefslogtreecommitdiffstats
path: root/net/bluetooth/mgmt.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2015-10-16 10:07:50 +0300
committerMarcel Holtmann <marcel@holtmann.org>2015-10-16 09:24:41 +0200
commitb958f9a3e87766a88036616389eaaf3ad3bd5fc8 (patch)
tree777aeff10b00deff3a174992ccf4c59b2ca31e6d /net/bluetooth/mgmt.c
parent168b8a25c0ac30f427bfe6ad547779c4c363d042 (diff)
downloadlinux-b958f9a3e87766a88036616389eaaf3ad3bd5fc8.tar.gz
linux-b958f9a3e87766a88036616389eaaf3ad3bd5fc8.tar.bz2
linux-b958f9a3e87766a88036616389eaaf3ad3bd5fc8.zip
Bluetooth: Fix reference counting for LE-scan based connections
The code should never directly call hci_conn_hash_del since many cleanup & reference counting updates would be lost. Normally hci_conn_del is the right thing to do, but in the case of a connection doing LE scanning this could cause a deadlock due to doing a cancel_delayed_work_sync() on the same work callback that we were called from. Connections in the LE scanning state actually need very little cleanup - just a small subset of hci_conn_del. To solve the issue, refactor out these essential pieces into a new hci_conn_cleanup() function and call that from the two necessary places. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/mgmt.c')
0 files changed, 0 insertions, 0 deletions