From: Sepherosa Ziehau Date: Thu, 2 Aug 2012 11:59:27 +0000 (+0800) Subject: igb: Change TXCSUM does not require reinitialize hardware X-Git-Tag: v3.2.0~479 X-Git-Url: https://gitweb.dragonflybsd.org/~tuxillo/dragonfly.git/commitdiff_plain/77d8cab9c37cd0b67d02f66873c76dae11bbdc96 igb: Change TXCSUM does not require reinitialize hardware --- diff --git a/sys/dev/netif/igb/if_igb.c b/sys/dev/netif/igb/if_igb.c index a3d695c561..705ae37fe7 100644 --- a/sys/dev/netif/igb/if_igb.c +++ b/sys/dev/netif/igb/if_igb.c @@ -807,14 +807,21 @@ igb_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) case SIOCSIFCAP: reinit = 0; mask = ifr->ifr_reqcap ^ ifp->if_capenable; - if (mask & IFCAP_HWCSUM) { - ifp->if_capenable ^= (mask & IFCAP_HWCSUM); + if (mask & IFCAP_RXCSUM) { + ifp->if_capenable ^= IFCAP_RXCSUM; reinit = 1; } if (mask & IFCAP_VLAN_HWTAGGING) { ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; reinit = 1; } + if (mask & IFCAP_TXCSUM) { + ifp->if_capenable ^= IFCAP_TXCSUM; + if (ifp->if_capenable & IFCAP_TXCSUM) + ifp->if_hwassist |= IGB_CSUM_FEATURES; + else + ifp->if_hwassist &= ~IGB_CSUM_FEATURES; + } if (mask & IFCAP_RSS) ifp->if_capenable ^= IFCAP_RSS; if (reinit && (ifp->if_flags & IFF_RUNNING)) @@ -851,12 +858,6 @@ igb_init(void *xsc) E1000_WRITE_REG(&sc->hw, E1000_VET, ETHERTYPE_VLAN); - /* Set hardware offload abilities */ - if (ifp->if_capenable & IFCAP_TXCSUM) - ifp->if_hwassist = IGB_CSUM_FEATURES; - else - ifp->if_hwassist = 0; - /* Configure for OS presence */ igb_get_mgmt(sc);