FAILED: patch "[PATCH] drm/amdgpu/gfx11: adjust KGQ reset sequence" failed to apply to 6.12-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 6.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.12.y
git checkout FETCH_HEAD
git cherry-pick -x 3eb46fbb601f9a0b4df8eba79252a0a85e983044
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026020327-overbid-collar-0ba9@gregkh' --subject-prefix 'PATCH 6.12.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 3eb46fbb601f9a0b4df8eba79252a0a85e983044 Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Wed, 28 Jan 2026 22:55:46 -0500
Subject: [PATCH] drm/amdgpu/gfx11: adjust KGQ reset sequence
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Kernel gfx queues do not need to be reinitialized or remapped after a reset. This fixes queue reset failures on APUs.
v2: preserve init and remap for MMIO case.
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +13 -10
@@ -6823,11 +6823,12 @@ static int gfx_v11_0_reset_kgq(struct amdgpu_ring *ring, struct amdgpu_fence *timedout_fence) {struct amdgpu_device *adev = ring->adev; +bool use_mmio = false;int r;amdgpu_ring_reset_helper_begin (ring, timedout_fence); - r =amdgpu_mes_reset_legacy_queue (ring->adev, ring, vmid, false); + r =amdgpu_mes_reset_legacy_queue (ring->adev, ring, vmid, use_mmio);if (r) {dev_warn (adev->dev,"reset via MES failed and try pipe reset %d\n" , r);
@@ -6836,16 +6837,18 @@ static int gfx_v11_0_reset_kgq(struct amdgpu_ring *ring,return r; } - r =gfx_v11_0_kgq_init_queue (ring, true); -if (r) { -dev_err (adev->dev,"failed to init kgq\n" ); -return r; - } +if (use_mmio) { + r =gfx_v11_0_kgq_init_queue (ring, true); +if (r) { +dev_err (adev->dev,"failed to init kgq\n" ); +return r; + } - r =amdgpu_mes_map_legacy_queue (adev, ring); -if (r) { -dev_err (adev->dev,"failed to remap kgq\n" ); -return r; + r =amdgpu_mes_map_legacy_queue (adev, ring); +if (r) { +dev_err (adev->dev,"failed to remap kgq\n" ); +return r; + } }return amdgpu_ring_reset_helper_end (ring, timedout_fence);
Sasha Levin
maintainerPATCH 1/1 drm/amdgpu/gfx11: adjust KGQ reset sequence
From: Alex Deucher <[email protected]>
[ Upstream commit 3eb46fbb601f9a0b4df8eba79252a0a85e983044 ]
Kernel gfx queues do not need to be reinitialized or remapped after a reset. This fixes queue reset failures on APUs.
v2: preserve init and remap for MMIO case.
--- drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 45 ++++++++++++++------------ 1 file changed, 24 insertions(+), 21 deletions(-)
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +24 -21
@@ -6568,36 +6568,39 @@ static void gfx_v11_0_emit_mem_sync(struct amdgpu_ring *ring)static int gfx_v11_0_reset_kgq (struct amdgpu_ring *ring,unsigned int vmid) {struct amdgpu_device *adev = ring->adev; +bool use_mmio = false;int r;if (amdgpu_sriov_vf (adev))return -EINVAL ; - r =amdgpu_mes_reset_legacy_queue (ring->adev, ring, vmid, false); + r =amdgpu_mes_reset_legacy_queue (ring->adev, ring, vmid, use_mmio);if (r)return r; - r =amdgpu_bo_reserve (ring->mqd_obj, false); -if (unlikely (r !=0 )) { -dev_err (adev->dev,"fail to resv mqd_obj\n" ); -return r; - } - r =amdgpu_bo_kmap (ring->mqd_obj, (void **)&ring->mqd_ptr); -if (!r) { - r =gfx_v11_0_kgq_init_queue (ring, true); -amdgpu_bo_kunmap (ring->mqd_obj); - ring->mqd_ptr =NULL ; - } -amdgpu_bo_unreserve (ring->mqd_obj); -if (r) { -dev_err (adev->dev,"fail to unresv mqd_obj\n" ); -return r; - } +if (use_mmio) { + r =amdgpu_bo_reserve (ring->mqd_obj, false); +if (unlikely (r !=0 )) { +dev_err (adev->dev,"fail to resv mqd_obj\n" ); +return r; + } + r =amdgpu_bo_kmap (ring->mqd_obj, (void **)&ring->mqd_ptr); +if (!r) { + r =gfx_v11_0_kgq_init_queue (ring, true); +amdgpu_bo_kunmap (ring->mqd_obj); + ring->mqd_ptr =NULL ; + } +amdgpu_bo_unreserve (ring->mqd_obj); +if (r) { +dev_err (adev->dev,"fail to unresv mqd_obj\n" ); +return r; + } - r =amdgpu_mes_map_legacy_queue (adev, ring); -if (r) { -dev_err (adev->dev,"failed to remap kgq\n" ); -return r; + r =amdgpu_mes_map_legacy_queue (adev, ring); +if (r) { +dev_err (adev->dev,"failed to remap kgq\n" ); +return r; + } }return amdgpu_ring_test_ring (ring);
Signature · 1 line
2.51.0