From nobody Tue Apr 7 20:08:37 2026 Received: from mx07-00376f01.pphosted.com (mx07-00376f01.pphosted.com [185.132.180.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB47A3EFD0A for ; Fri, 27 Feb 2026 14:13:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.132.180.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772201593; cv=none; b=fVKbcVIQIOsXPWw5idb78dBayuF/pTWnpYwPfxT3JV0mDhnmHNSdpxDk+miodk973H0+Js87qZ1ZBoskjxSA2xgl+fAKligabgF1yMr6SxOYIvCR1FHrOWv9TF7kVt6uUiCTOgx03gT/OawSGKhKIHQpBgegNpz/DVQz2qqC+WI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772201593; c=relaxed/simple; bh=CTZ8p65aNyqfbC60o557B+s2G3xiBfZ/LVJaYgYYgJY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=FjUwehpXB9ucgT1JwSItcZGkooLQQo2NXTm1y+dA7eVVxUJ6rEqBiqdLsZUphuQMaLNWcY+TbTc7Yr9Ov0qcBz6IHPcRUJQENuSqMhZlr9uUBkfp8FS+apoc1XFKWkb+s1mteMt2H42S1bJ/wfrPh4PkP6pbSBSTyIE2p/VWVdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=imgtec.com; spf=pass smtp.mailfrom=imgtec.com; dkim=pass (2048-bit key) header.d=imgtec.com header.i=@imgtec.com header.b=eJqcTAae; arc=none smtp.client-ip=185.132.180.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=imgtec.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=imgtec.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=imgtec.com header.i=@imgtec.com header.b="eJqcTAae" Received: from pps.filterd (m0168889.ppops.net [127.0.0.1]) by mx07-00376f01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61R5SXmT3478147; Fri, 27 Feb 2026 14:12:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imgtec.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=dk201812; bh=A 0JjkVhfrOJXIb6+ST0rwukaf25muO07fqksCDvaZyg=; b=eJqcTAaetOOgYU5dj xxxiPeRF/nj8Mujh+1MdxsTGlvlatsjF4a9kzV5y56cEQcGPToqyrWirb/KjmZkm 93MEVhDeu3T9mgTavZCkgZu5lb3m7fINc694MPYGTxnp8BL07ZWWzy4Bs5nml02A hGga+BQ3Hkbz/9al5vDjazHHYuA3nbRHwqKZ+acV5RJGjWF65LyY2wYcLtpubQ8E RaA+6HusQZ3iLue0cCs3HaEz9XV++VO5q6C4BWzD9Jw/0CY0JY5k64hEwtFP/ftJ PuLJTS8k59nHqoTEOLLC971PWl9b1ZmiufDSjuMLf9G1usJvJSZAeMPWos8DK62q 6Dakg== Received: from hhmail01.hh.imgtec.org (83-244-153-141.cust-83.exponential-e.net [83.244.153.141]) by mx07-00376f01.pphosted.com (PPS) with ESMTPS id 4cjdvv9c6p-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Feb 2026 14:12:57 +0000 (GMT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa (172.25.6.240) by HHMAIL01.hh.imgtec.org (10.100.10.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Fri, 27 Feb 2026 14:12:56 +0000 From: Matt Coster Date: Fri, 27 Feb 2026 14:12:49 +0000 Subject: [PATCH 3/3] drm/imagination: Ensure struct pvr_device->power is initialized Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260227-single-domain-power-fixes-v1-3-d37ba0825f7c@imgtec.com> References: <20260227-single-domain-power-fixes-v1-0-d37ba0825f7c@imgtec.com> In-Reply-To: <20260227-single-domain-power-fixes-v1-0-d37ba0825f7c@imgtec.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter CC: Mark Brown , Geert Uytterhoeven , Frank Binns , Alessio Belle , Brajesh Gupta , Alexandru Dadu , , , "Matt Coster" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2862; i=matt.coster@imgtec.com; h=from:subject:message-id; bh=CTZ8p65aNyqfbC60o557B+s2G3xiBfZ/LVJaYgYYgJY=; b=owGbwMvMwCFWuUfy8817WRsYT6slMWQuXJYmtfDRFr9DC7Q/fdyz8dHHhOyF+xJUH1n8/qKhe 6Ihp6C6p6OUhUGMg0FWTJFlxwrLFWp/1LQkbvwqhpnDygQyhIGLUwAmEraH4b9TUIb5vZa5mZvq DlezPljkIWwSxdQQ0lRl+u/qRPek+7sY/tk9i3ThPOcSH/zx/Vyvpww//rsLf75/cZ5x+6ofesz lImwA X-Developer-Key: i=matt.coster@imgtec.com; a=openpgp; fpr=05A40CFCE7269D61D97100A1747F0A9036F90DFA X-Authority-Analysis: v=2.4 cv=CL0nnBrD c=1 sm=1 tr=0 ts=69a1a669 cx=c_pps a=AKOq//PuzOIrVTIF9yBwbA==:117 a=AKOq//PuzOIrVTIF9yBwbA==:17 a=N16aOacbDtMA:10 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=kQ-hrUj2-E3RCbRHssb7:22 a=7RYWX5rxfSByPNLylY2M:22 a=r_1tXGB3AAAA:8 a=rcCXANk18YU-WH22cxUA:9 a=QEXdDO2ut3YA:10 a=t8nPyN_e6usw4ciXM-Pk:22 X-Proofpoint-GUID: sqTZOR1PcrG47CWOXpSqwpRgHV4GCLtA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDEyNSBTYWx0ZWRfX/4FHADWe9Dvv fy4KVOcxwUFxwuqZeoElDClzO5YDUSO08Ep+ccBKNnH75E3humujRpwbjsboHjGqmsJl1eHaVBT kt03wAz3T6wlQ1aFnIAPnHPYOnmKI42QAuxaE0jUMeAGRN8haOuKp/TfrdljRBFPJBIAC8YSI5G 40aZJwjzPPUTy5tfnXggxbPIKjkPkgvcDIqYT84k45SIbfINdIfQV6g94mDk+8bf2WLg1K5dzQf wjUE9GYcBKLCBSKR/AMDvdQLzIwVN0HbDp4kQthzWDg1J78FZwYtw0VgPbfLAuyA4r3jYZ0CcEO CDIDYwy0YTnBo8E/gh+J81FtOQB+kebVvGG57L7ADH5AlSBpOOpRwtvJs11onu06y8YHFAS1R5X Ko4z3qMwsIEJfqLUmR8pL96MjJNvQi4l+Dpb8gJCSzKxpyOVNk9ImQykYRhpWcVziYKcWYdFJVg QMFeL+YiJ191vr+HYMA== X-Proofpoint-ORIG-GUID: sqTZOR1PcrG47CWOXpSqwpRgHV4GCLtA When pvr_power_domains_init() handles <=3D1 power domains, the content of struct pvr_device->power was previously left uninitialized. Fixes: e19cc5ab347e3 ("drm/imagination: Use dev_pm_domain_attach_list()") Signed-off-by: Matt Coster --- drivers/gpu/drm/imagination/pvr_power.c | 44 ++++++++++++++++++++++-------= ---- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/imagination/pvr_power.c b/drivers/gpu/drm/imag= ination/pvr_power.c index 5a1fda685f2c..7a8765c0c1ed 100644 --- a/drivers/gpu/drm/imagination/pvr_power.c +++ b/drivers/gpu/drm/imagination/pvr_power.c @@ -598,8 +598,8 @@ int pvr_power_domains_init(struct pvr_device *pvr_dev) struct drm_device *drm_dev =3D from_pvr_device(pvr_dev); struct device *dev =3D drm_dev->dev; =20 - struct device_link **domain_links __free(kfree) =3D NULL; struct dev_pm_domain_list *domains =3D NULL; + struct device_link **domain_links =3D NULL; int domain_count; int link_count; =20 @@ -608,23 +608,30 @@ int pvr_power_domains_init(struct pvr_device *pvr_dev) =20 domain_count =3D of_count_phandle_with_args(dev->of_node, "power-domains", "#power-domain-cells"); - if (domain_count < 0) - return domain_count; + if (domain_count < 0) { + err =3D domain_count; + goto out; + } =20 - if (domain_count <=3D 1) - return 0; + if (domain_count <=3D 1) { + err =3D 0; + goto out; + } =20 if (domain_count > ARRAY_SIZE(ROGUE_PD_NAMES)) { drm_err(drm_dev, "%s() only supports %zu domains on Rogue", __func__, ARRAY_SIZE(ROGUE_PD_NAMES)); - return -EOPNOTSUPP; + err =3D -EOPNOTSUPP; + goto out; } =20 link_count =3D domain_count - 1; =20 domain_links =3D kzalloc_objs(*domain_links, link_count); - if (!domain_links) - return -ENOMEM; + if (!domain_links) { + err =3D -ENOMEM; + goto out; + } =20 const struct dev_pm_domain_attach_data pd_attach_data =3D { .pd_names =3D ROGUE_PD_NAMES, @@ -634,7 +641,7 @@ int pvr_power_domains_init(struct pvr_device *pvr_dev) =20 err =3D dev_pm_domain_attach_list(dev, &pd_attach_data, &domains); if (err < 0) - return err; + goto err_free_links; =20 for (i =3D 0; i < link_count; i++) { struct device_link *link; @@ -650,18 +657,25 @@ int pvr_power_domains_init(struct pvr_device *pvr_dev) domain_links[i] =3D link; } =20 - pvr_dev->power =3D (struct pvr_device_power){ - .domains =3D domains, - .domain_links =3D no_free_ptr(domain_links), - }; - - return 0; + err =3D 0; + goto out; =20 err_unlink: while (--i >=3D 0) device_link_del(domain_links[i]); =20 dev_pm_domain_detach_list(domains); + domains =3D NULL; + +err_free_links: + kfree(domain_links); + domain_links =3D NULL; + +out: + pvr_dev->power =3D (struct pvr_device_power){ + .domains =3D domains, + .domain_links =3D domain_links, + }; =20 return err; } --=20 2.53.0