From ca34f87ed8d3d5448c2b1a88c705f6c40c87779e Mon Sep 17 00:00:00 2001 From: Kamal Negi <kamaln@codeaurora.org> Date: Fri, 18 Nov 2016 11:55:20 +0530 Subject: [PATCH] Check for TX event before waiting for an event Check for an event before waiting for an event. If event already signalled and we wait for an event without checking, it can lead to an infinite wait for signal. This results in functional failure. CRs-Fixed: 1091781 Change-Id: I7bb1ef12f4622f9d94621a9c486a771226aba9f4 --- fm_hci/fm_hci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fm_hci/fm_hci.c b/fm_hci/fm_hci.c index a3666af..c48edd5 100644 --- a/fm_hci/fm_hci.c +++ b/fm_hci/fm_hci.c @@ -338,7 +338,8 @@ static void* hci_tx_thread(void *arg) while (lib_running) { pthread_mutex_lock(&hci->event_lock); - pthread_cond_wait(&hci->event_cond, &hci->event_lock); + if (!(ready_events & HC_EVENT_TX)) + pthread_cond_wait(&hci->event_cond, &hci->event_lock); ALOGE("%s: ready_events= %d", __func__, ready_events); events = ready_events; if (ready_events & HC_EVENT_TX) -- GitLab