spcom: spcom_get_next_request_size() unlock while waiting for rx data
spcom server app might open the channel before the SP client app. The asynchronous CONNECTED callback might be called while the server is waiting for data. Avoid locking the channel while waiting for data to avoid dead lock while handling the CONNECTED callabck. Change-Id: I7c576f240b60720a6f1461b3e48f4422c110e7c4 Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
This commit is contained in:
parent
22b400edb3
commit
aef18b277c
1 changed files with 2 additions and 0 deletions
|
@ -1028,10 +1028,12 @@ static int spcom_get_next_request_size(struct spcom_channel *ch)
|
|||
ch->name, ch->actual_rx_size);
|
||||
goto exit_ready;
|
||||
}
|
||||
mutex_unlock(&ch->lock); /* unlock while waiting */
|
||||
|
||||
pr_debug("Wait for Rx Done, ch [%s].\n", ch->name);
|
||||
wait_for_completion(&ch->rx_done);
|
||||
|
||||
mutex_lock(&ch->lock); /* re-lock after waiting */
|
||||
/* Check Rx Abort on SP reset */
|
||||
if (ch->rx_abort) {
|
||||
pr_err("rx aborted.\n");
|
||||
|
|
Loading…
Add table
Reference in a new issue