From owner-cvs-src@FreeBSD.ORG Tue Apr 22 06:09:58 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B4F891065673; Tue, 22 Apr 2008 06:09:58 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A70448FC24; Tue, 22 Apr 2008 06:09:58 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m3M69wsb098733; Tue, 22 Apr 2008 06:09:58 GMT (envelope-from yongari@repoman.freebsd.org) Received: (from yongari@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m3M69wdp098732; Tue, 22 Apr 2008 06:09:58 GMT (envelope-from yongari) Message-Id: <200804220609.m3M69wdp098732@repoman.freebsd.org> From: Pyun YongHyeon Date: Tue, 22 Apr 2008 06:09:58 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: RELENG_7 Cc: Subject: cvs commit: src/sys/dev/re if_re.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Apr 2008 06:09:58 -0000 yongari 2008-04-22 06:09:58 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) sys/dev/re if_re.c Log: MFC if_re.c 1.112 to RELENG_7. In revision 1.70, 1.71 and 1.84 re(4) tried to workaround checksum offload bugs by manual padding for short IP/UDP frames. Unfortunately it seems that these workaround does not work reliably on newer PCIe variants of RealTek chips. To workaround the hardware bug, always pad short frames if Tx IP checksum offload is requested. It seems that the hardware has a bug in IP checksum offload handling. NetBSD manually pads short frames only when the length of IP frame is less than 28 bytes but I chose 60 bytes to safety. Also unconditionally set IP checksum offload bit in Tx descriptor if any TCP or UDP checksum offload is requested. This is the same way as Linux does but it's not mentioned in data sheet. Revision Changes Path 1.95.2.16 +15 -13 src/sys/dev/re/if_re.c