[Precise PATCH] Bluetooth: Fix l2cap conn failures for ssp devices

Ming Lei ming.lei at canonical.com
Mon Mar 12 13:57:57 UTC 2012


On Mon, Mar 12, 2012 at 8:57 PM, Herton Ronaldo Krzesinski
<herton.krzesinski at canonical.com> wrote:
> On Mon, Mar 12, 2012 at 03:48:23PM +0800, Ming Lei wrote:
>> From 18daf1644e634bae951a6e3d4d19d89170209762 Mon Sep 17 00:00:00 2001
>> From: Peter Hurley <peter at hurleysoftware.com>
>> Date: Fri, 13 Jan 2012 15:11:30 +0100
>> Subject: [PATCH] Bluetooth: Fix l2cap conn failures for ssp devices
>>
>> Commit 330605423c fixed l2cap conn establishment for non-ssp remote
>> devices by not setting HCI_CONN_ENCRYPT_PEND every time conn security
>> is tested (which was always returning failure on any subsequent
>> security checks).
>>
>> However, this broke l2cap conn establishment for ssp remote devices
>> when an ACL link was already established at SDP-level security. This
>> fix ensures that encryption must be pending whenever authentication
>> is also pending.
>>
>> BugLink: http://bugs.launchpad.net/bugs/791019
>
> Looks like the BugLink is pointing to the wrong bug.

Sorry for the copy & past, :-(

Will send a new one...

>
>> Upstream discusstion: http://marc.info/?t=131292188200002&r=1&w=2
>>
>> Signed-off-by: Peter Hurley <peter at hurleysoftware.com>
>> Tested-by: Daniel Wagner <daniel.wagner at bmw-carit.de>
>> Acked-by: Marcel Holtmann <marcel at holtmann.org>
>> Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
>> ---
>> This wasn't cc:ed stable at kernel.org, but was merged to 3.3-rc6.
>> ---
>>  net/bluetooth/hci_conn.c |    4 ++++
>>  1 files changed, 4 insertions(+), 0 deletions(-)
>>
>> diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
>> index 3db4324..07bc69e 100644
>> --- a/net/bluetooth/hci_conn.c
>> +++ b/net/bluetooth/hci_conn.c
>> @@ -635,6 +635,10 @@ static int hci_conn_auth(struct hci_conn *conn,
>> __u8 sec_level, __u8 auth_type)
>>
>>       if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->pend)) {
>>               struct hci_cp_auth_requested cp;
>> +
>> +             /* encrypt must be pending if auth is also pending */
>> +             set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend);
>> +
>>               cp.handle = cpu_to_le16(conn->handle);
>>               hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED,
>>                                                       sizeof(cp), &cp);
>> --
>> 1.7.9
>>
>> --
>> kernel-team mailing list
>> kernel-team at lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>>
>
> --
> []'s
> Herton




More information about the kernel-team mailing list