The timer is initialized with TIMER_IRQSAFE flag. It does look like the timer callback requires this flag at all. Its sole purpose is to ensure synchronisation in the workqueue code. Remove TIMER_IRQSAFE flag because it is not required. Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> Cc: David Airlie <airlied@xxxxxxxx> Cc: Daniel Vetter <daniel@xxxxxxxx> Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> --- drivers/gpu/drm/i915/i915_sw_fence.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c index fc2eeab823b70..6d22d9df6a433 100644 --- a/drivers/gpu/drm/i915/i915_sw_fence.c +++ b/drivers/gpu/drm/i915/i915_sw_fence.c @@ -461,8 +461,7 @@ int i915_sw_fence_await_dma_fence(struct i915_sw_fence *fence, timer->dma = dma_fence_get(dma); init_irq_work(&timer->work, irq_i915_sw_fence_work); - timer_setup(&timer->timer, - timer_i915_sw_fence_wake, TIMER_IRQSAFE); + timer_setup(&timer->timer, timer_i915_sw_fence_wake, 0); mod_timer(&timer->timer, round_jiffies_up(jiffies + timeout)); func = dma_i915_sw_fence_wake_timer; -- 2.20.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel