From: Sudha Bheemanna Date: Thu, 8 Sep 2016 09:41:28 +0000 (+0530) Subject: Bluetooth: Send Authentication Request command on pairing failure X-Git-Tag: accepted/tizen/unified/20190701.111735~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dba18e063d7401e5b02243dedb9197f884afc097;p=platform%2Fkernel%2Flinux-rpi3.git Bluetooth: Send Authentication Request command on pairing failure 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 Signed-off-by: Amit Purwar --- diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index d464399..5d91a25 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -2848,6 +2848,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);