]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/v3d: Address race-condition in MMU flush
authorMaíra Canal <mcanal@igalia.com>
Mon, 23 Sep 2024 13:55:05 +0000 (10:55 -0300)
committerMaíra Canal <mcanal@igalia.com>
Wed, 25 Sep 2024 11:40:17 +0000 (08:40 -0300)
commitcf1becb7f996a0a23ea2c270cf6bb0911ec3ca1a
tree945ac226c717241e5fc4ba5faf414c2bf8f4732c
parent2f7bd9d66e638e1ce4a20fea83c9d44c25c3dae8
drm/v3d: Address race-condition in MMU flush

We must first flush the MMU cache and then, flush the TLB, not the other
way around. Currently, we can see a race condition between the MMU cache
and the TLB when running multiple rendering processes at the same time.
This is evidenced by MMU errors triggered by the IRQ.

Fix the MMU flush order by flushing the MMU cache and then the TLB.
Also, in order to address the race condition, wait for the MMU cache flush
to finish before starting the TLB flush.

Fixes: 57692c94dcbe ("drm/v3d: Introduce a new DRM driver for Broadcom V3D V3.x+")
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-2-mcanal@igalia.com
drivers/gpu/drm/v3d/v3d_mmu.c