Bluetooth: Send Authentication Request command on pairing failure 39/293139/1
authorSudha Bheemanna <b.sudha@samsung.com>
Thu, 8 Sep 2016 09:41:28 +0000 (15:11 +0530)
committerWootak Jung <wootak.jung@samsung.com>
Mon, 22 May 2023 01:03:50 +0000 (10:03 +0900)
This patch allows to send HCI_OP_AUTH_REQUESTED command
to the remote device if pairing failure happens because
of pin or key missing error.

Change-Id: I9c28394dc06b22fd5fe9e58ac0b7d728c086bde4
Signed-off-by: Sudha Bheemanna <b.sudha@samsung.com>
Signed-off-by: Amit Purwar <amit.purwar@samsung.com>
net/bluetooth/hci_event.c

index 71b20f1..7c504a7 100644 (file)
@@ -3144,6 +3144,24 @@ static void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
        if (!conn)
                goto unlock;
 
+#ifdef TIZEN_BT
+       /*  PIN or Key Missing patch */
+       BT_DBG("remote_auth %x, remote_cap %x, auth_type %x, io_capability %x",
+              conn->remote_auth, conn->remote_cap,
+              conn->auth_type, conn->io_capability);
+
+       if (ev->status == 0x06 && hci_conn_ssp_enabled(conn)) {
+               struct hci_cp_auth_requested cp;
+
+               BT_DBG("Pin or key missing");
+               hci_remove_link_key(hdev, &conn->dst);
+               cp.handle = cpu_to_le16(conn->handle);
+               hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED,
+                            sizeof(cp), &cp);
+               goto unlock;
+       }
+#endif
+
        if (!ev->status) {
                clear_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);