diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2013-10-02 13:43:13 +0300 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2013-10-02 03:48:28 -0700 |
commit | 56f8790102f48a4959a729ecdccff332591014e1 (patch) | |
tree | f82d05066b39122e2eb8fcb77550fba543605449 /net/bluetooth/hci_conn.c | |
parent | 2cc8689028cd077e3e9cb9a192b1bb524fe38935 (diff) | |
download | linux-56f8790102f48a4959a729ecdccff332591014e1.tar.gz linux-56f8790102f48a4959a729ecdccff332591014e1.tar.bz2 linux-56f8790102f48a4959a729ecdccff332591014e1.zip |
Bluetooth: Introduce a new HCI_BREDR_ENABLED flag
To allow treating dual-mode (BR/EDR/LE) controllers as single-mode ones
(LE-only) we want to introduce a new HCI_BREDR_ENABLED flag to track
whether BR/EDR is enabled or not (previously we simply looked at the
feature bit with lmp_bredr_enabled).
This patch add the new flag and updates the relevant places to test
against it instead of using lmp_bredr_enabled. The flag is by default
enabled when registering an adapter and only cleared if necessary once
the local features have been read during the HCI init procedure.
We cannot completely block BR/EDR usage in case user space uses raw HCI
sockets but the patch tries to block this in places where possible, such
as the various BR/EDR specific ioctls.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/hci_conn.c')
-rw-r--r-- | net/bluetooth/hci_conn.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index d2380e0c7df0..514148b7a66b 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -581,6 +581,9 @@ static struct hci_conn *hci_connect_acl(struct hci_dev *hdev, bdaddr_t *dst, { struct hci_conn *acl; + if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) + return ERR_PTR(-ENOTSUPP); + acl = hci_conn_hash_lookup_ba(hdev, ACL_LINK, dst); if (!acl) { acl = hci_conn_add(hdev, ACL_LINK, dst); |