Date: Mon, 3 Mar 2008 19:41:40 +0900 From: Pyun YongHyeon <pyunyh@gmail.com> To: Milan Obuch <freebsd-current@dino.sk> Cc: freebsd-current@freebsd.org Subject: Re: CFT: vr(4) Message-ID: <20080303104140.GA74947@cdnetworks.co.kr> In-Reply-To: <200803031010.28087.freebsd-current@dino.sk> References: <20080217112104.X80805@fledge.watson.org> <200803011655.m21GtcMU078673@lava.sentex.ca> <20080303013142.GE72895@cdnetworks.co.kr> <200803031010.28087.freebsd-current@dino.sk>
next in thread | previous in thread | raw e-mail | index | archive | help
--BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Mar 03, 2008 at 10:10:25AM +0100, Milan Obuch wrote: > On Monday 03 March 2008, Pyun YongHyeon wrote: > > On Sat, Mar 01, 2008 at 11:53:41AM -0500, Mike Tancsa wrote: > > > > Sorry for late handling. I wanted to solve Milan Obuch's issue first > > before committing vr(4). But it seems that it's not easy to fix > > Milan's issue. :-( > > > > Well, I see some progress there... Today I was able to do some tests again, > and I was able to ping -f another box on the same network for some time. I > tried then csup sources and I got hard hang, again, this time with following > lines on console: > > vr0: PCI bus error -- resetting > vr0: restarting > Hmm, this is interesting. 6105M datasheet said nothing what can be done for this case. I guess this kind of error can come from improperly seated NICs or broken hardware. Would you re-seat the NIC or change PCI slot and try again with attached patch? > And no ability to enter kdb, either. > Just for record, I am getting following when kldload'ing if_vr: > > vr0: <VIA VT6105M Rhine III 10/100BaseTX> port 0x9c00-0x9cff mem > 0xfceff000-0xfceff0ff irq 18 at device 8.0 on pci3 > vr0: Quirks: 0x6 > vr0: Revision: 0x96 > miibus1: <MII bus> on vr0 > ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus1 > ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto > > (one out of four devices shown) > > > > At 07:30 PM 2/27/2008, Pyun YongHyeon wrote: > > > >I never thought this kind of testing. It's good to hear vr(4) > > > >recovers from the abrupt link change events. I guess this also > > > >indicates the overhauled vr(4) can close lots of PR for vr(4). > > > > > > BTW, any chance of these fixes being backported to RELENG_7 and > > > RELENG_6 ? Its not just media speed changes that causes the nic to > > > > I'm sure I'll MFC the change to RELENG_7 but not sure it could be > > done on RELENG_6 due to lack of spare time. > > > > In my eyes, if new vr works for others and no regression was found, it should > go in. I did not encountered a regression - it did not work with old driver, > it does not work (yet) with the new... but I hope we can get this one > working, too... > Yes, I really like to fix it too. > Milan -- Regards, Pyun YongHyeon --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="vr.patch2" --- if_vr.c.orig 2008-02-18 10:46:10.000000000 +0900 +++ if_vr.c 2008-03-03 19:27:15.000000000 +0900 @@ -1733,8 +1733,10 @@ CSR_WRITE_2(sc, VR_ISR, status); if ((status & (VR_ISR_BUSERR | VR_ISR_LINKSTAT2 | VR_ISR_STATSOFLOW)) != 0) { - if (vr_error(sc, status) != 0) - goto done_locked; + if (vr_error(sc, status) != 0) { + VR_UNLOCK(sc); + return; + } } vr_rxeof(sc); if ((status & (VR_ISR_RX_NOBUF | VR_ISR_RX_OFLOW)) != 0) { @@ -1762,12 +1764,18 @@ static int vr_error(struct vr_softc *sc, uint16_t status) { + uint16_t pcis; status &= VR_ISR_BUSERR | VR_ISR_LINKSTAT2 | VR_ISR_STATSOFLOW; if ((status & VR_ISR_BUSERR) != 0) { status &= ~VR_ISR_BUSERR; sc->vr_stat.bus_errors++; - device_printf(sc->vr_dev, "PCI bus error -- resetting\n"); + /* Disable further interrupts. */ + CSR_WRITE_2(sc, VR_IMR, 0); + pcis = pci_read_config(sc->vr_dev, PCIR_STATUS, 2); + device_printf(sc->vr_dev, "PCI bus error(0x%04x) -- " + "resetting\n", pcis); + pci_write_config(sc->vr_dev, PCIR_STATUS, pcis, 2); sc->vr_flags |= VR_F_RESTART; return (EAGAIN); } --BOKacYhQ+x31HxR3--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080303104140.GA74947>