
From: Tianrui Zhao <zhaotianrui@loongson.cn> LoongArch inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/IC1M5U CVE: NA -------------------------------- Signed-off-by: Tianrui Zhao <zhaotianrui@loongson.cn> Change-Id: I7a86ececa8c12e19e7e388efe0e89905b3a7b9e1 --- drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c index 15493d61f069..58ec88d13050 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c @@ -190,13 +190,13 @@ static int amdgpu_ih_fix_loongarch_pcie_order_start(struct amdgpu_ih_ring *ih, msleep(10); for (i = rptr; i < wptr; i += 1) { - if (le32_to_cpu(ih->ring[i]) == 0xDEADBEFF) + if (le32_to_cpu(ih->ring[i]) == 0xDEADBEFF && (i % 4) != 3) goto restart_check; } if (rptr > wptr) { for (i = 0; i < wptr; i += 1) { - if (le32_to_cpu(ih->ring[i]) == 0xDEADBEFF) + if (le32_to_cpu(ih->ring[i]) == 0xDEADBEFF && (i % 4) != 3) goto restart_check; } } @@ -367,7 +367,8 @@ int amdgpu_ih_process(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih) old_rptr = adev->irq.ih.rptr; r = amdgpu_ih_fix_loongarch_pcie_order_start(&adev->irq.ih, old_rptr, wptr, false); if (r) { - if (old_rptr == ((wptr + 16) & adev->irq.ih.ptr_mask)) { + if (old_rptr == ((wptr + 16) & adev->irq.ih.ptr_mask) || + old_rptr == ((wptr + 32) & adev->irq.ih.ptr_mask)) { return IRQ_NONE; } atomic_xchg(&adev->irq.cs_lock, 1); -- 2.33.0