Date: Sat, 23 Oct 2004 14:10:49 +0200 (CEST) From: Arjan de Vet <devet@devet.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/73038: if_sk.c seems to need IFF_NEEDSGIANT on 5.3-BETA/RC1 Message-ID: <20041023121049.A20631938D@adv.devet.org> Resent-Message-ID: <200410231220.i9NCKEHx016810@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 73038 >Category: kern >Synopsis: if_sk.c seems to need IFF_NEEDSGIANT on 5.3-BETA/RC1 >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Oct 23 12:20:14 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Arjan de Vet >Release: FreeBSD 5.3-RC1 i386 >Organization: >Environment: System: FreeBSD adv.devet.org 5.3-RC1 FreeBSD 5.3-RC1 #7: Sat Oct 23 13:49:58 CEST 2004 root@adv.devet.org:/usr/obj/usr/src/sys/ADV i386 >Description: After upgrading from 5.2.1-RELEASE to 5.3-BETA/RC, my sk0 network interface on an ASUS P4P800 motherboard mangles network connections (broken ssh connections, broken web pages). skc0: <3Com 3C940 Gigabit Ethernet> port 0xd800-0xd8ff mem 0xfeafc000-0xfeafffff irq 22 at device 5.0 on pci2 skc0: 3Com Gigabit LOM (3C940) sk0: <Marvell Semiconductor, Inc. Yukon> on skc0 sk0: Ethernet address: 00:0c:6e:ea:f1:ba sk0: if_start running deferred for Giant miibus0: <MII bus> on sk0 e1000phy0: <Marvell 88E1000 Gigabit PHY> on miibus0 e1000phy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto First workaround is to put debug.mpsafenet="0" in /boot/loader.conf. Another workaround seems to be adding the IFF_NEEDSGIANT flag to the if_sk.c driver. See patch below. >How-To-Repeat: SSH into another machine and give a command that produces lots of output ('ls -alR /') and watch the ssh-connection break with some weird error message. >Fix: Index: if_sk.c =================================================================== RCS file: /home/freebsd/CVS/src/sys/pci/if_sk.c,v retrieving revision 1.83.2.2 diff -u -r1.83.2.2 if_sk.c --- if_sk.c 25 Aug 2004 21:19:06 -0000 1.83.2.2 +++ if_sk.c 23 Oct 2004 11:47:50 -0000 @@ -1375,7 +1375,7 @@ ifp->if_softc = sc_if; if_initname(ifp, device_get_name(dev), device_get_unit(dev)); ifp->if_mtu = ETHERMTU; - ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; + ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST | IFF_NEEDSGIANT; ifp->if_ioctl = sk_ioctl; ifp->if_start = sk_start; ifp->if_watchdog = sk_watchdog; >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041023121049.A20631938D>