]> git.baikalelectronics.ru Git - kernel.git/commit
net: make skb_gso_segment error handling more robust
authorFlorian Westphal <fw@strlen.de>
Mon, 20 Oct 2014 11:49:17 +0000 (13:49 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 Oct 2014 16:38:13 +0000 (12:38 -0400)
commitd81155c8984a0e491aebb9f6b63e7d6a3a4e66ed
tree59951ec61922bcdbb674b63f114cfdf52d1203ef
parent45f325bb0a0e2a69312ed2dedc0b2347d4c03610
net: make skb_gso_segment error handling more robust

skb_gso_segment has three possible return values:
1. a pointer to the first segmented skb
2. an errno value (IS_ERR())
3. NULL.  This can happen when GSO is used for header verification.

However, several callers currently test IS_ERR instead of IS_ERR_OR_NULL
and would oops when NULL is returned.

Note that these call sites should never actually see such a NULL return
value; all callers mask out the GSO bits in the feature argument.

However, there have been issues with some protocol handlers erronously not
respecting the specified feature mask in some cases.

It is preferable to get 'have to turn off hw offloading, else slow' reports
rather than 'kernel crashes'.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_output.c
net/netfilter/nfnetlink_queue_core.c
net/openvswitch/datapath.c
net/xfrm/xfrm_output.c