From nobody Tue Apr 7 18:48:09 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 2C06D23E334 for ; Fri, 27 Feb 2026 14:13:12 +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=1772201594; cv=none; b=ZrdV7NoFv8sn5Uejv6rXd2X9lFWbsxkxTgS0Q8p+kGO5hcFEYJT7nu0dQiWyCgK9OLX13z1CaUJrd4viy6yN8Cze6sZLVq0stHt+C6KEzySeRljIt2SNsrbYSSY8oTi6l6f8D80Il+slPHIdOQfh2LgkZxn+FTddwsFhw3CL8G8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772201594; c=relaxed/simple; bh=jBgKnCq+YL3th6PRa1/ELKZ0oCwTC2bVWQAhD/mwuOA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=m0vqqbO1D+UuT4fTZybUOucxit8WlF0oxYk8z7V/tgIGyuBBKg8Uf4xmQd2zVv7gtAWHYUidjJrllayO2P3KmWst1Fhx2Vno9YAADcHDH1gmflgSRsYzl598b5moXSJOE3i8F4Ndtj0GTBBJD4Rl496ZGbLX2q6DbiRTlWo3x+g= 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=MFvErwEG; 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="MFvErwEG" 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 61R5SXmR3478147; Fri, 27 Feb 2026 14:12:56 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=W nzD+Mqz10RbIBjtNxU1/ZOP6fPHxGt3wm8hxVeHwq8=; b=MFvErwEGIMSFnDRfq vblweF0ARZeFtogZh+dbYvHSKr365/cELom8ShED2lsPH8TRouOQ+DM283kt6C3D K8zH4flh64839Ke685AM6omEBpc4/KVVkO/nt0GMNMpledPB/iCNPYO0hBNrbrfc G2tBWpLoWBfdsqlWaXEfGEgTfEop+mErBKNPVSs94/pmaWQjBfLWqrTdmyeESNsJ 7O0UWZDWAua1j7dqRUPO/ow4ZXy1in15jmD3pVidTIF/vRZVmyVYGEXcnrE7RVJr XzEKZF4N2QvNMv56iDXNwMkg7rZzPCTh+L6lCwWe8a4PEQxc63hJfOmQ4Kh5TJft /CExQ== 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-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Feb 2026 14:12:56 +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:55 +0000 From: Matt Coster Date: Fri, 27 Feb 2026 14:12:47 +0000 Subject: [PATCH 1/3] drm/imagination: Check for NULL struct dev_pm_domain_list 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-1-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=2010; i=matt.coster@imgtec.com; h=from:subject:message-id; bh=jBgKnCq+YL3th6PRa1/ELKZ0oCwTC2bVWQAhD/mwuOA=; b=owGbwMvMwCFWuUfy8817WRsYT6slMWQuXJbmyBhhPt+3V6xhvsMh9n3OpRXyXw6WF8jc5j/UL 54wa6JdRykLgxgHg6yYIsuOFZYr1P6oaUnc+FUMM4eVCWQIAxenAEzk8haGf1pFR584MyzzyU4p lo1YttfNpq3Gfe2+P0+y7F82p6966sTIsPOaAmuv7Cz39MzHrVKOPen3rx9L/3kg1ftYsIPTxWv 7mQE= 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=69a1a668 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=VwQbUJbxAAAA:8 a=qNABUOcEAAAA:8 a=r_1tXGB3AAAA:8 a=nMjM23kXYAJxtPFA7vEA:9 a=QEXdDO2ut3YA:10 a=Ytm653ucTKQjCvbzLygB:22 a=t8nPyN_e6usw4ciXM-Pk:22 X-Proofpoint-GUID: yoOM3qXgbwvCmRiZ-6E3GQ7H8FxApYHk X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDEyNSBTYWx0ZWRfX5MHVgQesMRWe fjFBFpHWNgnVRe+U2qSaObrdyhBvsJGjzdiKuYnxAsyIO92/USQ+V8JAbNUZAu0tK0X860wbhv0 rvGmFWT5s93VMk5WJK1UnvAYHhlYNtQB+qUiQXNiV6frBSlsZkgLev0Uu7y7fNY4mKBrs6efWyO ufJ4er1FNsLdgSYF+iY3U1VBgeUgiV8Wt61iKjGXjx89c3ZmiVMNs8pDid+GmnU7mcKArD+Jr+K it8YPzjDjLQxr62fLfGiDc9bZqs+KqfPJ1G2JOAeYjbdZAuqUK72kibUzPf0MhFVIC8pkqZ0D69 /jYlL7Q7pD+BflUQGAKIzw9yggsmJ8MfoO+O+mz4hOu0um0PRylPIb3EH4t0+286o5G2qZIErJk mg2dE7cuW+qRWReDNBplCC2+yyrAMjjZMIaWEEXIqkYlSj56NjksUJJnYRTme9ImFLiCHEz28YL ixGd7rsFULCC/bRcKmA== X-Proofpoint-ORIG-GUID: yoOM3qXgbwvCmRiZ-6E3GQ7H8FxApYHk While dev_pm_domain_detach_list() itself contains the necessary NULL check, the access to struct dev_pm_domain_list->num_pds does not and thus faults on devices with <=3D1 power domains (where the struct dev_pm_domain_list machinery is skipped for simplicity). This can be reproduced on AM625, which produces the following log[1]: [ 10.820056] powervr fd00000.gpu: Direct firmware load for powervr/rogue_= 33.15.11.3_v1.fw failed with error -2 [ 10.831903] powervr fd00000.gpu: [drm] *ERROR* failed to load firmware p= owervr/rogue_33.15.11.3_v1.fw (err=3D-2) ... [ 10.844023] Unable to handle kernel NULL pointer dereference at virtual = address 0000000000000018 ... [ 11.090162] Call trace: [ 11.092600] pvr_power_domains_fini+0x18/0xa0 [powervr] (P) [ 11.098218] pvr_probe+0x100/0x14c [powervr] [ 11.102505] platform_probe+0x5c/0xa4 Fixes: e19cc5ab347e3 ("drm/imagination: Use dev_pm_domain_attach_list()") Reported-by: Mark Brown Closes: https://lore.kernel.org/r/c353fdef-9ccd-4a11-a527-ab4a792d8e70@sire= na.org.uk/ [1] Signed-off-by: Matt Coster Reviewed-by: Alessio Belle Tested-by: Mark Brown --- drivers/gpu/drm/imagination/pvr_power.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/imagination/pvr_power.c b/drivers/gpu/drm/imag= ination/pvr_power.c index 006a72ed5064..be8018085b2d 100644 --- a/drivers/gpu/drm/imagination/pvr_power.c +++ b/drivers/gpu/drm/imagination/pvr_power.c @@ -668,14 +668,16 @@ void pvr_power_domains_fini(struct pvr_device *pvr_de= v) { struct pvr_device_power *pvr_power =3D &pvr_dev->power; =20 - int i =3D (int)pvr_power->domains->num_pds - 1; + if (!pvr_power->domains) + goto out; =20 - while (--i >=3D 0) + for (int i =3D (int)pvr_power->domains->num_pds - 2; i >=3D 0; --i) device_link_del(pvr_power->domain_links[i]); =20 dev_pm_domain_detach_list(pvr_power->domains); =20 kfree(pvr_power->domain_links); =20 +out: *pvr_power =3D (struct pvr_device_power){ 0 }; } --=20 2.53.0 From nobody Tue Apr 7 18:48:09 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 EB3F03806A5 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=OXUJaVmtH1zD5V8IE/10UeONn9JL6MCRx4SoNDBZF2y1PNywllJ9K8n2wtsyccosu0jR0C/P43vyyyI2DyRj5FCRQXG7aqC6pktgxmcOtvBvWjPvCSJUrZKEjI8h9G/vemnwDRV7adCjbTIXdmIjSoYwXAQjCcKW/gw2p7WHWgc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772201593; c=relaxed/simple; bh=m9V0bxbKRVB3O+Zl+TeUVN0NGhAD01mkVzf97aIRnJk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=A5PCkxpErfztp4mgKR/4+KiYKKIj/cv/gH+YgtZg2Onc+DE38hurLMTs2mT3GIe+kWjjLLFmfn6npusZ0gO1raEcsMTbdN83kgprAqVZUTMXUpYYDyqb3Avb/ENfnGwp/7Sa0rwokmqeJwXoeZUP8tTdpwTHLtygM3YkFHALl8Q= 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=HVvYYrI8; 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="HVvYYrI8" 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 61R5SXmS3478147; 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=1 UcLPpIZ6vY8x/Gzvls+GkPpApysdkzPLTtIeVGTsUU=; b=HVvYYrI8MYgH8h1en h9GE+Lr7mL/wyWgbpeFbxelf44dSKYd8qOem2peQ678nISNgTuiI493E6PYIDf+0 islX7cA8eYYBhEef0dD1Rhc/SU/ZL4GhtqUyITRoXYGmBzCeAdFj8rS1H/+2pjFg BiyESHHtQtrNwheKgiGgcZqj0CiF6l9Vn4OYohOjTbY1QToJKL7MmhWd29rTpr38 xhC0qdqHGl4jm6bFVYJxohVRWdBfhBA6T6fDAEro1iKsht1c+9NvLu5bCU9KbNHl 3z/aytdRp+5zX4YlyMpk4BFrJ3EY8SVVDUmvvkIh4OhrwR5cYbTE4iqYcyaRaY+V jZXbg== 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-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Feb 2026 14:12:56 +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:55 +0000 From: Matt Coster Date: Fri, 27 Feb 2026 14:12:48 +0000 Subject: [PATCH 2/3] drm/imagination: Detach pm domains if linking fails 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-2-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=880; i=matt.coster@imgtec.com; h=from:subject:message-id; bh=m9V0bxbKRVB3O+Zl+TeUVN0NGhAD01mkVzf97aIRnJk=; b=owGbwMvMwCFWuUfy8817WRsYT6slMWQuXJZ2LrdpyhVmS9nmFbcav9/Rq+Z0ucqa9k2S3/Rb3 b77y7mSO0pZGMQ4GGTFFFl2rLBcofZHTUvixq9imDmsTCBDGLg4BWAi4lMZGd50nu9pSnnK5Fd5 NMpp/+emN1nM1sc1Sl7IbRKoVf5fcI6RYYbuRp+18c2NExv/HJ8Su+ros5qZC2UWNsstW/jkZUa hJB8A 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=69a1a668 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=OlRkcSivOKHRo-lWOosA:9 a=QEXdDO2ut3YA:10 a=t8nPyN_e6usw4ciXM-Pk:22 X-Proofpoint-GUID: d30WGYlod4H8gWsHgClqP5cz_nKfFjl8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDEyNSBTYWx0ZWRfX0urmr9NopPzb gjO+WeEAFaUP6MnfU5S/IeG44fB+0h6/dU8MYJ6gNlGc8e6qe1uwNb998mZhgXTAqlT2sspmdtG 5Xk+6NqQs+ysB1Qy+tvZ8QWFrUAoMZJxu2S5vZ6IZaXFssrIs4rSG2E32aOWidvHGZ8CETrJ13S mxNHTHq1SpvBayYap4P2vp1v0b4rKYxMzib5qnnP9giYxBi9pNl47kANlcoe1h3LqFJrXFTdEHC 1pdlHOUIOiBJk3jl+sgdepm9YuEAGgpNLTpJ8WM7SPngyyitpPEJLbM+7ODRwTApU4o0Zxzz0Nr Y4xvlJ7tQkIenH4qklpIAcNwXMkMGJWlcaSUz79wlwIlmXt6INzJIN5nIPwT+KoMic4tkN34+BZ wqBs6SPVVLPlX+E0B2viOURxGa+8mLCHZooc/dzpdW41V3+AcUsvAv+qPC5B7eG7P0LCynAISPo xBX6DzVjJ/vlz/IPXtw== X-Proofpoint-ORIG-GUID: d30WGYlod4H8gWsHgClqP5cz_nKfFjl8 There's a missing call to dev_pm_domain_detach_list() in the error path of pvr_power_domains_init(); if creating the second stage of device links fails then the struct dev_pm_domain_list will be left dangling. Fixes: e19cc5ab347e3 ("drm/imagination: Use dev_pm_domain_attach_list()") Signed-off-by: Matt Coster Reviewed-by: Alessio Belle --- drivers/gpu/drm/imagination/pvr_power.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/imagination/pvr_power.c b/drivers/gpu/drm/imag= ination/pvr_power.c index be8018085b2d..5a1fda685f2c 100644 --- a/drivers/gpu/drm/imagination/pvr_power.c +++ b/drivers/gpu/drm/imagination/pvr_power.c @@ -661,6 +661,8 @@ int pvr_power_domains_init(struct pvr_device *pvr_dev) while (--i >=3D 0) device_link_del(domain_links[i]); =20 + dev_pm_domain_detach_list(domains); + return err; } =20 --=20 2.53.0 From nobody Tue Apr 7 18:48:09 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 Reviewed-by: Alessio Belle --- 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