NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-sparc64/46260: gem0 driver fails to recover after RX overflow
The following reply was made to PR port-sparc64/46260; it has been noted by
GNATS.
From: Julian Coleman <jdc%coris.org.uk@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: port-sparc64/46260: gem0 driver fails to recover after RX overflow
Date: Fri, 30 Mar 2012 16:11:45 +0100
Hi,
> the modified code is:
>
> ...
> if (status & GEM_INTR_RX_MAC) {
> int rxstat = bus_space_read_4(t, h, GEM_MAC_RX_STATUS);
> /*
> * At least with GEM_SUN_GEM and some GEM_SUN_ERI
> * revisions GEM_MAC_RX_OVERFLOW happen often due to a
> * silicon bug so handle them silently. Moreover, it's
> * likely that the receiver has hung so we reset it.
> */
> if (rxstat & GEM_MAC_RX_OVERFLOW) {
> ifp->if_ierrors++;
> aprint_error_dev(sc->sc_dev,
> "receive error: RX overflow");
> gem_reset_rxdma(sc);
> ...
>
> And this printf() is triggered.
Revision 1.68 (which was pulled up to netbsd-4, but not netbsd-4-0) changed
the:
gem_init(ifp);
to:
gem_reset_rxdma(sc);
when (rxstat & GEM_MAC_RX_OVERFLOW) occurred. Can you try changing this
back?
Thanks,
J
--
My other computer also runs NetBSD / Sailing at Newbiggin
http://www.netbsd.org/ / http://www.newbigginsailingclub.org/
Home |
Main Index |
Thread Index |
Old Index