From: Maarten Lankhorst Date: Tue, 11 Jul 2017 14:33:08 +0000 (+0200) Subject: drm/mediatek: Handle drm_atomic_helper_swap_state failure X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=76cc07189da7778d265cf3219d66781dd7d4c33b;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git drm/mediatek: Handle drm_atomic_helper_swap_state failure drm_atomic_helper_swap_state() will be changed to interruptible waiting in the next few commits, so all drivers have to be changed to handling failure. Signed-off-by: Maarten Lankhorst Cc: CK Hu Cc: Philipp Zabel Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Link: http://patchwork.freedesktop.org/patch/msgid/20170711143314.2148-7-maarten.lankhorst@linux.intel.com Reviewed-by: Philipp Zabel Reviewed-by: Sean Paul Signed-off-by: Daniel Vetter --- diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index be0741638f94..b2596f35104b 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -109,7 +109,12 @@ static int mtk_atomic_commit(struct drm_device *drm, mutex_lock(&private->commit.lock); flush_work(&private->commit.work); - drm_atomic_helper_swap_state(state, true); + ret = drm_atomic_helper_swap_state(state, true); + if (ret) { + mutex_unlock(&private->commit.lock); + drm_atomic_helper_cleanup_planes(drm, state); + return ret; + } drm_atomic_state_get(state); if (async)