]> git.baikalelectronics.ru Git - kernel.git/commit
tuntap: set transport header before passing it to kernel
authorJason Wang <jasowang@redhat.com>
Mon, 25 Mar 2013 20:19:56 +0000 (20:19 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 Mar 2013 16:44:43 +0000 (12:44 -0400)
commit5bf16612605eb4fc76d0039241db24760eaa1395
treefa2164acb8ee8d57d8134af49296b80801ff0e66
parent6e1dac0d9a93c15aee36ac7e4385d5026f33aa82
tuntap: set transport header before passing it to kernel

Currently, for the packets receives from tuntap, before doing header check,
kernel just reset the transport header in netif_receive_skb() which pretends no
l4 header. This is suboptimal for precise packet length estimation (introduced
in b8b60fd7) which needs correct l4 header for gso packets.

So this patch set the transport header to csum_start for partial checksum
packets, otherwise it first try skb_flow_dissect(), if it fails, just reset the
transport header.

Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tun.c