Date: Sat, 8 Jan 2000 14:01:09 +0100 (CET) From: Arjan.deVet@adv.iae.nl (Arjan de Vet) To: FreeBSD-gnats-submit@freebsd.org Subject: kern/15986: xl ethernet interface hanging Message-ID: <20000108130109.A321E22CD@adv.iae.nl>
next in thread | raw e-mail | index | archive | help
>Number: 15986 >Category: kern >Synopsis: xl ethernet interface hanging >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 Jan 8 05:10:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Arjan de Vet >Release: FreeBSD 4.0-CURRENT >Organization: >Environment: FreeBSD 4.0-CURRENT >Description: I noticed that my xl0 ethernet interface didn't work anymore (or with enormous delays) and I traced it back to revision 1.69 in if_xl.c: Index: if_xl.c =================================================================== RCS file: /home/freebsd/CVS/src/sys/pci/if_xl.c,v retrieving revision 1.68 retrieving revision 1.69 diff -u -u -5 -w -r1.68 -r1.69 --- if_xl.c 1999/10/14 21:49:17 1.68 +++ if_xl.c 1999/10/25 20:52:32 1.69 @@ -2389,13 +2389,13 @@ /* * Cancel pending I/O and free all RX/TX buffers. */ xl_stop(sc); - xl_reset(sc); + CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_TX_RESET); xl_wait(sc); - DELAY(1000); + DELAY(10000); if (sc->xl_miibus != NULL) mii = device_get_softc(sc->xl_miibus); /* Init our MAC address */ dmesg output: xl0: <3Com 3c900B-TPO Etherlink XL> irq 12 at device 11.0 on pci0 xl0: Ethernet address: 00:50:04:ea:f9:c0 xl0: media options word: 8 xl0: guessing 10BaseT transceiver xl0: found 10baseT xl0: selecting 10baseT transceiver, half duplex bpf: xl0 attached >How-To-Repeat: >Fix: Because the comment talks about RX/TX buffers I tried this fix: Index: if_xl.c =================================================================== RCS file: /home/freebsd/CVS/src/sys/pci/if_xl.c,v retrieving revision 1.71 diff -u -r1.71 if_xl.c --- if_xl.c 2000/01/03 15:28:47 1.71 +++ if_xl.c 2000/01/08 12:30:48 @@ -2426,6 +2426,8 @@ */ xl_stop(sc); + CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_RESET); + xl_wait(sc); CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_TX_RESET); xl_wait(sc); DELAY(10000); and then my xl0 interface worked again. Is this a correct solution? >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000108130109.A321E22CD>