kernel/drivers/gpu/drm/nouveau/nouveau_drm.c
.. .. @@ -124,10 +124,16 @@ 124 124 static inline bool 125 125 nouveau_cli_work_ready(struct dma_fence *fence) 126 126 { 127 - if (!dma_fence_is_signaled(fence))128 - return false;129 - dma_fence_put(fence);130 - return true;127 + bool ret = true;128 +129 + spin_lock_irq(fence->lock);130 + if (!dma_fence_is_signaled_locked(fence))131 + ret = false;132 + spin_unlock_irq(fence->lock);133 +134 + if (ret == true)135 + dma_fence_put(fence);136 + return ret;131 137 } 132 138 133 139 static void