neuron: block_client: Wait for channel to init
Wait until all conditions are met instead of busy looping to check if the channels are finished initializing. Change-Id: I50bd3bad6ccf3f4957ed0a98cdceed45d49fe851 Acked-by: Chris Henroid <chenroid@qti.qualcomm.com> Signed-off-by: Chris Lew <clew@codeaurora.org>
This commit is contained in:
parent
304f2f125b
commit
85c2118a11
@ -178,8 +178,8 @@ static int protocol_block_client_thread(void *data)
|
||||
skb_req = NULL;
|
||||
|
||||
/* Wait for the channels to start */
|
||||
wakeup_mask = 0;
|
||||
while (!kthread_should_stop()) {
|
||||
wakeup_mask = 0;
|
||||
if (!channel_dev->max_size || !channel_dev->queue_length)
|
||||
wakeup_mask |= CHANNEL_BIT(C_IN);
|
||||
|
||||
@ -190,8 +190,13 @@ static int protocol_block_client_thread(void *data)
|
||||
break;
|
||||
|
||||
wait_event_killable(kdata->wait_q,
|
||||
kthread_should_stop() ||
|
||||
(kdata->wakeups & wakeup_mask));
|
||||
(kdata->wakeups &&
|
||||
channel_dev->max_size &&
|
||||
channel_dev->queue_length &&
|
||||
channel_dev_r->max_size &&
|
||||
channel_dev_r->queue_length) ||
|
||||
kthread_should_stop());
|
||||
wakeup_mask = 0;
|
||||
}
|
||||
if (kthread_should_stop())
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user