mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-24 02:01:36 +03:00
platform: tegra: dce: retry interrupted rpc wait
currently dce_client_ipc_wait_rpc function waits with "wait_event_interruptible". And if process is interrupted, it leads to RPC failure as "dce_ipc_send_message_sync" will try to read RPC msg when there is no msg to read yet. This CL make change to restart/retry wait if condition variable is not signaled by "dce_client_ipc_wakeup" Bug 200771402 Change-Id: I8f1c7781bab8b6c20b05251cc2862ad2db22cc1f Signed-off-by: Mahesh Kumar <mahkumar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2600849 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Santosh Galma <galmar@nvidia.com> Reviewed-by: Arun Swain <arswain@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
Laxman Dewangan
parent
e384d775a5
commit
b982595c51
@@ -275,9 +275,13 @@ static int dce_client_ipc_wait_rpc(struct tegra_dce *d, u32 int_type)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
retry_wait:
|
||||
DCE_COND_WAIT_INTERRUPTIBLE(&cl->recv_wait,
|
||||
atomic_read(&cl->complete) == 1,
|
||||
0);
|
||||
if (atomic_read(&cl->complete) != 1)
|
||||
goto retry_wait;
|
||||
|
||||
atomic_set(&cl->complete, 0);
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user