From: Greg Kroah-Hartman Date: Wed, 11 Apr 2012 23:01:20 +0000 (-0700) Subject: 3.2-stable patches X-Git-Tag: v3.3.2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2f51d8d778d72f8219f1ce8f3cf5ec93bd757a15;p=thirdparty%2Fkernel%2Fstable-queue.git 3.2-stable patches added patches: bluetooth-fix-l2cap-conn-failures-for-ssp-devices.patch --- diff --git a/queue-3.2/bluetooth-fix-l2cap-conn-failures-for-ssp-devices.patch b/queue-3.2/bluetooth-fix-l2cap-conn-failures-for-ssp-devices.patch new file mode 100644 index 00000000000..c68ac8e91ad --- /dev/null +++ b/queue-3.2/bluetooth-fix-l2cap-conn-failures-for-ssp-devices.patch @@ -0,0 +1,45 @@ +From wagi@monom.org Wed Apr 11 15:53:26 2012 +From: Daniel Wagner +Date: Mon, 2 Apr 2012 13:44:56 +0200 +Subject: Bluetooth: Fix l2cap conn failures for ssp devices +To: stable@vger.kernel.org +Cc: gustavo@padovan.org, greg@kroah.com, Peter Hurley , Johan Hedberg +Message-ID: <1333367096-12281-1-git-send-email-wagi@monom.org> + + +From: Peter Hurley + +commit 18daf1644e634bae951a6e3d4d19d89170209762 upstream + +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. + +Signed-off-by: Peter Hurley +Tested-by: Daniel Wagner +Acked-by: Marcel Holtmann +Signed-off-by: Johan Hedberg + +--- + net/bluetooth/hci_conn.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/net/bluetooth/hci_conn.c ++++ b/net/bluetooth/hci_conn.c +@@ -608,6 +608,10 @@ static int hci_conn_auth(struct hci_conn + + 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); diff --git a/queue-3.2/series b/queue-3.2/series index d45c475eaf4..bc778b4f832 100644 --- a/queue-3.2/series +++ b/queue-3.2/series @@ -56,3 +56,4 @@ ioat-fix-size-of-completion-for-xen.patch asoc-ak4642-fixup-mute-needs-1-step.patch cred-copy_process-should-clear-child-replacement_session_keyring.patch iommu-amd-make-sure-iommu-interrupts-are-re-enabled-on-resume.patch +bluetooth-fix-l2cap-conn-failures-for-ssp-devices.patch