diff options
author | Boris Brezillon <boris.brezillon@collabora.com> | 2020-11-05 16:17:04 +0100 |
---|---|---|
committer | Steven Price <steven.price@arm.com> | 2020-11-16 11:27:30 +0100 |
commit | 5bc5cc2819c2c0adb644919e3e790b504ea47e0a (patch) | |
tree | 4a8adff42279720578fe92fe5e80ce08b0a7c6f7 /arch/um | |
parent | drm: fix oops in drm_atomic_set_crtc_for_connector (diff) | |
download | linux-5bc5cc2819c2c0adb644919e3e790b504ea47e0a.tar.xz linux-5bc5cc2819c2c0adb644919e3e790b504ea47e0a.zip |
drm/panfrost: Move the GPU reset bits outside the timeout handler
We've fixed many races in panfrost_job_timedout() but some remain.
Instead of trying to fix it again, let's simplify the logic and move
the reset bits to a separate work scheduled when one of the queue
reports a timeout.
v5:
- Simplify panfrost_scheduler_stop() (Steven Price)
- Always restart the queue in panfrost_scheduler_start() even if
the status is corrupted (Steven Price)
v4:
- Rework the logic to prevent a race between drm_sched_start()
(reset work) and drm_sched_job_timedout() (timeout work)
- Drop Steven's R-b
- Add dma_fence annotation to the panfrost_reset() function (Daniel Vetter)
v3:
- Replace the atomic_cmpxchg() by an atomic_xchg() (Robin Murphy)
- Add Steven's R-b
v2:
- Use atomic_cmpxchg() to conditionally schedule the reset work
(Steven Price)
Fixes: 1a11a88cfd9a ("drm/panfrost: Fix job timeout handling")
Cc: <stable@vger.kernel.org>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201105151704.2010667-1-boris.brezillon@collabora.com
Diffstat (limited to 'arch/um')
0 files changed, 0 insertions, 0 deletions