system/bt
Revision | fe06634c234727eca85826ddabce46d7d0ce9e73 (tree) |
---|---|
Zeit | 2016-08-24 23:09:42 |
Autor | Nitin Arora <niarora@code...> |
Commiter | Linux Build Service Account |
Bluetooth: Prevent multiple register of service change indication
Use Case:
Pair DUT to a remote LE device. The host registers for the service
change indication twice, once when the connection callback is
received and another time, when the SMP process completes
Failure:
There are a few issues caused by this.
First, the duplicate action of service change indication registeration
is unnecessary.
The registeration that follows the SMP process adds a gatt_if to the
apps holding the current link. This gatt_if (=1) never disconnects
after registeration failure or success. And hence the host can never
physically disconnect the link.
Fix:
This change removes the service change registeration at SMP
process completion
CRs-Fixed: 1033611
Change-Id: I0d7566e2b4a9d01aa7926cdbe9f528c3941fcfeb
@@ -4471,9 +4471,6 @@ static UINT8 bta_dm_ble_smp_cback (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_D | ||
4471 | 4471 | else |
4472 | 4472 | { |
4473 | 4473 | sec_event.auth_cmpl.success = TRUE; |
4474 | - /* We also register for Service Changed right after connect. */ | |
4475 | - if (!p_data->complt.smp_over_br) | |
4476 | - GATT_ConfigServiceChangeCCC(bda, TRUE, BT_TRANSPORT_LE); | |
4477 | 4474 | } |
4478 | 4475 | |
4479 | 4476 | if (bta_dm_cb.p_sec_cback) |