From owner-freebsd-bugs@FreeBSD.ORG Fri Apr 15 06:20:10 2005 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E3B5A16A4CE for ; Fri, 15 Apr 2005 06:20:10 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id A226B43D4C for ; Fri, 15 Apr 2005 06:20:10 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j3F6KAAt042566 for ; Fri, 15 Apr 2005 06:20:10 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j3F6KAYg042565; Fri, 15 Apr 2005 06:20:10 GMT (envelope-from gnats) Resent-Date: Fri, 15 Apr 2005 06:20:10 GMT Resent-Message-Id: <200504150620.j3F6KAYg042565@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Lobach Pavel Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0D65B16A4CE for ; Fri, 15 Apr 2005 06:13:01 +0000 (GMT) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id E60AB43D41 for ; Fri, 15 Apr 2005 06:13:00 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id j3F6D0F8016882 for ; Fri, 15 Apr 2005 06:13:00 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id j3F6D0wA016881; Fri, 15 Apr 2005 06:13:00 GMT (envelope-from nobody) Message-Id: <200504150613.j3F6D0wA016881@www.freebsd.org> Date: Fri, 15 Apr 2005 06:13:00 GMT From: Lobach Pavel To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Subject: kern/79946: Checksum offloading doesn't work on intel 82551 NIC (chip rev=0x10) X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Apr 2005 06:20:11 -0000 >Number: 79946 >Category: kern >Synopsis: Checksum offloading doesn't work on intel 82551 NIC (chip rev=0x10) >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Apr 15 06:20:10 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Lobach Pavel >Release: FreeBSD 5.3 >Organization: >Environment: FreeBSD 5.3-RELEASE Intel PRO/100 ethernet adapter (82551 chip rev=0x10) >Description: We bought a couple of Intel 82551's cards (chip rev=0x10) But fxp driver doesn't enable checksum offloading for it nether in RELENG_5, nor in HEAD, because of in if_fxp.c: if (sc->revision == FXP_REV_82550 || sc->revision == FXP_REV_82550_C) { ...skipped... sc->flags |= FXP_FLAG_EXT_RFA; i.e. flag FXP_FLAG_EXT_RFA enabled only for 82550 and thus prevents enabling checksum offloading for 82551(chips rev=0x0f, 0x10) and even for 82550 (chip rev=0x0e) below: /* Enable checksum offload for 82550 or better chips */ if (sc->flags & FXP_FLAG_EXT_RFA) { <-- this flag doesn't set for "better chips" ifp->if_hwassist = FXP_CSUM_FEATURES; ifp->if_capabilities |= IFCAP_HWCSUM; ifp->if_capenable |= IFCAP_HWCSUM; } >How-To-Repeat: Install intel pro/100 card with 82551 chip and do: ifconfig fxp0 txcsum rxcsum it doesn't work >Fix: In if_fxp.c it should be: if (sc->revision >= FXP_REV_82550) { ... instead of if (sc->revision == FXP_REV_82550 || sc->revision == FXP_REV_82550_C) { Because intel chipset beginning from 82550 all have this feature or we can #define FXP_REV_82551 0x10 in if_fxpreg.h and in if_fxp.c: if (sc->revision >= FXP_REV_82550 && sc->revision <= FXP_REV_82551) { ... >Release-Note: >Audit-Trail: >Unformatted: