aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sk98lin/skge.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sk98lin/skge.c')
-rw-r--r--drivers/net/sk98lin/skge.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c
index e3bdb583600..e5591d33dd2 100644
--- a/drivers/net/sk98lin/skge.c
+++ b/drivers/net/sk98lin/skge.c
@@ -815,7 +815,7 @@ uintptr_t VNextDescr; /* the virtual bus address of the next descriptor */
815 /* set the pointers right */ 815 /* set the pointers right */
816 pDescr->VNextRxd = VNextDescr & 0xffffffffULL; 816 pDescr->VNextRxd = VNextDescr & 0xffffffffULL;
817 pDescr->pNextRxd = pNextDescr; 817 pDescr->pNextRxd = pNextDescr;
818 pDescr->TcpSumStarts = 0; 818 if (!IsTx) pDescr->TcpSumStarts = ETH_HLEN << 16 | ETH_HLEN;
819 819
820 /* advance one step */ 820 /* advance one step */
821 pPrevDescr = pDescr; 821 pPrevDescr = pDescr;
@@ -2163,10 +2163,12 @@ rx_start:
2163 skb_put(pMsg, FrameLength); 2163 skb_put(pMsg, FrameLength);
2164 } /* frame > SK_COPY_TRESHOLD */ 2164 } /* frame > SK_COPY_TRESHOLD */
2165 2165
2166 if (pRxPort->RxCsum) { 2166#ifdef USE_SK_RX_CHECKSUM
2167 pMsg->csum = pRxd->TcpSums; 2167 pMsg->csum = pRxd->TcpSums & 0xffff;
2168 pMsg->ip_summed = CHECKSUM_HW; 2168 pMsg->ip_summed = CHECKSUM_HW;
2169 } 2169#else
2170 pMsg->ip_summed = CHECKSUM_NONE;
2171#endif
2170 2172
2171 SK_DBG_MSG(NULL, SK_DBGMOD_DRV, 1,("V")); 2173 SK_DBG_MSG(NULL, SK_DBGMOD_DRV, 1,("V"));
2172 ForRlmt = SK_RLMT_RX_PROTOCOL; 2174 ForRlmt = SK_RLMT_RX_PROTOCOL;