From b2313f586134d5590a5ac1e9355294a6f379994d Mon Sep 17 00:00:00 2001 From: Pyun YongHyeon Date: Wed, 25 Apr 2007 01:17:44 +0000 Subject: [PATCH] Disable TSO support. Under certain circumtances, if TSO is active, Yukon II generates corrupted IP packets. All corrupted IP packets I noticed were the the last segmented packet in a TSO request. The corrupted packet resulted in retransmission of the damaged packet which in turn decreased network performance dramatically. Unfortunately it seems that there is no way to workaround this bug as TSO is completely handled in hardware. Disable TSO until we find a working workaround or a new silicon revision that doesn't have this hardware bug. --- sys/dev/msk/if_msk.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/dev/msk/if_msk.c b/sys/dev/msk/if_msk.c index 47c8e221ce43..0e227c672224 100644 --- a/sys/dev/msk/if_msk.c +++ b/sys/dev/msk/if_msk.c @@ -1452,11 +1452,19 @@ msk_attach(device_t dev) */ ifp->if_capabilities = IFCAP_TXCSUM; ifp->if_hwassist = MSK_CSUM_FEATURES; +#if 0 + /* + * Under certain circumtances, if TSO is active, Yukon II generates + * corrupted IP packets. Disable TSO until we find a working + * workaround or a new silicon revision that doesn't have this + * hardware bug. + */ if (sc->msk_hw_id != CHIP_ID_YUKON_EC_U) { /* It seems Yukon EC Ultra doesn't support TSO. */ ifp->if_capabilities |= IFCAP_TSO4; ifp->if_hwassist |= CSUM_TSO; } +#endif ifp->if_capenable = ifp->if_capabilities; ifp->if_ioctl = msk_ioctl; ifp->if_start = msk_start;