aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/smp.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c
index 03489e5815ef..7e558465133f 100644
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
@@ -187,18 +187,6 @@ static void smp_send_cmd(struct l2cap_conn *conn, u8 code, u16 len, void *data)
187 msecs_to_jiffies(SMP_TIMEOUT)); 187 msecs_to_jiffies(SMP_TIMEOUT));
188} 188}
189 189
190static __u8 seclevel_to_authreq(__u8 level)
191{
192 switch (level) {
193 case BT_SECURITY_HIGH:
194 /* Right now we don't support bonding */
195 return SMP_AUTH_MITM;
196
197 default:
198 return SMP_AUTH_NONE;
199 }
200}
201
202static void build_pairing_cmd(struct l2cap_conn *conn, 190static void build_pairing_cmd(struct l2cap_conn *conn,
203 struct smp_cmd_pairing *req, 191 struct smp_cmd_pairing *req,
204 struct smp_cmd_pairing *rsp, 192 struct smp_cmd_pairing *rsp,
@@ -542,7 +530,6 @@ int smp_conn_security(struct l2cap_conn *conn, __u8 sec_level)
542{ 530{
543 struct hci_conn *hcon = conn->hcon; 531 struct hci_conn *hcon = conn->hcon;
544 struct smp_chan *smp = conn->smp_chan; 532 struct smp_chan *smp = conn->smp_chan;
545 __u8 authreq;
546 533
547 BT_DBG("conn %p hcon %p level 0x%2.2x", conn, hcon, sec_level); 534 BT_DBG("conn %p hcon %p level 0x%2.2x", conn, hcon, sec_level);
548 535
@@ -580,19 +567,17 @@ int smp_conn_security(struct l2cap_conn *conn, __u8 sec_level)
580 567
581 smp = smp_chan_create(conn); 568 smp = smp_chan_create(conn);
582 569
583 authreq = seclevel_to_authreq(sec_level);
584
585 if (hcon->link_mode & HCI_LM_MASTER) { 570 if (hcon->link_mode & HCI_LM_MASTER) {
586 struct smp_cmd_pairing cp; 571 struct smp_cmd_pairing cp;
587 572
588 build_pairing_cmd(conn, &cp, NULL, authreq); 573 build_pairing_cmd(conn, &cp, NULL, SMP_AUTH_NONE);
589 smp->preq[0] = SMP_CMD_PAIRING_REQ; 574 smp->preq[0] = SMP_CMD_PAIRING_REQ;
590 memcpy(&smp->preq[1], &cp, sizeof(cp)); 575 memcpy(&smp->preq[1], &cp, sizeof(cp));
591 576
592 smp_send_cmd(conn, SMP_CMD_PAIRING_REQ, sizeof(cp), &cp); 577 smp_send_cmd(conn, SMP_CMD_PAIRING_REQ, sizeof(cp), &cp);
593 } else { 578 } else {
594 struct smp_cmd_security_req cp; 579 struct smp_cmd_security_req cp;
595 cp.auth_req = authreq; 580 cp.auth_req = SMP_AUTH_NONE;
596 smp_send_cmd(conn, SMP_CMD_SECURITY_REQ, sizeof(cp), &cp); 581 smp_send_cmd(conn, SMP_CMD_SECURITY_REQ, sizeof(cp), &cp);
597 } 582 }
598 583