]> 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)
commit01808c92f6541b093046799baef3776af1f4e760
treefa2164acb8ee8d57d8134af49296b80801ff0e66
parentdd7139e97392a409c861cba340b41c8923da6964
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 b6563cc9) 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