summaryrefslogtreecommitdiffstats
path: root/sys/dev/fxp
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2009-09-28 19:40:16 +0000
committeryongari <yongari@FreeBSD.org>2009-09-28 19:40:16 +0000
commitaf9841a11ed708fbb15ed44f80a21fa5232f95e5 (patch)
tree31b8bcb8bf5c58432e19a5adfcde4377b6180daa /sys/dev/fxp
parent4d695cf2812eb202bc11aea20b09def8cc799b33 (diff)
downloadFreeBSD-src-af9841a11ed708fbb15ed44f80a21fa5232f95e5.zip
FreeBSD-src-af9841a11ed708fbb15ed44f80a21fa5232f95e5.tar.gz
It seems some 82559ER controllers do not support Rx checksum
offloading. Datasheet said nothing about the limitation of 82559ER except WOL. Explicitly disable Rx checksum offloading for controllers that is known to lack the capability. PR: kern/138135 Tested by: Gooderum, Mark < mgooderum <> websense dot com >
Diffstat (limited to 'sys/dev/fxp')
-rw-r--r--sys/dev/fxp/if_fxp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c
index 4fb890f..a8d961e 100644
--- a/sys/dev/fxp/if_fxp.c
+++ b/sys/dev/fxp/if_fxp.c
@@ -631,8 +631,11 @@ fxp_attach(device_t dev)
}
/* For 82559 or later chips, Rx checksum offload is supported. */
- if (sc->revision >= FXP_REV_82559_A0)
- sc->flags |= FXP_FLAG_82559_RXCSUM;
+ if (sc->revision >= FXP_REV_82559_A0) {
+ /* 82559ER does not support Rx checksum offloading. */
+ if (sc->ident->devid != 0x1209)
+ sc->flags |= FXP_FLAG_82559_RXCSUM;
+ }
/*
* Enable use of extended RFDs and TCBs for 82550
* and later chips. Note: we need extended TXCB support
OpenPOWER on IntegriCloud