]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.2-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Apr 2012 23:01:20 +0000 (16:01 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Apr 2012 23:01:20 +0000 (16:01 -0700)
added patches:
bluetooth-fix-l2cap-conn-failures-for-ssp-devices.patch

queue-3.2/bluetooth-fix-l2cap-conn-failures-for-ssp-devices.patch [new file with mode: 0644]
queue-3.2/series

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 (file)
index 0000000..c68ac8e
--- /dev/null
@@ -0,0 +1,45 @@
+From wagi@monom.org  Wed Apr 11 15:53:26 2012
+From: Daniel Wagner <wagi@monom.org>
+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 <peter@hurleysoftware.com>, Johan Hedberg <johan.hedberg@intel.com>
+Message-ID: <1333367096-12281-1-git-send-email-wagi@monom.org>
+
+
+From: Peter Hurley <peter@hurleysoftware.com>
+
+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 <peter@hurleysoftware.com>
+Tested-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
+Acked-by: Marcel Holtmann <marcel@holtmann.org>
+Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
+
+---
+ 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);
index d45c475eaf429fa732cbaedda7769995d54e96a7..bc778b4f83205473f5ad412780c5c5b4a0711fe3 100644 (file)
@@ -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