Merge "Bluetooth: Fix erroneous Pairing Failure condition" into msm-3.0

This commit is contained in:
Linux Build Service Account
2011-11-23 07:59:32 -08:00
committed by QuIC Gerrit Code Review

View File

@@ -1020,12 +1020,16 @@ static int smp_distribute_keys(struct l2cap_conn *conn, __u8 force)
*keydist &= ~SMP_DIST_SIGN; *keydist &= ~SMP_DIST_SIGN;
} }
if (hcon->out || rsp->resp_key_dist) { if (hcon->out) {
if (hcon->disconn_cfm_cb) if (hcon->disconn_cfm_cb)
hcon->disconn_cfm_cb(hcon, 0); hcon->disconn_cfm_cb(hcon, 0);
del_timer(&hcon->smp_timer); del_timer(&hcon->smp_timer);
clear_bit(HCI_CONN_ENCRYPT_PEND, &hcon->pend); clear_bit(HCI_CONN_ENCRYPT_PEND, &hcon->pend);
hci_conn_put(hcon);
} else if (rsp->resp_key_dist) {
if (hcon->disconn_cfm_cb)
hcon->disconn_cfm_cb(hcon, SMP_UNSPECIFIED);
clear_bit(HCI_CONN_ENCRYPT_PEND, &hcon->pend);
mgmt_auth_failed(hcon->hdev->id, conn->dst, SMP_UNSPECIFIED); mgmt_auth_failed(hcon->hdev->id, conn->dst, SMP_UNSPECIFIED);
hci_conn_put(hcon); hci_conn_put(hcon);
} }