spin_lock_bh(&dev->queue_lock); q->enqueue(skb, q); qdisc_run(dev); // kick the device! spin_unlock_bh(&dev->queue_lock);
do { skb = skb_dequeue(&sk->receive_queue); } while (wait_for_packet(sk, err, &timeo) == 0);