Displaying 2 results from an estimated 2 matches for "toggle_lock".
2013 Aug 12
2
[PATCH] drm/nouveau: fix vblank deadlock
...ruct nouveau_eventh *handler)
{
unsigned long flags;
+ if (index >= event->index_nr)
+ return;
+
spin_lock_irqsave(&event->lock, flags);
- if (index < event->index_nr)
- nouveau_event_put_locked(event, index, handler);
+ list_del(&handler->head);
+
+ if (event->toggle_lock)
+ spin_lock(event->toggle_lock);
+ nouveau_event_disable_locked(event, index, 1);
+ if (event->toggle_lock)
+ spin_unlock(event->toggle_lock);
+
spin_unlock_irqrestore(&event->lock, flags);
}
void
+nouveau_event_enable_locked(struct nouveau_event *event, int index)
+{
+ if...
2013 Aug 19
0
[PATCH] drm/nouveau: fix vblank deadlock
...flags;
>
> + if (index >= event->index_nr)
> + return;
> +
> spin_lock_irqsave(&event->lock, flags);
> - if (index < event->index_nr)
> - nouveau_event_put_locked(event, index, handler);
> + list_del(&handler->head);
> +
> + if (event->toggle_lock)
> + spin_lock(event->toggle_lock);
> + nouveau_event_disable_locked(event, index, 1);
> + if (event->toggle_lock)
> + spin_unlock(event->toggle_lock);
> +
> spin_unlock_irqrestore(&event->lock, flags);
> }
>
> void
> +nouveau_event_enable_lock...