[TCP]: Add code to help track down "BUG at net/ipv4/tcp_output.c:438!"
[linux-2.6.git] / net / ipv4 / tcp_output.c
index 8225e4257258a13b5697c255290e5741dc642f0f..f37a50e55b6846eca00732da90c53aa7eeff2401 100644 (file)
@@ -435,7 +435,14 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
        int nsize, old_factor;
        u16 flags;
 
-       BUG_ON(len >= skb->len);
+       if (unlikely(len >= skb->len)) {
+               printk(KERN_DEBUG "TCP: seg_size=%u, mss=%u, seq=%u, "
+                      "end_seq=%u, skb->len=%u.\n", len, mss_now,
+                      TCP_SKB_CB(skb)->seq, TCP_SKB_CB(skb)->end_seq,
+                      skb->len);
+               WARN_ON(1);
+               return 0;
+       }
 
        nsize = skb_headlen(skb) - len;
        if (nsize < 0)