Revert "datapath: Avoid null deref when GSO is for verifying header integrity only."
authorJesse Gross <jesse@nicira.com>
Mon, 21 Jan 2013 13:23:32 +0000 (05:23 -0800)
committerJesse Gross <jesse@nicira.com>
Tue, 22 Jan 2013 01:22:41 +0000 (17:22 -0800)
This reverts commit 00c7faf3e5b7d4020e995a1429cf94313f197171.

In general, it should not be possible have a NULL return value from
skb_gso_segment() since we're not actually trying to verify the
header integrity.  No other callers with similar needs have NULL
checks.  The actual cause of the problem was LRO packets, which
OVS isn't equipped to handle.  The commit
33e031e99cc630baf1b0cb9256710dee7d9ab66d (datapath: Move LRO check
from transmit to receive.) solves that problem by fixing the LRO
check.  In order to avoid possibly masking any other problems, this
reverts the GSO check which should no longer be needed.

Signed-off-by: Jesse Gross <jesse@nicira.com>
datapath/datapath.c

index 7b213d0..4aeae5d 100644 (file)
@@ -413,8 +413,6 @@ static int queue_gso_packets(struct net *net, int dp_ifindex,
        segs = skb_gso_segment(skb, NETIF_F_SG | NETIF_F_HW_CSUM);
        if (IS_ERR(segs))
                return PTR_ERR(segs);
-       if (!segs)
-               return queue_userspace_packet(net, dp_ifindex, skb, upcall_info);
 
        /* Queue all of the segments. */
        skb = segs;