/* Remove the head of the list. The list lock is taken so the function may be used safely with other locking list functions. The head item is returned or NULL if the list is empty.  */
struct sk_buff* skb_dequeue(struct sk_buff_head *list)
/* Remove the head of the list. The list lock is taken so the function may be used safely with other locking list functions. The head item is returned or NULL if the list is empty.  */
struct sk_buff* skb_dequeue(struct sk_buff_head *list)
{
	unsigned long flags;
	struct sk_buff *result;
	spin_lock_irqsave(&list->lock, flags);
	result = __skb_dequeue(list);
	spin_unlock_irqrestore(&list->lock, flags);
	return result;
}