From: hyesoo.yu Date: Wed, 19 Jul 2017 13:40:11 +0000 (+0900) Subject: [COMMON] g2d: unlock the spinlock on error handling X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=c1a05fd2c595f2e6e8a6a37c45bafbdff115105e;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [COMMON] g2d: unlock the spinlock on error handling The workqueue must be terminated after the spinlock has been released. However, that is missing when handing of suspend, so fix it. BUG: workqueue leaked lock or atomic: kworker/u16:8/0x00000001/5856 Change-Id: I6f9a36095dd9673dd57e38f24a3d306e1407529a Signed-off-by: hyesoo.yu --- diff --git a/drivers/gpu/exynos/g2d/g2d_task.c b/drivers/gpu/exynos/g2d/g2d_task.c index af335925e7f2..b01ecbe5727c 100644 --- a/drivers/gpu/exynos/g2d/g2d_task.c +++ b/drivers/gpu/exynos/g2d/g2d_task.c @@ -291,10 +291,8 @@ static void g2d_schedule_task(struct g2d_task *task) list_add_tail(&task->node, &g2d_dev->tasks_prepared); change_task_state_prepared(task); - if (!!(g2d_dev->state & (1 << G2D_DEVICE_STATE_SUSPEND))) - return; - - g2d_execute_task(g2d_dev, task); + if (!(g2d_dev->state & (1 << G2D_DEVICE_STATE_SUSPEND))) + g2d_execute_task(g2d_dev, task); spin_unlock_irqrestore(&g2d_dev->lock_task, flags); return;