Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 May 2003 15:50:51 +0200
From:      Olivier Houchard <cognet@ci0.org>
To:        Nate Lawson <nate@root.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/pci if_sis.c
Message-ID:  <20030508135051.GA75992@ci0.org>
In-Reply-To: <20030506133223.V29676@root.org>
References:  <20030506020032.8318437B478@hub.freebsd.org> <20030506133223.V29676@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, May 06, 2003 at 01:57:47PM -0700, Nate Lawson wrote:
> > @@ -1374,8 +1374,6 @@
> >  		goto fail;
> >  	}
> >
> > -	callout_handle_init(&sc->sis_stat_ch);
> > -
> >  	/*
> >  	 * Call MI attach routine.
> >  	 */
> 
> I would rather you deleted the first call to callout_handle_init() instead
> (after the "Inform the world" comment).  Reasons include poor style for
> the first one and uniformity with other sys/pci/if_* drivers which do the
> init right before ether_ifattach().
> 

I don't have any objection in this being changed.

> > @@ -1747,8 +1745,6 @@
> >  		if (ifp->if_snd.ifq_head != NULL)
> >  			sis_start(ifp);
> >  	}
> > -
> > -	sc->sis_stat_ch = timeout(sis_tick, sc, hz);
> >
> >  	SIS_UNLOCK(sc);
> >
> 
> Can you check the other sys/pci/if_* devices to see if they have the same
> bug?  I think they all re-add the timeout at the end of *_tick().
> 

The problem was really that mii_tick() called sis_miibus_statchg() which
calls sis_init() which attempts to remove the timeout (but fails at this moment
because it is not PENDING) and then re-add the timeout. 
I checked all the other if_* files and didn't find any similar scenario.

> -Nate

Olivier



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030508135051.GA75992>