system/bt
Revision | 93753c193b2381a67e6689c8be26ea8640c590bc (tree) |
---|---|
Zeit | 2013-02-12 14:49:03 |
Autor | Toshi Kikuchi <toshik@goog...> |
Commiter | Android Git Automerger |
am 6ff9944c: fix bt_hc_worker_thread() sometimes transmit more than num_hci_cmd_pkts
# Via Toshi Kikuchi
* commit '6ff9944c9dda368fd79ebdf8d6748fc4922eafec':
@@ -415,6 +415,7 @@ static void *bt_hc_worker_thread(void *arg) | ||
415 | 415 | tx_cmd_pkts_pending = FALSE; |
416 | 416 | HC_BT_HDR * sending_msg_que[64]; |
417 | 417 | int sending_msg_count = 0; |
418 | + int sending_hci_cmd_pkts_count = 0; | |
418 | 419 | utils_lock(); |
419 | 420 | p_next_msg = tx_q.p_first; |
420 | 421 | while (p_next_msg && sending_msg_count < |
@@ -430,12 +431,14 @@ static void *bt_hc_worker_thread(void *arg) | ||
430 | 431 | * gives back us credits through CommandCompleteEvent or |
431 | 432 | * CommandStatusEvent. |
432 | 433 | */ |
433 | - if ((tx_cmd_pkts_pending == TRUE) || (num_hci_cmd_pkts <= 0)) | |
434 | + if ((tx_cmd_pkts_pending == TRUE) || | |
435 | + (sending_hci_cmd_pkts_count >= num_hci_cmd_pkts)) | |
434 | 436 | { |
435 | 437 | tx_cmd_pkts_pending = TRUE; |
436 | 438 | p_next_msg = utils_getnext(p_next_msg); |
437 | 439 | continue; |
438 | 440 | } |
441 | + sending_hci_cmd_pkts_count++; | |
439 | 442 | } |
440 | 443 | |
441 | 444 | p_msg = p_next_msg; |