summaryrefslogtreecommitdiffstats
path: root/sys/dev/ale
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2009-06-29 05:12:21 +0000
committeryongari <yongari@FreeBSD.org>2009-06-29 05:12:21 +0000
commitf21ccb87b0cf52a3b28209bafc711edcab4d274e (patch)
tree75d300e835ec18ff4fa1d4071b82dedaf50cb7b1 /sys/dev/ale
parenta3faeb1b4110d52bf2e7fe7d46368df8a3b74ff2 (diff)
downloadFreeBSD-src-f21ccb87b0cf52a3b28209bafc711edcab4d274e.zip
FreeBSD-src-f21ccb87b0cf52a3b28209bafc711edcab4d274e.tar.gz
Disable Rx checksum offload until I find more clue why it breaks
under certain environments. However give users chance to override it when he/she surely knows his/her hardware works with Rx checksum offload. Reported by: Ulrich Spoerlein ( uqs <> spoerlein dot net ) MFC after: 1 week Approved by: re (kensmith)
Diffstat (limited to 'sys/dev/ale')
-rw-r--r--sys/dev/ale/if_ale.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/ale/if_ale.c b/sys/dev/ale/if_ale.c
index f5ecb6a..65e068f 100644
--- a/sys/dev/ale/if_ale.c
+++ b/sys/dev/ale/if_ale.c
@@ -620,6 +620,14 @@ ale_attach(device_t dev)
ifp->if_capabilities |= IFCAP_VLAN_MTU;
ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_HWCSUM;
ifp->if_capenable = ifp->if_capabilities;
+ /*
+ * Even though controllers supported by ale(3) have Rx checksum
+ * offload bug the workaround for fragmented frames seemed to
+ * work so far. However it seems Rx checksum offload does not
+ * work under certain conditions. So disable Rx checksum offload
+ * until I find more clue about it but allow users to override it.
+ */
+ ifp->if_capenable &= ~IFCAP_RXCSUM;
/* Tell the upper layer(s) we support long frames. */
ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header);
OpenPOWER on IntegriCloud