tun: avoid BUG, dump packet on GSO errors
Subsystems (3)
PATCH 1/1 tun: avoid BUG, dump packet on GSO errors
There are still some LRO cards that cause GSO errors in tun, and BUG on this is an unfriendly way to tell the admin to disable LRO.
Further, experience shows we might have more GSO bugs lurking. See https://bugzilla.kernel.org/show_bug.cgi?id=16413
as a recent example.
dumping a packet will make it easier to figure it out.
Replace BUG with warning+dump+drop the packet to make GSO errors in tun less critical and easier to debug.
---
drivers/net/tun.c +12 -2
@@ -736,8 +736,18 @@ static __inline__ ssize_t tun_put_user(struct tun_struct *tun, gso.gso_type =VIRTIO_NET_HDR_GSO_TCPV6 ; else if (sinfo->gso_type & SKB_GSO_UDP) gso.gso_type = VIRTIO_NET_HDR_GSO_UDP; - else -BUG (); + else { +printk (KERN_ERR "tun: unexpected GSO type: " +"0x%x, gso_size %d, hdr_len %d\n" , + sinfo->gso_type, gso.gso_size, + gso.hdr_len); +print_hex_dump (KERN_ERR ,"tun: " , +DUMP_PREFIX_NONE , +16 ,1 , skb->head, +min ((int )gso.hdr_len,64 ), true); +WARN_ON_ONCE (1 ); +return -EINVAL ; + }if (sinfo->gso_type &SKB_GSO_TCP_ECN ) gso.gso_type |=VIRTIO_NET_HDR_GSO_ECN ; }else
Quoted 9 lines · Michael S. Tsirkin
There are still some LRO cards that cause GSO errors in tun, and BUG on this is an unfriendly way to tell the admin to disable LRO.
Further, experience shows we might have more GSO bugs lurking. See https://bugzilla.kernel.org/show_bug.cgi?id=16413
as a recent example.
dumping a packet will make it easier to figure it out.
Quoted 5 lines
Replace BUG with warning+dump+drop the packet to make GSO errors in tun less critical and easier to debug.
Signed-off-by Michael S. Tsirkin <[email protected]>Tested-by Alex Unigovsky <[email protected]>
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
From: Herbert Xu <[email protected]>
Date: Thu, 22 Jul 2010 21:05:12 +0800
Quoted 10 lines
Quoted 9 lines · Michael S. Tsirkin
There are still some LRO cards that cause GSO errors in tun, and BUG on this is an unfriendly way to tell the admin to disable LRO.
Further, experience shows we might have more GSO bugs lurking. See https://bugzilla.kernel.org/show_bug.cgi?id=16413
as a recent example.
dumping a packet will make it easier to figure it out.
Quoted 7 lines
Quoted 5 lines
Replace BUG with warning+dump+drop the packet to make GSO errors in tun less critical and easier to debug.
Signed-off-by Michael S. Tsirkin <[email protected]>Tested-by Alex Unigovsky <[email protected]>Acked-by Herbert Xu <[email protected]>
Applied, thanks everyone.