use irq-safe version of llist operations between USB callback and main

This commit is contained in:
Harald Welte
2016-03-18 10:32:56 +01:00
parent da15ca01bf
commit 9f240b6d34
3 changed files with 44 additions and 5 deletions

View File

@@ -0,0 +1,27 @@
#pragma once
#include "linuxlist.h"
static inline void llist_add_tail_irqsafe(struct llist_head *_new,
struct llist_head *head)
{
__disable_irq();
llist_add_tail(_new, head);
__enable_irq();
}
static inline struct llist_head *llist_head_dequeue_irqsafe(struct llist_head *head)
{
struct llist_head *lh;
__disable_irq();
if (llist_empty(head)) {
lh = NULL;
} else {
lh = head->next;
llist_del(lh);
}
__enable_irq();
return lh;
}