From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 666771C8604 for ; Wed, 10 Jun 2026 03:54:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781063673; cv=none; b=aDtwz+TWM99xQFGjx8E/zSy3m7Xv6RUzzvKcTKDQajVJPifyN4PCCehnPx+2SOaBKfPAcNSxixOzT8xeeGqtC+rj/p1k1sh2iEgSUrqzT80rnBJNPreQllbJZRp0MADX0xGHbUYGGF8NYOCRlh6w6ktiA4Z68cOI6gDyvOWhYKQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781063673; c=relaxed/simple; bh=2WDryCEM+NggKWi9lFuSsNN07uExFizdE443jdYJnEw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=ia8/+yDR3Ev6J4EYnCF9gc5vpG+ErMzKDw6czpZ+jb0uLhQzNML+QnJi2Ub/Xwx+F3TeQtCz6I58El3Rc1z4zVy5OOPo0AE3ZJCG5sZfHfCoZaUvyhuLi33+8nComjlcuOmBCxQNHTYh3nGcuDYzJUkBBNMY8lR2B24BhH98xBY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=X0yFF/hi; arc=none smtp.client-ip=209.85.216.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="X0yFF/hi" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-36da151a152so4382814a91.1 for ; Tue, 09 Jun 2026 20:54:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781063672; x=1781668472; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=kizIObzKL4IBfyjyeIAkjO2Eens7kW7Bizncq6rSEY4=; b=X0yFF/hig8GmKgCYSbtDk1jYjpocTaVMqFPi2aTqJVrdBlRILHycRqjs53tMp/DIls vibaPYXS70GWcqDcaKJK/iXnexonm0utocpUVTKJ9F/KHRUcIVzrSrz/Aesvx/ffLYQ6 WFlV3M38csGt1bPwysCNZ7XRNUFbil/6MK5zJuddnfB0zt10gW56keiCActgEiBOhyed PeNc0ovUkSABaWljoce+RrNTNUZKiUGTmUr/58MmJZT5Wg6ELF7ketn0ifM3ZgzvoM7d FYxL7owSPeesgoshkiEK2xm6QktZk6JqBHyiGWWf2OizjJeXhtbti6tTSZmGY6EfZI4X TmYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781063672; x=1781668472; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=kizIObzKL4IBfyjyeIAkjO2Eens7kW7Bizncq6rSEY4=; b=nFak2iD3O13OqjxyGUewkVKfc1x9ywWkcGS7FYE54aYqCTEGm+rV9wW0YqGfs0/z8d Z0vrPi2uu4iZpR/NDVDJg7FQATk+SxulgyVGvus+yG8u4SbXqW0/K6ufLm1YZDeiSbVV iHSRFg/S07IhoJm1oFxGgwDpoDNUB8wBR4XzFCsHu99s+pzt0XKpacdCRuBtKiW9duoS VUh7M9uxiAgjfnz23+725UJM35Blpmdq3CIznzuUrSh6P7L7AGJYsBdYSQ2XL+at6oQV DHjbkLj3KSkCsJkdk5Vmp4BFClLzscIDJwurSG/QplYwza/FZfvOGsps+c8/cOmZmSwx u/kg== X-Forwarded-Encrypted: i=1; AFNElJ8hmzboJ28AS30Faxhjqw6C3XNb81H29d3DVwvYklF3+BgcoEQrWdEseQ3p4+JDsjVITM/29k0sC/8ugDE=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1al0ESLpXXtcWZxJCOmrmQv614CG8YQnHY/+tCmT1kWpVUQ2o gc4Xqit6g4coMdqfP7q2qz0/GYthX8UVXF/mXbbtKMRMW1Zrq9KUXlEM X-Gm-Gg: Acq92OGfJUtqSTkucBTEbemcpS7eIqjrxC+LUdosZ15cfytI5GFMX8gNsbFhKTO7F0D l0bb9nkcv8aGTQvFP/JB2Pf74y5c1U41TGPwOarn4320shTiNf1xbVoZ8NcL9tVJFqfzWtGSCGh A4b6OCfvOvgaly9OgSdLCvd5L5aIZpB66NaIZSUVzTEaowiAWcTCbah6sBJYdas3hUPNYfmle1N ec7uRYJ01qtxuCrO1ZcY/vPQ73XJyRR4NPZ9QmLWn6Chete9RWE8X3RVnlYdvG81p05K7l+dwZR TGU4bp+fCb0FcgBdSQLOhE46EBqBR0yL3vtY8o0uNWHbS4w0T9wOON1rZNIQXqYWylySnCWsw6N rkLTKPnPUxtzZqI0y9dCaWVPJIzD3MnNamX5sWOL6w0PGEkA0aRzsyJDF5xD0VqMWziAWE12BYF BhBzDval71T1WTmvkPsanR1Ew= X-Received: by 2002:a17:90b:4cc9:b0:36d:8e49:d8 with SMTP id 98e67ed59e1d1-370f04818e9mr25545873a91.15.1781063671578; Tue, 09 Jun 2026 20:54:31 -0700 (PDT) Received: from lgs.. ([101.36.111.22]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3762128130asm1180510a91.1.2026.06.09.20.54.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 20:54:31 -0700 (PDT) From: Guangshuo Li To: Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , David Airlie , Simona Vetter , Uma Shankar , Imre Deak , =?UTF-8?q?Micha=C5=82=20Grzelak?= , intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Guangshuo Li Subject: [PATCH v2] drm/i915: clear CRTC color blob pointers after dropping refs Date: Wed, 10 Jun 2026 11:54:19 +0800 Message-ID: <20260610035419.1596963-1-lgs201920130244@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit intel_crtc_free_hw_state() drops the CRTC color blob references, but leaves the corresponding pointers unchanged. This can matter in intel_crtc_prepare_cleared_state(), which frees the old CRTC hw state before calling intel_dp_tunnel_atomic_clear_stream_bw(). The latter can fail while looking up the DP tunnel group state, for example with -EDEADLK. If that happens, the function returns without completing the cleared state preparation. The failed atomic state will then be cleared by the atomic core and intel_crtc_free_hw_state() can be called again for the same state, dropping the same blob references again. Clear the blob pointers after dropping the references so repeated cleanup of the same CRTC hw state is safe. Fixes: fb69d0076e68 ("drm/i915/dp_tunnel: Fix error handling when clearing stream BW in atomic state") Suggested-by: Imre Deak Signed-off-by: Guangshuo Li --- v2: - Keep the original ordering in intel_crtc_prepare_cleared_state(). - Clear the blob reference pointers in intel_crtc_free_hw_state(), as suggested by Imre. drivers/gpu/drm/i915/display/intel_atomic.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c index 71b7325917b6..0cdae87e4bfc 100644 --- a/drivers/gpu/drm/i915/display/intel_atomic.c +++ b/drivers/gpu/drm/i915/display/intel_atomic.c @@ -294,6 +294,12 @@ static void intel_crtc_put_color_blobs(struct intel_crtc_state *crtc_state) void intel_crtc_free_hw_state(struct intel_crtc_state *crtc_state) { intel_crtc_put_color_blobs(crtc_state); + + crtc_state->hw.degamma_lut = NULL; + crtc_state->hw.gamma_lut = NULL; + crtc_state->hw.ctm = NULL; + crtc_state->pre_csc_lut = NULL; + crtc_state->post_csc_lut = NULL; } /** -- 2.43.0