skb->peeked=1; atomic_inc(&skb->users); }else __skb_unlink(skb,&sk->sk_receive_queue);//从队列中取出数据,即可看作读出数据 } spin_unlock_irqrestore(&sk->sk_receive_queue.lock,cpu_flags); // 有数据包,返回skb if(skb) return skb; /*User doesn't wanttowait*/ error=-EAGAIN; /*...