msm: kgsl: Fix spinlock recursion issues
Currently there is a possibility of spinlock recursion in
kgsl_timeline_signal and kgsl_ioctl_timeline_destroy. The issue can happen
if two fences are created on a timeline and KGSL_TIMELINE_WAIT_ANY flag is
used. First fence is signalled and once the wait is complete, second fence
is signalled. This results in a spinlock recursion as the release of first
fence is called when the timeline->lock is held. Fix this by making sure
that the lock to protect the list and lock used for dma_fence signalling
are used correctly. Also make fence_lock per timeline to reduce lock
contention among different timelines.
Change-Id: I547d62f29d4407fceca9bd766d8e9f93a88b5c6f
Signed-off-by:
Puranam V G Tejaswi <pvgtejas@codeaurora.org>
Loading
Please register or sign in to comment