|
@@ -818,7 +818,7 @@ uintptr_t VNextDescr; /* the virtual bus address of the next descriptor */
|
|
|
/* 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;
|