From owner-freebsd-current Wed Sep 23 13:16:27 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id NAA05450 for freebsd-current-outgoing; Wed, 23 Sep 1998 13:16:27 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from skynet.ctr.columbia.edu (skynet.ctr.columbia.edu [128.59.64.70]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id NAA05363 for ; Wed, 23 Sep 1998 13:16:08 -0700 (PDT) (envelope-from wpaul@skynet.ctr.columbia.edu) Received: (from wpaul@localhost) by skynet.ctr.columbia.edu (8.6.12/8.6.9) id QAA29137; Wed, 23 Sep 1998 16:20:10 -0400 From: Bill Paul Message-Id: <199809232020.QAA29137@skynet.ctr.columbia.edu> Subject: Re: xl driver and watchdog timeouts To: kong@kong.spb.ru (Hostas Red) Date: Wed, 23 Sep 1998 16:20:09 -0400 (EDT) Cc: gubarev@raven.itep.ru, current@FreeBSD.ORG In-Reply-To: from "Hostas Red" at Sep 23, 98 11:43:33 pm X-Mailer: ELM [version 2.4 PL24] Content-Type: text Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Of all the gin joints in all the towns in all the world, Hostas Red had to walk into mine and say: > Hi! > > On Tue, 22 Sep 1998, Bill Paul wrote: > > > Hm. Okay. I'm not sure what's going on here exactly, but if you have > > problems with a 3c905-TX that generates 'watchdog timeout' errors, > > please try the patch included at the end of this message. This patch > > was generated against the if_xl.c from FreeBSD-current, but it will > > apply to the 2.2.x version too with a little fuzz. > > I'm running current, as i said before. ;) Yes, but others may not be. > > Anyway, if you are having watchdog timeout problems, please try this > > patch and let me know what effect (if any) it has. > > Hm. It won't work ;( I can't get exactly where - i've checked if_xl.c and > it seems ok, but patch fails anyway. Maybe some whitespaces missing, or > so, still can't find it. If you tried to cut & paste the patch in an xterm, smack yourself. I'll send it to you again. To apply it, do the follwing: - save this e-mail to a file, /tmp/xl.patch - cd /sys/pci - patch < /tmp/xl.patch Do _NOT_ cut & paste the patch because you'll screw up the white space. You should have the following driver version in -current: * $Id: if_xl.c,v 1.11 1998/09/08 23:42:10 wpaul Exp $ If you don't have this, make sure to grab a fresh copy. If it fails again, SHOW ME THE ERROR MESSAGES!!! -Bill -- ============================================================================= -Bill Paul (212) 854-6020 | System Manager, Master of Unix-Fu Work: wpaul@ctr.columbia.edu | Center for Telecommunications Research Home: wpaul@skynet.ctr.columbia.edu | Columbia University, New York City ============================================================================= "It is not I who am crazy; it is I who am mad!" - Ren Hoek, "Space Madness" ============================================================================= *** if_xl.c 1998/09/08 16:05:04 1.53 --- if_xl.c 1998/09/22 15:57:54 *************** *** 2192,2219 **** } /* - * If the OACTIVE flag is set, make sure the transmitter - * isn't wedged. Call the txeoc handler to make sure the - * transmitter is enabled and then call the txeof handler - * to see if any descriptors can be reclaimed and reload - * the downlist pointer register if necessary. If after - * that the OACTIVE flag is still set, return, otherwise - * proceed and queue up some more frames. - */ - if (ifp->if_flags & IFF_OACTIVE) { - xl_txeoc(sc); - xl_txeof(sc); - if (ifp->if_flags & IFF_OACTIVE) - return; - } - - /* * Check for an available queue slot. If there are none, * punt. */ if (sc->xl_cdata.xl_tx_free == NULL) { ! ifp->if_flags |= IFF_OACTIVE; ! return; } start_tx = sc->xl_cdata.xl_tx_free; --- 2192,2207 ---- } /* * Check for an available queue slot. If there are none, * punt. */ if (sc->xl_cdata.xl_tx_free == NULL) { ! xl_txeoc(sc); ! xl_txeof(sc); ! if (sc->xl_cdata.xl_tx_free == NULL) { ! ifp->if_flags |= IFF_OACTIVE; ! return; ! } } start_tx = sc->xl_cdata.xl_tx_free; *************** *** 2653,2658 **** --- 2641,2652 ---- printf("xl%d: no carrier - transceiver cable problem?\n", sc->xl_unit); xl_txeoc(sc); + xl_txeof(sc); + xl_rxeof(sc); + xl_init(sc); + + if (ifp->if_snd.ifq_head != NULL) + xl_start(ifp); return; } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message