On Tue, Oct 05, 2010 at 10:35:28AM +0200, Mike Belopuhov wrote:
>
> there's a forgotten splx in the driver. that explains why system
> appears to be hung. OK?
While this is a bug and should be fixed, we never actually call that codepath
as only re_diag sets testmode and we never call that :)
>
> Index: re.c
> ===================================================================
> RCS file: /home/cvs/src/sys/dev/ic/re.c,v
> retrieving revision 1.128
> diff -u -p -u -p -r1.128 re.c
> --- re.c 27 Aug 2010 17:08:00 -0000 1.128
> +++ re.c 5 Oct 2010 08:27:05 -0000
> @@ -2042,8 +2042,10 @@ re_init(struct ifnet *ifp)
> if (sc->sc_hwrev != RL_HWREV_8139CPLUS)
> CSR_WRITE_2(sc, RL_MAXRXPKTLEN, 16383);
>
> - if (sc->rl_testmode)
> + if (sc->rl_testmode) {
> + splx(s);
> return (0);
> + }
>
> mii_mediachg(&sc->sc_mii);