diff options
Diffstat (limited to 'drivers/net/sk98lin/skge.c')
-rw-r--r-- | drivers/net/sk98lin/skge.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c index e3bdb5836001..e5591d33dd28 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; |