drm/etnaviv: hold GPU lock while inserting END command
authorLucas Stach <l.stach@pengutronix.de>
Fri, 17 Nov 2017 16:59:26 +0000 (17:59 +0100)
committerLucas Stach <l.stach@pengutronix.de>
Tue, 2 Jan 2018 16:25:11 +0000 (17:25 +0100)
Inserting the END command when suspending the GPU is changing the
command buffer state, which requires the GPU to be held.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
drivers/gpu/drm/etnaviv/etnaviv_gpu.c

index 6176704bdae3277b88576309e35f85d156becc91..c4f518d56ead7029932caf9514c5b179bd41aac5 100644 (file)
@@ -1631,7 +1631,9 @@ static int etnaviv_gpu_hw_suspend(struct etnaviv_gpu *gpu)
 {
        if (gpu->buffer) {
                /* Replace the last WAIT with END */
+               mutex_lock(&gpu->lock);
                etnaviv_buffer_end(gpu);
+               mutex_unlock(&gpu->lock);
 
                /*
                 * We know that only the FE is busy here, this should