From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 16721415FEE; Sat, 28 Feb 2026 17:45:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772300715; cv=none; b=MFpwFspWDYYOrIV5j1GbsBnddDNzVNtVW3afSDfxygtzZIdOAPVM4Gp1QDT2fEO5yU405bcN9q12QUr/KhyrJ+LpWwtlXyHztyu6MuEcspnAVOml9V6BgC17O56lj5Z8msrseGLG0RmAvfl1npeCT5C8bg16nnGbJ6iP2hiAUPA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772300715; c=relaxed/simple; bh=ahXYLm+8OtBX0q7N+dNK1bZZl9qTi4S3mddAQJNgEj8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NWTitKEFEo2Kn7imtHE3mS7FJpR5CYXv7e7R6KybGLpSzGtYpCm0EguVY2Zu2ht+97liqz0ho1uqahv8qhsqmGNMI70mMhypNNEZIi6MSbyzk0YjR+8ANLOL4TmAA5xjdhurXQVkFRbMiRe7rwbHouULd5+NA6iz7O8ZqxzxGYk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uobDt8p2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uobDt8p2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 216ECC19423; Sat, 28 Feb 2026 17:45:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772300714; bh=ahXYLm+8OtBX0q7N+dNK1bZZl9qTi4S3mddAQJNgEj8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uobDt8p2Mt2cc6ZIj/dS8eQp2430ciU5Rn3udItyvwgloOdH5fattGjZ4HUoCtD4r OinpixwIyPKwZv4PnLhau5ofe2mM4dRfvvoYLkXlMVe6av6DznO9DaJyHwyALO3RkS nDvKtfaeBskna/iK64u6/6vTCjWH3H0Y/Yzn/JwUhq/9drxtN76lWQ68PDXT6+CneH 1p3kG8APY6Wy9rRSMYIPTUpoY9A8DHiCK63W6Ahhes5clozgdEuzTiZdEKyEjO2nP9 mQf8lDT1x7jCGkU+r+e67cElaNVrA4mayJPCS9vdr2IAbJB/yQjMP1fixajZ6AZ390 6J3Nf1Q8ruxPA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yifan Zhang , Alex Deucher , Lijo Lazar , Sasha Levin Subject: [PATCH 6.19 750/844] drm/amdgpu: Protect GPU register accesses in powergated state in some paths Date: Sat, 28 Feb 2026 12:31:03 -0500 Message-ID: <20260228173244.1509663-751-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260228173244.1509663-1-sashal@kernel.org> References: <20260228173244.1509663-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Yifan Zhang [ Upstream commit 39fc2bc4da0082c226cbee331f0a5d44db3997da ] Ungate GPU CG/PG in device_fini_hw and device_halt to protect GPU register accesses, e.g. GC registers are accessed in amdgpu_irq_disable_all() and amdgpu_fence_driver_hw_fini(). Signed-off-by: Yifan Zhang Acked-by: Alex Deucher Reviewed-by: Lijo Lazar Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index ba6fb23b840a0..09f9d82e572da 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -3659,9 +3659,6 @@ static int amdgpu_device_ip_fini_early(struct amdgpu_device *adev) } } - amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE); - amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE); - amdgpu_amdkfd_suspend(adev, true); amdgpu_userq_suspend(adev); @@ -5047,6 +5044,9 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev) amdgpu_virt_fini_data_exchange(adev); } + amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE); + amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE); + /* disable all interrupts */ amdgpu_irq_disable_all(adev); if (adev->mode_info.mode_config_initialized) { @@ -7502,6 +7502,9 @@ void amdgpu_device_halt(struct amdgpu_device *adev) amdgpu_xcp_dev_unplug(adev); drm_dev_unplug(ddev); + amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE); + amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE); + amdgpu_irq_disable_all(adev); amdgpu_fence_driver_hw_fini(adev); -- 2.51.0