From e1cb09ad31cf6cb724f219d0784219489987b102 Mon Sep 17 00:00:00 2001 From: Samantha Tran Date: Tue, 24 Aug 2021 11:43:16 -0700 Subject: [PATCH] disp: msm: sde: retry preclose commit in cases of -ERESTARTSYS This change allows the commit in preclose to be attempted a number of times in the event that the return value is -ERESTARTSYS. This can happen if there is some timing delay which is preventing the commit to go through completely and an error code is returned. Change-Id: I26d85d777be182bc153532d7c06f816c934783a4 Signed-off-by: Samantha Tran --- msm/sde/sde_kms.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/msm/sde/sde_kms.c b/msm/sde/sde_kms.c index 614d7f397c..8d8ada905b 100644 --- a/msm/sde/sde_kms.c +++ b/msm/sde/sde_kms.c @@ -2559,7 +2559,10 @@ error: list_for_each_entry_safe(fb, tfb, &fbs, filp_head) list_move_tail(&fb->filp_head, &file->fbs); - SDE_ERROR("atomic commit failed in preclose, ret:%d\n", ret); + if (ret == -EDEADLK || ret == -ERESTARTSYS) + SDE_DEBUG("atomic commit failed in preclose, ret:%d\n", ret); + else + SDE_ERROR("atomic commit failed in preclose, ret:%d\n", ret); goto end; } @@ -2608,7 +2611,7 @@ retry: for (i = 0; i < TEARDOWN_DEADLOCK_RETRY_MAX; i++) { ret = _sde_kms_remove_fbs(sde_kms, file, state); - if (ret != -EDEADLK) + if (ret != -EDEADLK && ret != -ERESTARTSYS) break; drm_atomic_state_clear(state); drm_modeset_backoff(&ctx);