[ovs-dev] [PATCH] datapath: Move LRO check from transmit to receive.

Ben Pfaff blp at nicira.com
Tue Jan 22 01:11:11 UTC 2013


On Mon, Jan 21, 2013 at 05:21:19AM -0800, Jesse Gross wrote:
> Commit 24b019f808211a95078efd916064af0975ca5733 (datapath: Disable
> LRO from userspace instead of the kernel.) accidentally moved the
> check for LRO packets from the receive path to transmit.  Since
> this check is supposed to protect OVS (and other parts of the system)
> from packets that it cannot handle it is obviously not useful on
> egress.  Therefore, this commit moves it back to the receive side.
> 
> The primary problem that this caused is upcalls to userspace tried
> to segment the packet even though no segmentation information is
> available.  This would later cause NULL pointer dereferences when
> skb_gso_segment() did nothing.
> 
> Bug #14772
> 
> Signed-off-by: Jesse Gross <jesse at nicira.com>

Before commit 24b019f80821, netdev_port_receive() called
skb_warn_if_lro() but ignored its return value.  skb_warn_if_lro()
doesn't appear to do anything to "neutralize" the skb.  Does this mean
that these earlier versions also have a bug that should be fixed
separately?

Acked-by: Ben Pfaff <blp at nicira.com>



More information about the dev mailing list