From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Kroah-Hartman Subject: [PATCH 4.13 39/47] drm/nouveau: Fix error handling in nv50_disp_atomic_commit Date: Fri, 8 Sep 2017 15:19:11 +0200 Message-ID: <20170908131825.308167186@linuxfoundation.org> References: <20170908131823.546721606@linuxfoundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170908131823.546721606@linuxfoundation.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , dri-devel@lists.freedesktop.org, Daniel Vetter , Ben Skeggs , nouveau@lists.freedesktop.org, stable@vger.kernel.org List-Id: nouveau.vger.kernel.org NC4xMy1zdGFibGUgcmV2aWV3IHBhdGNoLiAgSWYgYW55b25lIGhhcyBhbnkgb2JqZWN0aW9ucywg cGxlYXNlIGxldCBtZSBrbm93LgoKLS0tLS0tLS0tLS0tLS0tLS0tCgpGcm9tOiBNYWFydGVuIExh bmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgoKY29tbWl0IDgxM2E3 ZTE2MDRlYWFkMWMyNzkyZDM3ZDQwMmUxYjQ4YjhkMGViM2YgdXBzdHJlYW0uCgpNYWtlIGl0IG1v cmUgY2xlYXIgdGhhdCBwb3N0IGNvbW1pdCByZXR1cm4gcmV0IGlzIHJlYWxseSByZXR1cm4gMCwK CmFuZCBhZGQgYSBtaXNzaW5nIGRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzIHdoZW4K ZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZmVuY2VzIGZhaWxzLgoKRml4ZXM6IDgzOWNhOTAz ZjEyZSAoImRybS9ub3V2ZWF1L2ttcy9udjUwOiB0cmFuc2l0aW9uIHRvIGF0b21pYyBpbnRlcmZh Y2VzIGludGVybmFsbHkiKQpDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgpDYzog ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzogbm91dmVhdUBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT4KTGluazogaHR0cDovL3BhdGNod29yay5mcmVlZGVza3RvcC5v cmcvcGF0Y2gvbXNnaWQvMjAxNzA3MTExNDMzMTQuMjE0OC0yLW1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbQpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5v cmc+ClttbGFua2hvcnN0OiBVc2UgaWYgKHJldCkgdG8gcmVtb3ZlIHRoZSBnb3RvIGluIHN1Y2Nl c3MgY2FzZS5dClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xs LmNoPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PgpTaWduZWQtb2ZmLWJ5OiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRp b24ub3JnPgoKLS0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYyB8ICAg IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5jCkBAIC00MTM0LDcgKzQxMzQsNyBA QCBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljCiAJaWYgKCFub25ibG9j aykgewogCQlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9mZW5jZXMoZGV2LCBzdGF0 ZSwgdHJ1ZSk7CiAJCWlmIChyZXQpCi0JCQlnb3RvIGRvbmU7CisJCQlnb3RvIGVycl9jbGVhbnVw OwogCX0KIAogCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3Rh dGUsIGkpIHsKQEAgLTQxNjIsNyArNDE2Miw3IEBAIG52NTBfZGlzcF9hdG9taWNfY29tbWl0KHN0 cnVjdCBkcm1fZGV2aWMKIAkJaWYgKGNydGMtPnN0YXRlLT5lbmFibGUpIHsKIAkJCWlmICghZHJt LT5oYXZlX2Rpc3BfcG93ZXJfcmVmKSB7CiAJCQkJZHJtLT5oYXZlX2Rpc3BfcG93ZXJfcmVmID0g dHJ1ZTsKLQkJCQlyZXR1cm4gcmV0OworCQkJCXJldHVybiAwOwogCQkJfQogCQkJYWN0aXZlID0g dHJ1ZTsKIAkJCWJyZWFrOwpAQCAtNDE3NCw2ICs0MTc0LDkgQEAgbnY1MF9kaXNwX2F0b21pY19j b21taXQoc3RydWN0IGRybV9kZXZpYwogCQlkcm0tPmhhdmVfZGlzcF9wb3dlcl9yZWYgPSBmYWxz ZTsKIAl9CiAKK2Vycl9jbGVhbnVwOgorCWlmIChyZXQpCisJCWRybV9hdG9taWNfaGVscGVyX2Ns ZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwogZG9uZToKIAlwbV9ydW50aW1lX3B1dF9hdXRvc3Vz cGVuZChkZXYtPmRldik7CiAJcmV0dXJuIHJldDsKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932845AbdIHNVh (ORCPT ); Fri, 8 Sep 2017 09:21:37 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:35214 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932824AbdIHNVc (ORCPT ); Fri, 8 Sep 2017 09:21:32 -0400 From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ben Skeggs , dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, Maarten Lankhorst , Sean Paul , Daniel Vetter Subject: [PATCH 4.13 39/47] drm/nouveau: Fix error handling in nv50_disp_atomic_commit Date: Fri, 8 Sep 2017 15:19:11 +0200 Message-Id: <20170908131825.308167186@linuxfoundation.org> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170908131823.546721606@linuxfoundation.org> References: <20170908131823.546721606@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.13-stable review patch. If anyone has any objections, please let me know. ------------------ From: Maarten Lankhorst commit 813a7e1604eaad1c2792d37d402e1b48b8d0eb3f upstream. Make it more clear that post commit return ret is really return 0, and add a missing drm_atomic_helper_cleanup_planes when drm_atomic_helper_wait_for_fences fails. Fixes: 839ca903f12e ("drm/nouveau/kms/nv50: transition to atomic interfaces internally") Cc: Ben Skeggs Cc: dri-devel@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/20170711143314.2148-2-maarten.lankhorst@linux.intel.com Reviewed-by: Sean Paul [mlankhorst: Use if (ret) to remove the goto in success case.] Reviewed-by: Daniel Vetter Signed-off-by: Daniel Vetter Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/nouveau/nv50_display.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c @@ -4134,7 +4134,7 @@ nv50_disp_atomic_commit(struct drm_devic if (!nonblock) { ret = drm_atomic_helper_wait_for_fences(dev, state, true); if (ret) - goto done; + goto err_cleanup; } for_each_plane_in_state(state, plane, plane_state, i) { @@ -4162,7 +4162,7 @@ nv50_disp_atomic_commit(struct drm_devic if (crtc->state->enable) { if (!drm->have_disp_power_ref) { drm->have_disp_power_ref = true; - return ret; + return 0; } active = true; break; @@ -4174,6 +4174,9 @@ nv50_disp_atomic_commit(struct drm_devic drm->have_disp_power_ref = false; } +err_cleanup: + if (ret) + drm_atomic_helper_cleanup_planes(dev, state); done: pm_runtime_put_autosuspend(dev->dev); return ret;