From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 2/2] drm/atomic: clear new_state pointers at hw_done Date: Fri, 1 Nov 2019 11:07:13 -0700 Message-ID: <20191101180713.5470-2-robdclark@gmail.com> References: <20191101180713.5470-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <20191101180713.5470-1-robdclark@gmail.com> Sender: linux-kernel-owner@vger.kernel.org To: dri-devel@lists.freedesktop.org Cc: Sean Paul , Maarten Lankhorst , Rob Clark , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , open list List-Id: dri-devel@lists.freedesktop.org From: Rob Clark The new state should not be accessed after this point. Clear the pointers to make that explicit. This makes the error corrected in the previous patch more obvious. Signed-off-by: Rob Clark --- drivers/gpu/drm/drm_atomic_helper.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 732bd0ce9241..176831df8163 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -2234,13 +2234,42 @@ EXPORT_SYMBOL(drm_atomic_helper_fake_vblank); */ void drm_atomic_helper_commit_hw_done(struct drm_atomic_state *old_state) { + struct drm_connector *connector; + struct drm_connector_state *old_conn_state, *new_conn_state; struct drm_crtc *crtc; struct drm_crtc_state *old_crtc_state, *new_crtc_state; + struct drm_plane *plane; + struct drm_plane_state *old_plane_state, *new_plane_state; struct drm_crtc_commit *commit; + struct drm_private_obj *obj; + struct drm_private_state *old_obj_state, *new_obj_state; int i; + /* + * After this point, drivers should not access the permanent modeset + * state, so we also clear the new_state pointers to make this + * restriction explicit. + * + * For the CRTC state, we do this in the same loop where we signal + * hw_done, since we still need to new_crtc_state to fish out the + * commit. + */ + + for_each_oldnew_connector_in_state(old_state, connector, old_conn_state, new_conn_state, i) { + old_state->connectors[i].new_state = NULL; + } + + for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, new_plane_state, i) { + old_state->planes[i].new_state = NULL; + } + + for_each_oldnew_private_obj_in_state(old_state, obj, old_obj_state, new_obj_state, i) { + old_state->private_objs[i].new_state = NULL; + } + for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) { old_state->crtcs[i].new_self_refresh_active = new_crtc_state->self_refresh_active; + old_state->crtcs[i].new_state = NULL; commit = new_crtc_state->commit; if (!commit) -- 2.21.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D42DC47E49 for ; Fri, 1 Nov 2019 18:11:45 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0A10B205C9 for ; Fri, 1 Nov 2019 18:11:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0A10B205C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7EC5B6F84B; Fri, 1 Nov 2019 18:11:44 +0000 (UTC) Received: from mail-pg1-x541.google.com (mail-pg1-x541.google.com [IPv6:2607:f8b0:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id ED0146F84B for ; Fri, 1 Nov 2019 18:11:42 +0000 (UTC) Received: by mail-pg1-x541.google.com with SMTP id j30so3471188pgn.5 for ; Fri, 01 Nov 2019 11:11:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=D6pp+waK1B6eoQZsfgu20T9S0S5gE50J59ZyY893XeU=; b=i/0fpdF1ACMb2c1ThnuK5jXH7eMfU3w5DEVN6y8xvbldvau3nsFofwMwCynr7dKCQL oOH6Cyz2oq79rG+4T9fjdtOgvgZO0k7q8CAeo4lPSXhPerpxgIkPYPCgglbbM75xMQLi SouOMFtchOoFTHOiGGjrFRPHFcR7EFz2qZ2tqCCqGW6ma9AVykAosfVKpaGRGV+ZAhBI wEQHHT4BgLPy8n8uJ3+TnXwye7ftPQuOS+jN1WIOCMcu6H3gI3ii7X7OU6R7rJ1gXNQL ZWP99Cfu2rtDl/Vq/xfolNwfDXSsXs+Xp0mroS4MP8bRaVj8Tu8lYR+XS/2aCEP4jAbY b5yA== X-Gm-Message-State: APjAAAXMbCi8gJP9ZP0Z615jVD8P1C9ppYBos3FaMc6oLum9Nxi3x8A7 TBkOkjhyxvlW8Zs2HUsmowLhulbIeRU= X-Google-Smtp-Source: APXvYqyntvvTNEB7b5YRQX6acrnW6EDOe32CdQyaoFyh8/yeQSOf08HCyibGS7j+0s+Mu2D+PSSeIg== X-Received: by 2002:a17:90a:8816:: with SMTP id s22mr12344442pjn.31.1572631902246; Fri, 01 Nov 2019 11:11:42 -0700 (PDT) Received: from localhost ([100.118.89.209]) by smtp.gmail.com with ESMTPSA id h5sm11525487pjc.9.2019.11.01.11.11.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Nov 2019 11:11:41 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Subject: [PATCH 2/2] drm/atomic: clear new_state pointers at hw_done Date: Fri, 1 Nov 2019 11:07:13 -0700 Message-Id: <20191101180713.5470-2-robdclark@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191101180713.5470-1-robdclark@gmail.com> References: <20191101180713.5470-1-robdclark@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=D6pp+waK1B6eoQZsfgu20T9S0S5gE50J59ZyY893XeU=; b=ctnx2Mq7v0ZwoxZpgw8YqdbWutmx0MLZKmxmioikkvICWrTw1w/6AKRvR8X0KBJo1Q H0q5nPYMGRreXVKlEPeoh4VtEN1K97KsqpD13ts5v4lWQFJg4H2P5+JzG7oAlzLrVo1p oI5Os+HHsLwy+OUClFC8ZVGFwLA6KHN6/4DoMryIAOT7NsStmpHqwZFUtokc9oZL/kT+ cGvXVaiQTIs40ctu7V2vStfRIJlOGEpU2g9cmAKmuhy+UxHp9xJWz1vqEaJ+QNmFvjN+ y8MDer/CsYviNag0SnshQ6oPqAx3IpnuaI3HL54iKUW3BxQAZRGqCosbW1KAi6YtEudk jw3Q== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Clark , David Airlie , open list , Sean Paul , Sean Paul Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191101180713.ss5l0hfmOVW5846W2F16fg9tvWYrR93PS4GQQV7LjSk@z> RnJvbTogUm9iIENsYXJrIDxyb2JkY2xhcmtAY2hyb21pdW0ub3JnPgoKVGhlIG5ldyBzdGF0ZSBz aG91bGQgbm90IGJlIGFjY2Vzc2VkIGFmdGVyIHRoaXMgcG9pbnQuICBDbGVhciB0aGUKcG9pbnRl cnMgdG8gbWFrZSB0aGF0IGV4cGxpY2l0LgoKVGhpcyBtYWtlcyB0aGUgZXJyb3IgY29ycmVjdGVk IGluIHRoZSBwcmV2aW91cyBwYXRjaCBtb3JlIG9idmlvdXMuCgpTaWduZWQtb2ZmLWJ5OiBSb2Ig Q2xhcmsgPHJvYmRjbGFya0BjaHJvbWl1bS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfaGVscGVyLmMgfCAyOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxl IGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j CmluZGV4IDczMmJkMGNlOTI0MS4uMTc2ODMxZGY4MTYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwpAQCAtMjIzNCwxMyArMjIzNCw0MiBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9t aWNfaGVscGVyX2Zha2VfdmJsYW5rKTsKICAqLwogdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jb21t aXRfaHdfZG9uZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQogeworCXN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg Km9sZF9jb25uX3N0YXRlLCAqbmV3X2Nvbm5fc3RhdGU7CiAJc3RydWN0IGRybV9jcnRjICpjcnRj OwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0 ZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpv bGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7CiAJc3RydWN0IGRybV9jcnRjX2NvbW1p dCAqY29tbWl0OworCXN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogKm9iajsKKwlzdHJ1Y3QgZHJtX3By aXZhdGVfc3RhdGUgKm9sZF9vYmpfc3RhdGUsICpuZXdfb2JqX3N0YXRlOwogCWludCBpOwogCisJ LyoKKwkgKiBBZnRlciB0aGlzIHBvaW50LCBkcml2ZXJzIHNob3VsZCBub3QgYWNjZXNzIHRoZSBw ZXJtYW5lbnQgbW9kZXNldAorCSAqIHN0YXRlLCBzbyB3ZSBhbHNvIGNsZWFyIHRoZSBuZXdfc3Rh dGUgcG9pbnRlcnMgdG8gbWFrZSB0aGlzCisJICogcmVzdHJpY3Rpb24gZXhwbGljaXQuCisJICoK KwkgKiBGb3IgdGhlIENSVEMgc3RhdGUsIHdlIGRvIHRoaXMgaW4gdGhlIHNhbWUgbG9vcCB3aGVy ZSB3ZSBzaWduYWwKKwkgKiBod19kb25lLCBzaW5jZSB3ZSBzdGlsbCBuZWVkIHRvIG5ld19jcnRj X3N0YXRlIHRvIGZpc2ggb3V0IHRoZQorCSAqIGNvbW1pdC4KKwkgKi8KKworCWZvcl9lYWNoX29s ZG5ld19jb25uZWN0b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uZWN0b3IsIG9sZF9jb25uX3N0 YXRlLCBuZXdfY29ubl9zdGF0ZSwgaSkgeworCQlvbGRfc3RhdGUtPmNvbm5lY3RvcnNbaV0ubmV3 X3N0YXRlID0gTlVMTDsKKwl9CisKKwlmb3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUob2xk X3N0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKKwkJ b2xkX3N0YXRlLT5wbGFuZXNbaV0ubmV3X3N0YXRlID0gTlVMTDsKKwl9CisKKwlmb3JfZWFjaF9v bGRuZXdfcHJpdmF0ZV9vYmpfaW5fc3RhdGUob2xkX3N0YXRlLCBvYmosIG9sZF9vYmpfc3RhdGUs IG5ld19vYmpfc3RhdGUsIGkpIHsKKwkJb2xkX3N0YXRlLT5wcml2YXRlX29ianNbaV0ubmV3X3N0 YXRlID0gTlVMTDsKKwl9CisKIAlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShvbGRfc3Rh dGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewogCQlvbGRfc3Rh dGUtPmNydGNzW2ldLm5ld19zZWxmX3JlZnJlc2hfYWN0aXZlID0gbmV3X2NydGNfc3RhdGUtPnNl bGZfcmVmcmVzaF9hY3RpdmU7CisJCW9sZF9zdGF0ZS0+Y3J0Y3NbaV0ubmV3X3N0YXRlID0gTlVM TDsKIAogCQljb21taXQgPSBuZXdfY3J0Y19zdGF0ZS0+Y29tbWl0OwogCQlpZiAoIWNvbW1pdCkK LS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DAA88CA9ECF for ; Fri, 1 Nov 2019 18:11:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AFD73217F9 for ; Fri, 1 Nov 2019 18:11:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ctnx2Mq7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727359AbfKASLn (ORCPT ); Fri, 1 Nov 2019 14:11:43 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:34245 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726866AbfKASLn (ORCPT ); Fri, 1 Nov 2019 14:11:43 -0400 Received: by mail-pg1-f195.google.com with SMTP id e4so6975753pgs.1 for ; Fri, 01 Nov 2019 11:11:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=D6pp+waK1B6eoQZsfgu20T9S0S5gE50J59ZyY893XeU=; b=ctnx2Mq7v0ZwoxZpgw8YqdbWutmx0MLZKmxmioikkvICWrTw1w/6AKRvR8X0KBJo1Q H0q5nPYMGRreXVKlEPeoh4VtEN1K97KsqpD13ts5v4lWQFJg4H2P5+JzG7oAlzLrVo1p oI5Os+HHsLwy+OUClFC8ZVGFwLA6KHN6/4DoMryIAOT7NsStmpHqwZFUtokc9oZL/kT+ cGvXVaiQTIs40ctu7V2vStfRIJlOGEpU2g9cmAKmuhy+UxHp9xJWz1vqEaJ+QNmFvjN+ y8MDer/CsYviNag0SnshQ6oPqAx3IpnuaI3HL54iKUW3BxQAZRGqCosbW1KAi6YtEudk jw3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=D6pp+waK1B6eoQZsfgu20T9S0S5gE50J59ZyY893XeU=; b=pK0vGwt+s512Z6aTBFuE6rDJ5mYzl7Jn5wf4J5nrHm8ETDzyUM8HGX0CS5ql+VqfA+ 96usvDdOL+AKbVnFbr0MnLH72HaZEcoCJslPmicIFcwm6bCZwzBkYqOwPdaae6SUKlzz ZHMF4k1fj54ZoOJZeRDF5Hy981FDSvX75pL1U0gInmr1XtsgtIuqU2QnI1P0c7/Bjz5t rqqHa6YzBWKbMXfsCfq2lPwJiq/Vw2FWMZ8YA2SbAAZpjV7b0LQXdqOVhwI+D0yIV7rM /irevEG8tzwPgEQJ94YKj6tB03P0ovJI6lG8qqeZq0YqrbJqe6fyEL0POsWpbkLlC0xg ylIg== X-Gm-Message-State: APjAAAUZXSpl4KvxSCYMehHNlTIYiFI+LA55UFOOVXNkvLaiFx3dn+V6 O+33MJR3Y/dBgxHTQrRLLQo= X-Google-Smtp-Source: APXvYqyntvvTNEB7b5YRQX6acrnW6EDOe32CdQyaoFyh8/yeQSOf08HCyibGS7j+0s+Mu2D+PSSeIg== X-Received: by 2002:a17:90a:8816:: with SMTP id s22mr12344442pjn.31.1572631902246; Fri, 01 Nov 2019 11:11:42 -0700 (PDT) Received: from localhost ([100.118.89.209]) by smtp.gmail.com with ESMTPSA id h5sm11525487pjc.9.2019.11.01.11.11.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Nov 2019 11:11:41 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: Sean Paul , Maarten Lankhorst , Rob Clark , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH 2/2] drm/atomic: clear new_state pointers at hw_done Date: Fri, 1 Nov 2019 11:07:13 -0700 Message-Id: <20191101180713.5470-2-robdclark@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191101180713.5470-1-robdclark@gmail.com> References: <20191101180713.5470-1-robdclark@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rob Clark The new state should not be accessed after this point. Clear the pointers to make that explicit. This makes the error corrected in the previous patch more obvious. Signed-off-by: Rob Clark --- drivers/gpu/drm/drm_atomic_helper.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 732bd0ce9241..176831df8163 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -2234,13 +2234,42 @@ EXPORT_SYMBOL(drm_atomic_helper_fake_vblank); */ void drm_atomic_helper_commit_hw_done(struct drm_atomic_state *old_state) { + struct drm_connector *connector; + struct drm_connector_state *old_conn_state, *new_conn_state; struct drm_crtc *crtc; struct drm_crtc_state *old_crtc_state, *new_crtc_state; + struct drm_plane *plane; + struct drm_plane_state *old_plane_state, *new_plane_state; struct drm_crtc_commit *commit; + struct drm_private_obj *obj; + struct drm_private_state *old_obj_state, *new_obj_state; int i; + /* + * After this point, drivers should not access the permanent modeset + * state, so we also clear the new_state pointers to make this + * restriction explicit. + * + * For the CRTC state, we do this in the same loop where we signal + * hw_done, since we still need to new_crtc_state to fish out the + * commit. + */ + + for_each_oldnew_connector_in_state(old_state, connector, old_conn_state, new_conn_state, i) { + old_state->connectors[i].new_state = NULL; + } + + for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, new_plane_state, i) { + old_state->planes[i].new_state = NULL; + } + + for_each_oldnew_private_obj_in_state(old_state, obj, old_obj_state, new_obj_state, i) { + old_state->private_objs[i].new_state = NULL; + } + for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) { old_state->crtcs[i].new_self_refresh_active = new_crtc_state->self_refresh_active; + old_state->crtcs[i].new_state = NULL; commit = new_crtc_state->commit; if (!commit) -- 2.21.0