Re: [PATCH 1/2] ixgbe: fix gso type

From: Eric Dumazet
Date: Wed Feb 06 2013 - 22:21:41 EST


On Thu, 2013-02-07 at 01:02 +0200, Michael S. Tsirkin wrote:
> ixgbe set gso_size but not gso_type. This leads to
> crashes in macvtap.
>
> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
> ---
>
> I tested that this fixes the crash for me. I am told on ixgbe LRO only
> triggers with TCP so checking protocol should be enough?
>
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 396e280..9d01673 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -1399,6 +1399,10 @@ static void ixgbe_set_rsc_gso_size(struct ixgbe_ring *ring,
> /* set gso_size to avoid messing up TCP MSS */
> skb_shinfo(skb)->gso_size = DIV_ROUND_UP((skb->len - hdr_len),
> IXGBE_CB(skb)->append_cnt);
> + if (skb->protocol == ETH_P_IPV6)

Same problem here (skb->protocol == htons(ETH_P_IPV6))

> + skb_shinfo(skb)->gso_type = SKB_GSO_TCPV6;
> + else
> + skb_shinfo(skb)->gso_type = SKB_GSO_TCPV4;
> }
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/