From cf7a67bf4bc0672ff227ccc1c7ce92b94463bd0d Mon Sep 17 00:00:00 2001 From: Pyun YongHyeon Date: Mon, 11 Jun 2007 01:55:09 +0000 Subject: [PATCH] Disable automatic IP ID increment. Due to a hardware bug the automatic IP ID increment in TSO case generated corrupted IP packets. This change brings back TSO capability. --- sys/dev/msk/if_msk.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/sys/dev/msk/if_msk.c b/sys/dev/msk/if_msk.c index 0e227c672224..96c959a838d8 100644 --- a/sys/dev/msk/if_msk.c +++ b/sys/dev/msk/if_msk.c @@ -1452,19 +1452,11 @@ 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; @@ -3766,13 +3758,6 @@ msk_init_locked(struct msk_if_softc *sc_if) CSR_WRITE_4(sc, Q_ADDR(sc_if->msk_txq, Q_CSR), BMU_CLR_RESET); CSR_WRITE_4(sc, Q_ADDR(sc_if->msk_txq, Q_CSR), BMU_OPER_INIT); CSR_WRITE_4(sc, Q_ADDR(sc_if->msk_txq, Q_CSR), BMU_FIFO_OP_ON); - /* Increase IPID when hardware generates IP packets in TSO. */ - if ((ifp->if_hwassist & CSUM_TSO) != 0) - CSR_WRITE_4(sc, Q_ADDR(sc_if->msk_txq, Q_CSR), - BMU_TX_IPIDINCR_ON); - else - CSR_WRITE_4(sc, Q_ADDR(sc_if->msk_txq, Q_CSR), - BMU_TX_IPIDINCR_OFF); CSR_WRITE_2(sc, Q_ADDR(sc_if->msk_txq, Q_WM), MSK_BMU_TX_WM); if (sc->msk_hw_id == CHIP_ID_YUKON_EC_U && sc->msk_hw_rev == CHIP_REV_YU_EC_U_A0) {