kernel_optimize_test/net/bluetooth
Marcel Holtmann 781f899f2f Bluetooth: Fix race condition with user channel and setup stage
During the initial setup stage of a controller, the low-level transport
is actually active. This means that HCI_UP is true. To avoid toggling
the transport off and back on again for normal operation the kernel
holds a grace period with HCI_AUTO_OFF that will turn the low-level
transport off in case no user is present.

The idea of the grace period is important to avoid having to initialize
all of the controller twice. So legacy ioctl and the new management
interface knows how to clear this grace period and then start normal
operation.

For the user channel operation this grace period has not been taken into
account which results in the problem that HCI_UP and HCI_AUTO_OFF are
set and the kernel will return EBUSY. However from a system point of
view the controller is ready to be grabbed by either the ioctl, the
management interface or the user channel.

This patch brings the user channel to the same level as the other two
entries for operating a controller.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Cc: stable@vger.kernel.org
2015-06-08 11:04:49 +03:00
..
bnep net: Pass kern from net_proto_family.create to sk_alloc 2015-05-11 10:50:17 -04:00
cmtp net: Pass kern from net_proto_family.create to sk_alloc 2015-05-11 10:50:17 -04:00
hidp net: Pass kern from net_proto_family.create to sk_alloc 2015-05-11 10:50:17 -04:00
rfcomm Bluetooth: Fix potential NULL dereference in RFCOMM bind callback 2015-06-06 08:44:33 +02:00
6lowpan.c ipv6: Remove external dependency on rt6i_gateway and RTF_ANYCAST 2015-05-25 13:25:33 -04:00
a2mp.c Bluetooth: Make __next_ident function static. 2015-02-15 10:14:54 +02:00
a2mp.h Bluetooth: Make __next_ident function static. 2015-02-15 10:14:54 +02:00
af_bluetooth.c Bluetooth: Convert mgmt to use HCI chan registration API 2015-03-06 20:15:21 +01:00
amp.c Bluetooth: Fix sparse warning in amp.c 2014-11-11 00:07:29 +01:00
amp.h
ecc.c Bluetooth: Add ECC library for LE Secure Connections 2014-12-03 16:51:16 +01:00
ecc.h Bluetooth: Add ECC library for LE Secure Connections 2014-12-03 16:51:16 +01:00
hci_conn.c Bluetooth: Introduce hci_dev_clear_flag helper macro 2015-03-13 12:09:27 +02:00
hci_core.c Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next 2015-05-30 23:26:45 -07:00
hci_debugfs.c Bluetooth: Expose current Device ID information via debugfs 2015-04-02 08:40:35 +03:00
hci_debugfs.h Bluetooth: Provide option to enable/disable debugfs information 2015-02-15 18:54:13 +02:00
hci_event.c Bluetooth: Read LE remote features during connection establishment 2015-04-09 08:36:54 +03:00
hci_request.c Bluetooth: Add second hci_request callback option for full skb 2015-04-02 16:09:27 +02:00
hci_request.h Bluetooth: Add second hci_request callback option for full skb 2015-04-02 16:09:27 +02:00
hci_sock.c Bluetooth: Fix race condition with user channel and setup stage 2015-06-08 11:04:49 +03:00
hci_sysfs.c
Kconfig Bluetooth: Provide option to enable/disable debugfs information 2015-02-15 18:54:13 +02:00
l2cap_core.c Bluetooth: Refactor L2CAP variables into l2cap_ctrl 2015-03-30 23:20:53 +02:00
l2cap_sock.c net: Pass kern from net_proto_family.create to sk_alloc 2015-05-11 10:50:17 -04:00
lib.c Bluetooth: Convert bt_<level> logging functions to return void 2014-09-24 09:40:08 +02:00
Makefile Bluetooth: Add generic mgmt helper API 2015-03-17 18:03:08 +01:00
mgmt_util.c Bluetooth: Add generic mgmt helper API 2015-03-17 18:03:08 +01:00
mgmt_util.h Bluetooth: Add generic mgmt helper API 2015-03-17 18:03:08 +01:00
mgmt.c Bluetooth: mgmt: fix typos 2015-05-26 03:57:56 +02:00
sco.c net: Pass kern from net_proto_family.create to sk_alloc 2015-05-11 10:50:17 -04:00
selftest.c Bluetooth: Export ECDH selftest result in debugfs 2015-04-02 08:47:38 +03:00
selftest.h Bluetooth: Add support for self testing framework 2014-12-30 08:53:55 +02:00
smp.c Bluetooth: Add debug logs for legacy SMP crypto functions 2015-05-19 21:07:29 +02:00
smp.h Bluetooth: Add function for generating LE SC out-of-band data 2015-03-16 10:31:27 +02:00