Just a concern, allocating an skb in tcp_send_fin(), instead of using gfp_mask as GFP_KERNEL, I think it should be sk->sk_allocation. Is there any particular reason for using GFP_KERNEL?
Here is the code: if (sk->sk_send_head != NULL) { TCP_SKB_CB(skb)->flags |= TCPCB_FLAG_FIN; TCP_SKB_CB(skb)->end_seq++; tp->write_seq++; } else { /* Socket is locked, keep trying until memory is available. */ for (;;) { >>>> skb = alloc_skb(MAX_TCP_HEADER, GFP_KERNEL); ^^^^^^^^^^ if (skb) break; yield(); } it should be: skb = alloc_skb(MAX_TCP_HEADER, sk->sk_allocation) ^^^^^^^^^^^^^^^^^ thanks -Rajneesh - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html