if (list) { unsigned long flags;  spin_lock_irqsave(&list->lock, flags); if (skb->list == list) __skb_unlink(skb, skb->list); spin_unlock_irqrestore(&list->lock, flags); }
spin_lock_irqsave(&list->lock, flags); __skb_unlink(skb, list); spin_unlock_irqrestore(&list->lock, flags);
void skb_unlink(struct sk_buff *skb){	struct sk_buff_head *list = skb->list;	if (list) {		unsigned long flags;		spin_lock_irqsave(&list->lock, flags);		if (skb->list == list)			__skb_unlink(skb, skb->list);		spin_unlock_irqrestore(&list->lock, flags);	}}