第 1 頁 (共 1 頁)
00902447 About patch for "DUT looks for 16-digit PIN key dur
發表於 : 2013年 4月 6日, 17:25
由 admin
Subject
About patch for "DUT looks for 16-digit PIN key during security mode 3 pairing" in 2055
Description
Our customer raise an issue about DUT uses 16 digit PIN to pair to Parrot car-kit, which use '0000' for PIN key.
We find there is a patch in 2055 for the 16 digit PIN key problem, due to currently we will not change our BSP, we decide to porting this patch from 2055 to 2045.
According to the release note, ailes affected are as bellow.
kernel/net/bluetooth/hci_event.c
kernel/net/bluetooth/mgmt.c
But after porting the difference code from 2055 to 2045, we find a side effect, that is when we try to pair and connect motorola EQ7, bluetooth will hang and then to be crashed.
It seems not all changes in the 2 files are for this issue, could you please tell us which part are for this issue?
Is there any other files which also need to be modified for this issue?
Re: 00902447 About patch for "DUT looks for 16-digit PIN key
發表於 : 2013年 4月 6日, 17:25
由 admin
Comment
Created By: Wei-Ting Hsiao (7/17/2012 11:49 PM)
Dear customer,
Since you are using other vendor's BT solution, we have some difficulty to assist you on your issue (we only verify our BT stack/driver with our own BT chip in reference design). It might be better to directly contact your BT vendor.
Thank you,
Richard
Created By: James Chiu (7/16/2012 4:33 AM)
Dear Richard,
For the 16-digit PIN key issue, due to our customer can reproduce this issue on 2045 code base, it seems the patch of CR 350377 couldn't solve this issue.
We submit this case to ask about the patch is due to we think this patch could solve this issue, but it has some side effect needs to be fixed.
In fact, our concern is whether Qualcomm could help us to solve the 16-digit PIN key issue, not the patch itself.
So if this patch couldn't solve this issue, we still need Qualcomm's support, and now we find some related code in 2055 as I mentioned earlier.
Could you please help to check whether there is another patch is for the 16-digit PIN key issue? Or do you think we should submit another case for the 16-digit PIN key issue?
Thank you.
Created By: Wei-Ting Hsiao (7/16/2012 3:09 AM)
Dear customer,
For the original issue "DUT looks for 16-digit PIN key during security mode 3 pairing", the only code change is attached as you said already in 2045 code.
Thank you,
Richard
Created By: James Chiu (7/16/2012 1:18 AM)
Dear Richard,
The patch in attachment is already in included in our current 2045 code base, and customer raises the PIN code issue on this code base.
I check hci_event.c in 2055 code base, there seems to be another code for the security problem.
--
static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
{
struct hci_ev_auth_complete *ev = (void *) skb->data;
struct hci_conn *conn;
BT_DBG("%s status %d", hdev->name, ev->status);
hci_dev_lock(hdev);
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
if (conn) {
if (ev->status == 0x06 && hdev->ssp_mode > 0 &&
conn->ssp_mode > 0) {
struct hci_cp_auth_requested cp;
hci_remove_link_key(hdev, &conn->dst);
cp.handle = cpu_to_le16(conn->handle);
/*Initiates dedicated bonding as pin or key is missing
on remote device*/
/*In case if remote device is ssp supported,
reduce the security level to MEDIUM if it is HIGH*/
if (conn->ssp_mode && conn->auth_initiator &&
conn->io_capability != 0x03) {
conn->pending_sec_level = BT_SECURITY_HIGH;
conn->auth_type = HCI_AT_DEDICATED_BONDING_MITM;
}
hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED,
sizeof(cp), &cp);
hci_dev_unlock(hdev);
BT_INFO("Pin or key missing");
return;
}
--
Attach our hci_event.c and mgmt.c in 2055 code base.
Could you please help to confirm whether there's another patch is for this issue too?
We want to know which part in 2055 are for this issue, only the code I mentioned above, or there's another code is for this issue too.
Thank you.
Created By: Wei-Ting Hsiao (7/16/2012 12:39 AM)
Attached is the patch file for this issue.
Please only apply this patch.
the change you mentioned is NOT for this issue.
Thank you,
Richard
Created By: James Chiu (7/15/2012 10:40 PM)
Dear Richard,
The CR number is 350377.
Fixed bug description is as bellow.
DUT looks for 16-digit PIN key during security mode 3 pairing
Problem description
The scenario is as follows:
1. Search for Parrot mki9200.
2. Initiate pairing from DUT.
DUT displays pairing dialog to enter 16-digit PIN.
Failure frequency: Every time
Scenario frequency: Common
Change description
Changes were made to security levels based on remote_features or remote_extended_features for 2.0 and 2.1 devices. In case of security mode 3 pairing, this data is not available since pairing happens before ACL connection is complete. This patch fixes this problem.
Files affected
kernel/net/bluetooth/hci_event.c
kernel/net/bluetooth/mgmt.c
No side effect from this change is anticipated.
Created By: Wei-Ting Hsiao (7/15/2012 9:30 PM)
Dear Customer,
Since your project is not using our Qualcomm BT solution, it is difficult to provide technical support on it.
If possible, could you please provide the CR number shown in the release note for this " 16 digit pin key" issue?
Thank you,
Richard
Created By: Wei-Ting Hsiao (7/15/2012 2:31 AM)
Dear Customer,
Will work with you locally for this issue.
Thanks,
Richard
Created By: Sudhakar Bodapati (7/10/2012 6:11 AM)
Dear Customer,
I am the new case owner.
I will look into this and update you soon.
Thanks,
Sudhakar
Created By: James Chiu (7/3/2012 12:31 AM)
I find after adding following code in hci_event.c, it could not connect to some BT headsets.
--
/*
* If the remote device does not support
* Pause Encryption, usually during the
* roleSwitch we see Encryption disable
* for short duration. Allow remote device
* to disable encryption
* for short duration in this case.
*/
if ((ev->encrypt == 0) && (ev->status == 0) &&
((conn->features[5] & LMP_PAUSE_ENC) == 0)) {
mod_timer(&conn->encrypt_pause_timer,
jiffies + msecs_to_jiffies(500));
BT_INFO("enc pause timer, enc_pend_flag set");
} else {
del_timer(&conn->encrypt_pause_timer);
hci_encrypt_cfm(conn, ev->status, ev->encrypt);
}
--
The failure BT headsets are Motolora EQ7 and Jabra BT620s, which are BDR devices, not sure whether all BDR device would have this side effect.
We want to know whether the code above is necessary for 16-digit PIN code issue.
Re: 00902447 About patch for "DUT looks for 16-digit PIN key
發表於 : 2013年 4月 6日, 17:28
由 admin
Add patch file