--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: port 0x9c00-0x9cff mem
> 0xfceff000-0xfceff0ff irq 18 at device 8.0 on pci3
> vr0: Quirks: 0x6
> vr0: Revision: 0x96
> miibus1: on vr0
> ukphy0: 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
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/lis...reebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
--BOKacYhQ+x31HxR3--