From f21ccb87b0cf52a3b28209bafc711edcab4d274e Mon Sep 17 00:00:00 2001 From: yongari Date: Mon, 29 Jun 2009 05:12:21 +0000 Subject: [PATCH] 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) --- sys/dev/ale/if_ale.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/dev/ale/if_ale.c b/sys/dev/ale/if_ale.c index f5ecb6a4981..65e068fa5db 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); -- 2.45.2