base: sync: signal a sync pt when not adding to the active_list

A sync point that is not added to the active_list will never signal
in sync_timeline_signal thus causing sync_fence_wait to deadlock or
block until the timeout expired.

Change-Id: I75168d0eec874bf70dd8c28db9508dd8fc1077d3
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
This commit is contained in:
Jeff Boody 2012-08-17 12:59:08 -06:00 committed by Stephen Boyd
parent 23016defd7
commit 8588a01924

View file

@ -218,8 +218,10 @@ static void sync_pt_activate(struct sync_pt *pt)
spin_lock_irqsave(&obj->active_list_lock, flags);
err = _sync_pt_has_signaled(pt);
if (err != 0)
if (err != 0) {
sync_fence_signal_pt(pt);
goto out;
}
list_add_tail(&pt->active_list, &obj->active_list_head);