On Thu, 2013-02-07 at 15:13 +0200, Michael S. Tsirkin wrote:
> In LRO mode, bnx2x set gso_size but not gso type.
> This leads to crashes in macvtap.
> Commit cbf1de72324a8105ddcc3d9ce9acbc613faea17e
> queued for 3.9 includes a more complete fix.
> This is a minimal patch to avoid the crash, for 3.8.
> 
> Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
> ---
>  drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 
> b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> index f771ddf..a5edac8 100644
> --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> @@ -504,13 +504,11 @@ static int bnx2x_fill_frag_skb(struct bnx2x *bp, struct 
> bnx2x_fastpath *fp,
>               skb_shinfo(skb)->gso_size = bnx2x_set_lro_mss(bp,
>                                       tpa_info->parsing_flags, len_on_bd);
>  
> -             /* set for GRO */
> -             if (fp->mode == TPA_MODE_GRO)
> -                     skb_shinfo(skb)->gso_type =
> -                         (GET_FLAG(tpa_info->parsing_flags,
> -                                   PARSING_FLAGS_OVER_ETHERNET_PROTOCOL) ==
> -                                             PRS_FLAG_OVERETH_IPV6) ?
> -                             SKB_GSO_TCPV6 : SKB_GSO_TCPV4;
> +             skb_shinfo(skb)->gso_type =
> +                     (GET_FLAG(tpa_info->parsing_flags,
> +                               PARSING_FLAGS_OVER_ETHERNET_PROTOCOL) ==
> +                      PRS_FLAG_OVERETH_IPV6) ?
> +                     SKB_GSO_TCPV6 : SKB_GSO_TCPV4;
>       }
>  
> 
Thanks!

Acked-by: Dmitry Kravkov <dmi...@broadcom.com>




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

Reply via email to