Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jun 2009 05:12:22 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r195153 - head/sys/dev/ale
Message-ID:  <200906290512.n5T5CMnr032649@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yongari
Date: Mon Jun 29 05:12:21 2009
New Revision: 195153
URL: http://svn.freebsd.org/changeset/base/195153

Log:
  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)

Modified:
  head/sys/dev/ale/if_ale.c

Modified: head/sys/dev/ale/if_ale.c
==============================================================================
--- head/sys/dev/ale/if_ale.c	Mon Jun 29 01:33:59 2009	(r195152)
+++ head/sys/dev/ale/if_ale.c	Mon Jun 29 05:12:21 2009	(r195153)
@@ -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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906290512.n5T5CMnr032649>