[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