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;
|
skb_req = NULL;
|
||||||
|
|
||||||
/* Wait for the channels to start */
|
/* Wait for the channels to start */
|
||||||
|
wakeup_mask = 0;
|
||||||
while (!kthread_should_stop()) {
|
while (!kthread_should_stop()) {
|
||||||
wakeup_mask = 0;
|
|
||||||
if (!channel_dev->max_size || !channel_dev->queue_length)
|
if (!channel_dev->max_size || !channel_dev->queue_length)
|
||||||
wakeup_mask |= CHANNEL_BIT(C_IN);
|
wakeup_mask |= CHANNEL_BIT(C_IN);
|
||||||
|
|
||||||
@ -190,8 +190,13 @@ static int protocol_block_client_thread(void *data)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
wait_event_killable(kdata->wait_q,
|
wait_event_killable(kdata->wait_q,
|
||||||
kthread_should_stop() ||
|
(kdata->wakeups &&
|
||||||
(kdata->wakeups & wakeup_mask));
|
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())
|
if (kthread_should_stop())
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user