Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 May 2003 13:57:47 -0700 (PDT)
From:      Nate Lawson <nate@root.org>
To:        Olivier Houchard <cognet@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/pci if_sis.c
Message-ID:  <20030506133223.V29676@root.org>
In-Reply-To: <20030506020032.8318437B478@hub.freebsd.org>
References:  <20030506020032.8318437B478@hub.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 5 May 2003, Olivier Houchard wrote:
>   Modified files:
>     sys/pci              if_sis.c
>   Log:
>   Don't call timeout() in sis_tick(), this is done earlier by mii_tick(), and it
>   leads to a panic at unload time, as we own 2 instances of callout and
>   untimeout() only one.
>   Will I'm there, remove a call to callout_handler_init(), one is enough.
>
>   Reviewed by:    wpaul

Comments below.

> --- src/sys/pci/if_sis.c:1.74	Mon Apr 21 11:34:04 2003
> +++ src/sys/pci/if_sis.c	Mon May  5 19:00:01 2003
> @@ -29,7 +29,7 @@
>   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
>   * THE POSSIBILITY OF SUCH DAMAGE.
>   *
> - * $FreeBSD: /repoman/r/ncvs/src/sys/pci/if_sis.c,v 1.74 2003/04/21 18:34:04 imp Exp $
> + * $FreeBSD: /repoman/r/ncvs/src/sys/pci/if_sis.c,v 1.75 2003/05/06 02:00:01 cognet Exp $
>   */
>
>  /*
> @@ -58,7 +58,7 @@
>   */
>
>  #include <sys/cdefs.h>
> -__FBSDID("$FreeBSD: /repoman/r/ncvs/src/sys/pci/if_sis.c,v 1.74 2003/04/21 18:34:04 imp Exp $");
> +__FBSDID("$FreeBSD: /repoman/r/ncvs/src/sys/pci/if_sis.c,v 1.75 2003/05/06 02:00:01 cognet Exp $");
>
>  #include <sys/param.h>
>  #include <sys/systm.h>

Why do we have both the RCS id and FBSDID?  I thought only one was enough.

> @@ -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().

> @@ -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().

-Nate



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