aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/fxp
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2009-09-28 19:40:16 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2009-09-28 19:40:16 +0000
commit829b278e5e450b99a71b1b2c8316856cea5b836a (patch)
tree31b8bcb8bf5c58432e19a5adfcde4377b6180daa /sys/dev/fxp
parent32f8942a2177ae0aeae87bcc9f29aa81eaea77ee (diff)
downloadsrc-829b278e5e450b99a71b1b2c8316856cea5b836a.tar.gz
src-829b278e5e450b99a71b1b2c8316856cea5b836a.zip
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 >
Notes
Notes: svn path=/head/; revision=197586
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 4fb890f02b0b..a8d961eb0fb8 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