Subject: Re: [PATCH linux-2.6.15-rc5] sk98lin: rx checksum offset not set

From: Johannes Stezenbach <[email-masked]>
Date: Mon, 5 Dec 2005 20:22:39 +0100

On Mon, Dec 05, 2005, Stephen Hemminger wrote:
> The checksum offsets for receive offload were not being set correctly.
> 
> Signed-off-by: Stephen Hemminger <[email-masked]>

I can confirm that this patch fixes the problem for me.

Thanks,
Johannes

> Index: linux-2.6/drivers/net/sk98lin/skge.c
> ===================================================================
> --- linux-2.6.orig/drivers/net/sk98lin/skge.c
> +++ linux-2.6/drivers/net/sk98lin/skge.c
> @@ -818,7 +818,7 @@ uintptr_t VNextDescr;	/* the virtual bus
>  		/* set the pointers right */
>  		pDescr->VNextRxd = VNextDescr & 0xffffffffULL;
>  		pDescr->pNextRxd = pNextDescr;
> -		pDescr->TcpSumStarts = 0;
> +		if (!IsTx) pDescr->TcpSumStarts = ETH_HLEN << 16 | ETH_HLEN;
>  
>  		/* advance one step */
>  		pPrevDescr = pDescr;
> @@ -2169,7 +2169,7 @@ rx_start:	
>  		} /* frame > SK_COPY_TRESHOLD */
>  
>  #ifdef USE_SK_RX_CHECKSUM
> -		pMsg->csum = pRxd->TcpSums;
> +		pMsg->csum = pRxd->TcpSums & 0xffff;
>  		pMsg->ip_summed = CHECKSUM_HW;
>  #else
>  		pMsg->ip_summed = CHECKSUM_NONE;
>