Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9211b45f authored by Wenbin Wang's avatar Wenbin Wang Committed by Gerrit - the friendly Code Review server
Browse files

msm: kgsl: Don't delete uninitialized preemption timer



If we delete uninitialized timer on CONFIG_DEBUG_OBJECTS
disabled build del_timer_sync() will block for ever. For
all A3xx targets preemption timer is not initialized, but
dispatcher fault handler is trying to delete the
uninitialized preemption timer. Fix this issue by adding
a preemption check before we delete it.

CRs-Fixed: 2023690
Change-Id: I2c51a0b2286b82bf2eb5ee68d923dd9585f07f00
Signed-off-by: default avatarWenbin Wang <wwenbin@codeaurora.org>
Signed-off-by: default avatarAbhilash Kumar <krabhi@codeaurora.org>
parent 7d7aefae
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1792,6 +1792,11 @@ static int dispatcher_do_fault(struct adreno_device *adreno_dev)
	/* Turn off all the timers */
	del_timer_sync(&dispatcher->timer);
	del_timer_sync(&dispatcher->fault_timer);
	/*
	 * Deleting uninitialized timer will block for ever on kernel debug
	 * disable build. Hence skip del timer if it is not initialized.
	 */
	if (adreno_is_preemption_enabled(adreno_dev))
		del_timer_sync(&adreno_dev->preempt.timer);

	mutex_lock(&device->mutex);