diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c')
| -rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c index f2a86eae0a0d..2437f7d41ca2 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c @@ -50,7 +50,8 @@ nvkm_timer_alarm_trigger(struct nvkm_timer *tmr)  		/* Move to completed list.  We'll drop the lock before  		 * executing the callback so it can reschedule itself.  		 */ -		list_move_tail(&alarm->head, &exec); +		list_del_init(&alarm->head); +		list_add(&alarm->exec, &exec);  	}  	/* Shut down interrupt if no more pending alarms. */ @@ -59,8 +60,8 @@ nvkm_timer_alarm_trigger(struct nvkm_timer *tmr)  	spin_unlock_irqrestore(&tmr->lock, flags);  	/* Execute completed callbacks. */ -	list_for_each_entry_safe(alarm, atemp, &exec, head) { -		list_del_init(&alarm->head); +	list_for_each_entry_safe(alarm, atemp, &exec, exec) { +		list_del(&alarm->exec);  		alarm->func(alarm);  	}  }  | 
