OSDN Git Service

Handle remote not supporting LL_SLAVE_FEATURE_REQ
authorJakub Pawlowski <jpawlowski@google.com>
Mon, 24 Apr 2017 13:34:11 +0000 (06:34 -0700)
committerJakub Pawlowski <jpawlowski@google.com>
Thu, 27 Apr 2017 19:53:35 +0000 (12:53 -0700)
Test: for PTS
Change-Id: I3030a068c1c4980fa7cbb23b478afbe441584869
(cherry picked from commit 341b6db90d67e76ea9262c5e9f3ba5063cb93598)

stack/btm/btm_ble_gap.cc

index db12f21..4ce0584 100644 (file)
@@ -2561,8 +2561,9 @@ void btm_ble_read_remote_features_complete(uint8_t* p) {
   handle = handle & 0x0FFF;  // only 12 bits meaningful
 
   if (status != HCI_SUCCESS) {
-    BTM_TRACE_ERROR("%s: failed for handle: 0x%04d", __func__, handle);
-    return;
+    BTM_TRACE_ERROR("%s: failed for handle: 0x%04d, status 0x%02x", __func__,
+                    handle, status);
+    if (status != HCI_ERR_UNSUPPORTED_REM_FEATURE) return;
   }
 
   int idx = btm_handle_to_acl_index(handle);
@@ -2571,7 +2572,9 @@ void btm_ble_read_remote_features_complete(uint8_t* p) {
     return;
   }
 
-  STREAM_TO_ARRAY(btm_cb.acl_db[idx].peer_le_features, p, BD_FEATURES_LEN);
+  if (status == HCI_SUCCESS) {
+    STREAM_TO_ARRAY(btm_cb.acl_db[idx].peer_le_features, p, BD_FEATURES_LEN);
+  }
 
   btsnd_hcic_rmt_ver_req(handle);
 }