msm: synx: Fix to block wait till all handles are signaled
Fixed a race condition in case of global and local merge where wait was unblocked without waiting for signal on local handles. Change-Id: Ib1a87dd4b766c5d45114daae7539dc044488b724 Signed-off-by: Kuldeep Singh <quic_kulsin@quicinc.com>
This commit is contained in:
@@ -991,8 +991,8 @@ int synx_async_wait(struct synx_session *session,
|
||||
synx_native_signal_fence(synx_obj, status);
|
||||
}
|
||||
}
|
||||
else
|
||||
status = synx_util_get_object_status(synx_obj);
|
||||
|
||||
status = synx_util_get_object_status(synx_obj);
|
||||
|
||||
synx_cb->session = session;
|
||||
synx_cb->idx = idx;
|
||||
@@ -1375,7 +1375,6 @@ int synx_wait(struct synx_session *session,
|
||||
else
|
||||
synx_native_signal_fence(synx_obj, rc);
|
||||
mutex_unlock(&synx_obj->obj_lock);
|
||||
goto status;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1389,7 +1388,6 @@ int synx_wait(struct synx_session *session,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
status:
|
||||
mutex_lock(&synx_obj->obj_lock);
|
||||
rc = synx_util_get_object_status(synx_obj);
|
||||
mutex_unlock(&synx_obj->obj_lock);
|
||||
|
Reference in New Issue
Block a user