Skip to content

drm/etnaviv: always start/stop scheduler in timeout processing

(cherry-picked from upstream linux-next 50248a3e)

The drm scheduler currently expects that the stop/start sequence is always executed in the timeout handling, as the job at the head of the hardware execution list is always removed from the ring mirror before the driver function is called and only inserted back into the list when starting the scheduler.

This adds some unnecessary overhead if the timeout handler determines that the GPU is still executing jobs normally and just wished to extend the timeout, but a better solution requires a major rearchitecture of the scheduler, which is not applicable as a fix.

Fixes: 135517d3 ("drm/scheduler: Avoid accessing freed bad job.") Signed-off-by: Lucas Stach Tested-by: Russell King

Edited by Sebastian Krzyszkowiak

Merge request reports