]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/bluetooth/hci_event.c
Bluetooth: Use helper function to determine BR/EDR OOB data present
[karo-tx-linux.git] / net / bluetooth / hci_event.c
index 0850cad8c36886da559d8a89460344d06afe8844..8ed8516b18c7355de29b287928dea8e3dd6dd64e 100644 (file)
@@ -3855,6 +3855,21 @@ static u8 hci_get_auth_req(struct hci_conn *conn)
        return (conn->remote_auth & ~0x01) | (conn->auth_type & 0x01);
 }
 
+static u8 bredr_oob_data_present(struct hci_conn *conn)
+{
+       struct hci_dev *hdev = conn->hdev;
+       struct oob_data *data;
+
+       data = hci_find_remote_oob_data(hdev, &conn->dst, BDADDR_BREDR);
+       if (!data)
+               return 0x00;
+
+       if (conn->out || test_bit(HCI_CONN_REMOTE_OOB, &conn->flags))
+               return 0x01;
+
+       return 0x00;
+}
+
 static void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
 {
        struct hci_ev_io_capa_request *ev = (void *) skb->data;
@@ -3906,12 +3921,7 @@ static void hci_io_capa_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
                        conn->auth_type &= HCI_AT_NO_BONDING_MITM;
 
                cp.authentication = conn->auth_type;
-
-               if (hci_find_remote_oob_data(hdev, &conn->dst, BDADDR_BREDR) &&
-                   (conn->out || test_bit(HCI_CONN_REMOTE_OOB, &conn->flags)))
-                       cp.oob_data = 0x01;
-               else
-                       cp.oob_data = 0x00;
+               cp.oob_data = bredr_oob_data_present(conn);
 
                hci_send_cmd(hdev, HCI_OP_IO_CAPABILITY_REPLY,
                             sizeof(cp), &cp);