Module Name: src Committed By: ozaki-r Date: Tue May 23 02:19:14 UTC 2017
Modified Files: src/sys/dev/cadence: if_cemac.c src/sys/dev/ic: aic6915.c am7990.c am79900.c an.c arn5008.c arn9003.c awi.c dp8390.c dp83932.c hme.c lemac.c mb86960.c rt2560.c rt2661.c rt2860.c rtw.c smc90cx6.c smc91cxx.c tulip.c src/sys/dev/pci: if_ale.c if_ipw.c if_iwi.c if_tl.c if_vte.c if_wpi.c Log Message: Apply deferred if_start to more drivers And annotate some XXX_start as it runs in softint to clarify that it doesn't need deferred if_start. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/dev/cadence/if_cemac.c cvs rdiff -u -r1.34 -r1.35 src/sys/dev/ic/aic6915.c src/sys/dev/ic/rt2661.c cvs rdiff -u -r1.75 -r1.76 src/sys/dev/ic/am7990.c cvs rdiff -u -r1.24 -r1.25 src/sys/dev/ic/am79900.c cvs rdiff -u -r1.64 -r1.65 src/sys/dev/ic/an.c cvs rdiff -u -r1.12 -r1.13 src/sys/dev/ic/arn5008.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/ic/arn9003.c cvs rdiff -u -r1.91 -r1.92 src/sys/dev/ic/awi.c cvs rdiff -u -r1.86 -r1.87 src/sys/dev/ic/dp8390.c cvs rdiff -u -r1.39 -r1.40 src/sys/dev/ic/dp83932.c cvs rdiff -u -r1.95 -r1.96 src/sys/dev/ic/hme.c cvs rdiff -u -r1.47 -r1.48 src/sys/dev/ic/lemac.c cvs rdiff -u -r1.84 -r1.85 src/sys/dev/ic/mb86960.c cvs rdiff -u -r1.29 -r1.30 src/sys/dev/ic/rt2560.c cvs rdiff -u -r1.25 -r1.26 src/sys/dev/ic/rt2860.c cvs rdiff -u -r1.125 -r1.126 src/sys/dev/ic/rtw.c cvs rdiff -u -r1.68 -r1.69 src/sys/dev/ic/smc90cx6.c cvs rdiff -u -r1.94 -r1.95 src/sys/dev/ic/smc91cxx.c cvs rdiff -u -r1.189 -r1.190 src/sys/dev/ic/tulip.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/pci/if_ale.c cvs rdiff -u -r1.63 -r1.64 src/sys/dev/pci/if_ipw.c cvs rdiff -u -r1.102 -r1.103 src/sys/dev/pci/if_iwi.c cvs rdiff -u -r1.106 -r1.107 src/sys/dev/pci/if_tl.c cvs rdiff -u -r1.16 -r1.17 src/sys/dev/pci/if_vte.c cvs rdiff -u -r1.77 -r1.78 src/sys/dev/pci/if_wpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/cadence/if_cemac.c diff -u src/sys/dev/cadence/if_cemac.c:1.10 src/sys/dev/cadence/if_cemac.c:1.11 --- src/sys/dev/cadence/if_cemac.c:1.10 Thu Dec 15 09:28:04 2016 +++ src/sys/dev/cadence/if_cemac.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_cemac.c,v 1.10 2016/12/15 09:28:04 ozaki-r Exp $ */ +/* $NetBSD: if_cemac.c,v 1.11 2017/05/23 02:19:14 ozaki-r Exp $ */ /* * Copyright (c) 2015 Genetec Corporation. All rights reserved. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_cemac.c,v 1.10 2016/12/15 09:28:04 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_cemac.c,v 1.11 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -384,8 +384,8 @@ cemac_intr(void *arg) } } - if (cemac_gctx(sc) > 0 && IFQ_IS_EMPTY(&ifp->if_snd) == 0) - cemac_ifstart(ifp); + if (cemac_gctx(sc) > 0) + if_schedule_deferred_start(ifp); #if 0 // reloop irq = CEMAC_READ(IntStsC); if ((irq & (IntSts_RxSQ|IntSts_ECI)) != 0) @@ -621,6 +621,7 @@ cemac_init(struct cemac_softc *sc) ifp->if_softc = sc; IFQ_SET_READY(&ifp->if_snd); if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, (sc)->sc_enaddr); } Index: src/sys/dev/ic/aic6915.c diff -u src/sys/dev/ic/aic6915.c:1.34 src/sys/dev/ic/aic6915.c:1.35 --- src/sys/dev/ic/aic6915.c:1.34 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/aic6915.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: aic6915.c,v 1.34 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: aic6915.c,v 1.35 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: aic6915.c,v 1.34 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aic6915.c,v 1.35 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> @@ -283,6 +283,7 @@ sf_attach(struct sf_softc *sc) * Attach the interface. */ if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, enaddr); /* @@ -605,7 +606,7 @@ sf_intr(void *arg) sf_init(&sc->sc_ethercom.ec_if); /* Try and get more packets going. */ - sf_start(&sc->sc_ethercom.ec_if); + if_schedule_deferred_start(&sc->sc_ethercom.ec_if); } return (handled); Index: src/sys/dev/ic/rt2661.c diff -u src/sys/dev/ic/rt2661.c:1.34 src/sys/dev/ic/rt2661.c:1.35 --- src/sys/dev/ic/rt2661.c:1.34 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/ic/rt2661.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rt2661.c,v 1.34 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: rt2661.c,v 1.35 2017/05/23 02:19:14 ozaki-r Exp $ */ /* $OpenBSD: rt2661.c,v 1.17 2006/05/01 08:41:11 damien Exp $ */ /* $FreeBSD: rt2560.c,v 1.5 2006/06/02 19:59:31 csjp Exp $ */ @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rt2661.c,v 1.34 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rt2661.c,v 1.35 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> @@ -993,7 +993,7 @@ rt2661_tx_intr(struct rt2661_softc *sc) sc->sc_tx_timer = 0; ifp->if_flags &= ~IFF_OACTIVE; - rt2661_start(ifp); + rt2661_start(ifp); /* in softint */ splx(s); } Index: src/sys/dev/ic/am7990.c diff -u src/sys/dev/ic/am7990.c:1.75 src/sys/dev/ic/am7990.c:1.76 --- src/sys/dev/ic/am7990.c:1.75 Mon Apr 13 16:33:24 2015 +++ src/sys/dev/ic/am7990.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: am7990.c,v 1.75 2015/04/13 16:33:24 riastradh Exp $ */ +/* $NetBSD: am7990.c,v 1.76 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -65,7 +65,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: am7990.c,v 1.75 2015/04/13 16:33:24 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: am7990.c,v 1.76 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -114,6 +114,7 @@ am7990_config(struct am7990_softc *sc) sc->lsc.sc_start = am7990_start; lance_config(&sc->lsc); + if_deferred_start_init(ifp, NULL); mem = 0; sc->lsc.sc_initaddr = mem; @@ -356,7 +357,7 @@ am7990_tint(struct lance_softc *sc) sc->sc_first_td = bix; - am7990_start(ifp); + if_schedule_deferred_start(ifp); if (sc->sc_no_td == 0) ifp->if_timer = 0; Index: src/sys/dev/ic/am79900.c diff -u src/sys/dev/ic/am79900.c:1.24 src/sys/dev/ic/am79900.c:1.25 --- src/sys/dev/ic/am79900.c:1.24 Mon Apr 13 16:33:24 2015 +++ src/sys/dev/ic/am79900.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: am79900.c,v 1.24 2015/04/13 16:33:24 riastradh Exp $ */ +/* $NetBSD: am79900.c,v 1.25 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -103,7 +103,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: am79900.c,v 1.24 2015/04/13 16:33:24 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: am79900.c,v 1.25 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -152,6 +152,7 @@ am79900_config(struct am79900_softc *sc) sc->lsc.sc_start = am79900_start; lance_config(&sc->lsc); + if_deferred_start_init(ifp, NULL); mem = 0; sc->lsc.sc_initaddr = mem; @@ -387,7 +388,7 @@ am79900_tint(struct lance_softc *sc) sc->sc_first_td = bix; - am79900_start(ifp); + if_schedule_deferred_start(ifp); if (sc->sc_no_td == 0) ifp->if_timer = 0; Index: src/sys/dev/ic/an.c diff -u src/sys/dev/ic/an.c:1.64 src/sys/dev/ic/an.c:1.65 --- src/sys/dev/ic/an.c:1.64 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/ic/an.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: an.c,v 1.64 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: an.c,v 1.65 2017/05/23 02:19:14 ozaki-r Exp $ */ /* * Copyright (c) 1997, 1998, 1999 * Bill Paul <wp...@ctr.columbia.edu>. All rights reserved. @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: an.c,v 1.64 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: an.c,v 1.65 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> @@ -509,7 +509,7 @@ an_softintr(void *arg) sc->sc_ic.ic_state == IEEE80211_S_RUN && !IFQ_IS_EMPTY(&ifp->if_snd)) { s = splnet(); - an_start(ifp); + an_start(ifp); /* in softint */ splx(s); } } Index: src/sys/dev/ic/arn5008.c diff -u src/sys/dev/ic/arn5008.c:1.12 src/sys/dev/ic/arn5008.c:1.13 --- src/sys/dev/ic/arn5008.c:1.12 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/ic/arn5008.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: arn5008.c,v 1.12 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: arn5008.c,v 1.13 2017/05/23 02:19:14 ozaki-r Exp $ */ /* $OpenBSD: ar5008.c,v 1.21 2012/08/25 12:14:31 kettenis Exp $ */ /*- @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: arn5008.c,v 1.12 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: arn5008.c,v 1.13 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> #include <sys/sockio.h> @@ -1056,7 +1056,7 @@ ar5008_tx_intr(struct athn_softc *sc) } if (!SIMPLEQ_EMPTY(&sc->sc_txbufs)) { ifp->if_flags &= ~IFF_OACTIVE; - ifp->if_start(ifp); + ifp->if_start(ifp); /* in softint */ } splx(s); Index: src/sys/dev/ic/arn9003.c diff -u src/sys/dev/ic/arn9003.c:1.10 src/sys/dev/ic/arn9003.c:1.11 --- src/sys/dev/ic/arn9003.c:1.10 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/ic/arn9003.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: arn9003.c,v 1.10 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: arn9003.c,v 1.11 2017/05/23 02:19:14 ozaki-r Exp $ */ /* $OpenBSD: ar9003.c,v 1.25 2012/10/20 09:53:32 stsp Exp $ */ /*- @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: arn9003.c,v 1.10 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: arn9003.c,v 1.11 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> #include <sys/sockio.h> @@ -1204,7 +1204,7 @@ ar9003_tx_intr(struct athn_softc *sc) if (!SIMPLEQ_EMPTY(&sc->sc_txbufs)) { ifp->if_flags &= ~IFF_OACTIVE; - ifp->if_start(ifp); + ifp->if_start(ifp); /* in softint */ } splx(s); Index: src/sys/dev/ic/awi.c diff -u src/sys/dev/ic/awi.c:1.91 src/sys/dev/ic/awi.c:1.92 --- src/sys/dev/ic/awi.c:1.91 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/ic/awi.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: awi.c,v 1.91 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: awi.c,v 1.92 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 1999,2000,2001 The NetBSD Foundation, Inc. @@ -78,7 +78,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.91 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.92 2017/05/23 02:19:14 ozaki-r Exp $"); #include "opt_inet.h" @@ -1173,7 +1173,7 @@ awi_tx_int(struct awi_softc *sc) sc->sc_txdone, sc->sc_txnext, sc->sc_txbase, sc->sc_txend)); sc->sc_tx_timer = 0; ifp->if_flags &= ~IFF_OACTIVE; - awi_start(ifp); + awi_start(ifp); /* in softint */ } static struct mbuf * Index: src/sys/dev/ic/dp8390.c diff -u src/sys/dev/ic/dp8390.c:1.86 src/sys/dev/ic/dp8390.c:1.87 --- src/sys/dev/ic/dp8390.c:1.86 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/dp8390.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: dp8390.c,v 1.86 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: dp8390.c,v 1.87 2017/05/23 02:19:14 ozaki-r Exp $ */ /* * Device driver for National Semiconductor DS8390/WD83C690 based ethernet @@ -14,7 +14,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dp8390.c,v 1.86 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dp8390.c,v 1.87 2017/05/23 02:19:14 ozaki-r Exp $"); #include "opt_ipkdb.h" #include "opt_inet.h" @@ -151,6 +151,7 @@ dp8390_config(struct dp8390_softc *sc) /* Attach the interface. */ if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, sc->sc_enaddr); rnd_attach_source(&sc->rnd_source, device_xname(sc->sc_dev), @@ -786,7 +787,7 @@ dp8390_intr(void *arg) * to start output on the interface. This is done after * handling the receiver to give the receiver priority. */ - dp8390_start(ifp); + if_schedule_deferred_start(ifp); /* * Return NIC CR to standard state: page 0, remote DMA Index: src/sys/dev/ic/dp83932.c diff -u src/sys/dev/ic/dp83932.c:1.39 src/sys/dev/ic/dp83932.c:1.40 --- src/sys/dev/ic/dp83932.c:1.39 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/dp83932.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: dp83932.c,v 1.39 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: dp83932.c,v 1.40 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dp83932.c,v 1.39 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dp83932.c,v 1.40 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> @@ -212,6 +212,7 @@ sonic_attach(struct sonic_softc *sc, con * Attach the interface. */ if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, enaddr); /* @@ -612,7 +613,7 @@ sonic_intr(void *arg) if (handled) { if (wantinit) (void)sonic_init(ifp); - sonic_start(ifp); + if_schedule_deferred_start(ifp); } return handled; Index: src/sys/dev/ic/hme.c diff -u src/sys/dev/ic/hme.c:1.95 src/sys/dev/ic/hme.c:1.96 --- src/sys/dev/ic/hme.c:1.95 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/hme.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: hme.c,v 1.95 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: hme.c,v 1.96 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hme.c,v 1.95 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hme.c,v 1.96 2017/05/23 02:19:14 ozaki-r Exp $"); /* #define HMEDEBUG */ @@ -306,6 +306,7 @@ hme_config(struct hme_softc *sc) /* Attach the interface. */ if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, sc->sc_enaddr); if (pmf_device_register1(sc->sc_dev, NULL, NULL, hme_shutdown)) @@ -1021,7 +1022,7 @@ hme_tint(struct hme_softc *sc) /* Update ring */ sc->sc_rb.rb_tdtail = ri; - hme_start(ifp); + if_schedule_deferred_start(ifp); if (sc->sc_rb.rb_td_nbusy == 0) ifp->if_timer = 0; Index: src/sys/dev/ic/lemac.c diff -u src/sys/dev/ic/lemac.c:1.47 src/sys/dev/ic/lemac.c:1.48 --- src/sys/dev/ic/lemac.c:1.47 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/lemac.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lemac.c,v 1.47 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: lemac.c,v 1.48 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 1994, 1995, 1997 Matt Thomas <m...@3am-software.com> @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lemac.c,v 1.47 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lemac.c,v 1.48 2017/05/23 02:19:14 ozaki-r Exp $"); #include "opt_inet.h" @@ -171,7 +171,7 @@ lemac_tne_intr( } } sc->sc_if.if_flags &= ~IFF_OACTIVE; - lemac_ifstart(&sc->sc_if); + if_schedule_deferred_start(&sc->sc_if); } static void @@ -997,6 +997,7 @@ lemac_ifattach( IFQ_SET_READY(&ifp->if_snd); if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, sc->sc_enaddr); rnd_attach_source(&sc->rnd_source, device_xname(sc->sc_dev), Index: src/sys/dev/ic/mb86960.c diff -u src/sys/dev/ic/mb86960.c:1.84 src/sys/dev/ic/mb86960.c:1.85 --- src/sys/dev/ic/mb86960.c:1.84 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/mb86960.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: mb86960.c,v 1.84 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: mb86960.c,v 1.85 2017/05/23 02:19:14 ozaki-r Exp $ */ /* * All Rights Reserved, Copyright (C) Fujitsu Limited 1995 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mb86960.c,v 1.84 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mb86960.c,v 1.85 2017/05/23 02:19:14 ozaki-r Exp $"); /* * Device driver for Fujitsu MB86960A/MB86965A based Ethernet cards. @@ -247,6 +247,7 @@ mb86960_config(struct mb86960_softc *sc, /* Attach the interface. */ if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, sc->sc_enaddr); rnd_attach_source(&sc->rnd_source, device_xname(sc->sc_dev), @@ -1140,7 +1141,7 @@ mb86960_intr(void *arg) * receive operation priority. */ if ((ifp->if_flags & IFF_OACTIVE) == 0) - mb86960_start(ifp); + if_schedule_deferred_start(ifp); if (rstat != 0 || tstat != 0) rnd_add_uint32(&sc->rnd_source, rstat + tstat); Index: src/sys/dev/ic/rt2560.c diff -u src/sys/dev/ic/rt2560.c:1.29 src/sys/dev/ic/rt2560.c:1.30 --- src/sys/dev/ic/rt2560.c:1.29 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/ic/rt2560.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rt2560.c,v 1.29 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: rt2560.c,v 1.30 2017/05/23 02:19:14 ozaki-r Exp $ */ /* $OpenBSD: rt2560.c,v 1.15 2006/04/20 20:31:12 miod Exp $ */ /* $FreeBSD: rt2560.c,v 1.3 2006/03/21 21:15:43 damien Exp $*/ @@ -24,7 +24,7 @@ * http://www.ralinktech.com/ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rt2560.c,v 1.29 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rt2560.c,v 1.30 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> @@ -1167,7 +1167,7 @@ rt2560_tx_intr(struct rt2560_softc *sc) sc->sc_tx_timer = 0; ifp->if_flags &= ~IFF_OACTIVE; - rt2560_start(ifp); + rt2560_start(ifp); /* in softint */ splx(s); } @@ -1240,7 +1240,7 @@ rt2560_prio_intr(struct rt2560_softc *sc sc->sc_tx_timer = 0; ifp->if_flags &= ~IFF_OACTIVE; - rt2560_start(ifp); + rt2560_start(ifp); /* in softint */ splx(s); } Index: src/sys/dev/ic/rt2860.c diff -u src/sys/dev/ic/rt2860.c:1.25 src/sys/dev/ic/rt2860.c:1.26 --- src/sys/dev/ic/rt2860.c:1.25 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/ic/rt2860.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rt2860.c,v 1.25 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: rt2860.c,v 1.26 2017/05/23 02:19:14 ozaki-r Exp $ */ /* $OpenBSD: rt2860.c,v 1.90 2016/04/13 10:49:26 mpi Exp $ */ /* $FreeBSD: head/sys/dev/ral/rt2860.c 306591 2016-10-02 20:35:55Z avos $ */ @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rt2860.c,v 1.25 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rt2860.c,v 1.26 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> #include <sys/sockio.h> @@ -1282,7 +1282,7 @@ rt2860_tx_intr(struct rt2860_softc *sc, if (ring->queued <= RT2860_TX_RING_ONEMORE) sc->qfullmsk &= ~(1 << qid); ifp->if_flags &= ~IFF_OACTIVE; - rt2860_start(ifp); + rt2860_start(ifp); /* in softint */ splx(s); } Index: src/sys/dev/ic/rtw.c diff -u src/sys/dev/ic/rtw.c:1.125 src/sys/dev/ic/rtw.c:1.126 --- src/sys/dev/ic/rtw.c:1.125 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/ic/rtw.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rtw.c,v 1.125 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: rtw.c,v 1.126 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 2004, 2005, 2006, 2007 David Young. All rights * reserved. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rtw.c,v 1.125 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rtw.c,v 1.126 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> @@ -1858,7 +1858,7 @@ rtw_intr_tx(struct rtw_softc *sc, uint16 } if ((isr & RTW_INTR_TX) != 0) - rtw_start(ifp); + rtw_start(ifp); /* in softint */ splx(s); } @@ -1915,7 +1915,7 @@ rtw_intr_beacon(struct rtw_softc *sc, ui } M_SETCTX(m, ieee80211_ref_node(ic->ic_bss)); IF_ENQUEUE(&sc->sc_beaconq, m); - rtw_start(&sc->sc_if); + rtw_start(&sc->sc_if); /* in softint */ } splx(s); Index: src/sys/dev/ic/smc90cx6.c diff -u src/sys/dev/ic/smc90cx6.c:1.68 src/sys/dev/ic/smc90cx6.c:1.69 --- src/sys/dev/ic/smc90cx6.c:1.68 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/smc90cx6.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: smc90cx6.c,v 1.68 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: smc90cx6.c,v 1.69 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 1994, 1995, 1998 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smc90cx6.c,v 1.68 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smc90cx6.c,v 1.69 2017/05/23 02:19:14 ozaki-r Exp $"); /* #define BAHSOFTCOPY */ #define BAHRETRANSMIT /**/ @@ -198,6 +198,7 @@ bah_attach_subr(struct bah_softc *sc) ifp->if_mtu = ARCMTU; arc_ifattach(ifp, linkaddress); + if_deferred_start_init(ifp, NULL); #ifdef BAHSOFTCOPY sc->sc_rxcookie = softint_establish(SOFTINT_NET, bah_srint, sc); @@ -709,7 +710,7 @@ bah_tint(struct bah_softc *sc, int isr) softint_schedule(sc->sc_txcookie); #else /* call it directly */ - bah_start(ifp); + if_schedule_deferred_start(ifp); #endif } Index: src/sys/dev/ic/smc91cxx.c diff -u src/sys/dev/ic/smc91cxx.c:1.94 src/sys/dev/ic/smc91cxx.c:1.95 --- src/sys/dev/ic/smc91cxx.c:1.94 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/smc91cxx.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: smc91cxx.c,v 1.94 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: smc91cxx.c,v 1.95 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smc91cxx.c,v 1.94 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smc91cxx.c,v 1.95 2017/05/23 02:19:14 ozaki-r Exp $"); #include "opt_inet.h" @@ -308,6 +308,7 @@ smc91cxx_attach(struct smc91cxx_softc *s /* Attach the interface. */ if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, myea); /* @@ -1077,7 +1078,7 @@ smc91cxx_intr(void *arg) /* * Attempt to queue more packets for transmission. */ - smc91cxx_start(ifp); + if_schedule_deferred_start(ifp); /* * Reenable the interrupts we wish to receive now that processing Index: src/sys/dev/ic/tulip.c diff -u src/sys/dev/ic/tulip.c:1.189 src/sys/dev/ic/tulip.c:1.190 --- src/sys/dev/ic/tulip.c:1.189 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/ic/tulip.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tulip.c,v 1.189 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: tulip.c,v 1.190 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.189 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.190 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> @@ -524,6 +524,7 @@ tlp_attach(struct tulip_softc *sc, const * Attach the interface. */ if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, enaddr); ether_set_ifflags_cb(&sc->sc_ethercom, tlp_ifflags_cb); @@ -1199,7 +1200,7 @@ tlp_intr(void *arg) } /* Try to get more packets going. */ - tlp_start(ifp); + if_schedule_deferred_start(ifp); if (handled) rnd_add_uint32(&sc->sc_rnd_source, status); Index: src/sys/dev/pci/if_ale.c diff -u src/sys/dev/pci/if_ale.c:1.21 src/sys/dev/pci/if_ale.c:1.22 --- src/sys/dev/pci/if_ale.c:1.21 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/pci/if_ale.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ale.c,v 1.21 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: if_ale.c,v 1.22 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 2008, Pyun YongHyeon <yong...@freebsd.org> @@ -32,7 +32,7 @@ /* Driver for Atheros AR8121/AR8113/AR8114 PCIe Ethernet. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ale.c,v 1.21 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ale.c,v 1.22 2017/05/23 02:19:14 ozaki-r Exp $"); #include "vlan.h" @@ -572,6 +572,7 @@ ale_attach(device_t parent, device_t sel ifmedia_set(&sc->sc_miibus.mii_media, IFM_ETHER | IFM_AUTO); if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(ifp, sc->ale_eaddr); if (pmf_device_register(self, NULL, NULL)) @@ -1313,8 +1314,7 @@ ale_intr(void *xsc) } ale_txeof(sc); - if (!IFQ_IS_EMPTY(&ifp->if_snd)) - ale_start(ifp); + if_schedule_deferred_start(ifp); } /* Re-enable interrupts. */ Index: src/sys/dev/pci/if_ipw.c diff -u src/sys/dev/pci/if_ipw.c:1.63 src/sys/dev/pci/if_ipw.c:1.64 --- src/sys/dev/pci/if_ipw.c:1.63 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/pci/if_ipw.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ipw.c,v 1.63 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: if_ipw.c,v 1.64 2017/05/23 02:19:14 ozaki-r Exp $ */ /* FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.15 2005/11/13 17:17:40 damien Exp */ /*- @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ipw.c,v 1.63 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ipw.c,v 1.64 2017/05/23 02:19:14 ozaki-r Exp $"); /*- * Intel(R) PRO/Wireless 2100 MiniPCI driver @@ -1242,7 +1242,7 @@ ipw_tx_intr(struct ipw_softc *sc) /* Call start() since some buffer descriptors have been released */ ifp->if_flags &= ~IFF_OACTIVE; - ipw_start(ifp); + ipw_start(ifp); /* in softint */ splx(s); } Index: src/sys/dev/pci/if_iwi.c diff -u src/sys/dev/pci/if_iwi.c:1.102 src/sys/dev/pci/if_iwi.c:1.103 --- src/sys/dev/pci/if_iwi.c:1.102 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/pci/if_iwi.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_iwi.c,v 1.102 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: if_iwi.c,v 1.103 2017/05/23 02:19:14 ozaki-r Exp $ */ /* $OpenBSD: if_iwi.c,v 1.111 2010/11/15 19:11:57 damien Exp $ */ /*- @@ -19,7 +19,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_iwi.c,v 1.102 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_iwi.c,v 1.103 2017/05/23 02:19:14 ozaki-r Exp $"); /*- * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver @@ -1485,7 +1485,7 @@ iwi_tx_intr(struct iwi_softc *sc, struct ifp->if_flags &= ~IFF_OACTIVE; /* Call start() since some buffer descriptors have been released */ - iwi_start(ifp); + iwi_start(ifp); /* in softint */ } splx(s); Index: src/sys/dev/pci/if_tl.c diff -u src/sys/dev/pci/if_tl.c:1.106 src/sys/dev/pci/if_tl.c:1.107 --- src/sys/dev/pci/if_tl.c:1.106 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/pci/if_tl.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_tl.c,v 1.106 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: if_tl.c,v 1.107 2017/05/23 02:19:14 ozaki-r Exp $ */ /* * Copyright (c) 1997 Manuel Bouyer. All rights reserved. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_tl.c,v 1.106 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_tl.c,v 1.107 2017/05/23 02:19:14 ozaki-r Exp $"); #undef TLDEBUG #define TL_PRIV_STATS @@ -459,6 +459,7 @@ tl_pci_attach(device_t parent, device_t ifp->if_timer = 0; IFQ_SET_READY(&ifp->if_snd); if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(&(sc)->tl_if, (sc)->tl_enaddr); /* @@ -1168,8 +1169,7 @@ tl_intr(void *v) TL_HR_WRITE(sc, TL_HOST_CMD, HOST_CMD_GO); } sc->tl_if.if_timer = 0; - if (IFQ_IS_EMPTY(&sc->tl_if.if_snd) == 0) - tl_ifstart(&sc->tl_if); + if_schedule_deferred_start(&sc->tl_if); return 1; } #ifdef TLDEBUG @@ -1178,8 +1178,7 @@ tl_intr(void *v) } #endif sc->tl_if.if_timer = 0; - if (IFQ_IS_EMPTY(&sc->tl_if.if_snd) == 0) - tl_ifstart(&sc->tl_if); + if_schedule_deferred_start(&sc->tl_if); break; case TL_INTR_Stat: ack++; Index: src/sys/dev/pci/if_vte.c diff -u src/sys/dev/pci/if_vte.c:1.16 src/sys/dev/pci/if_vte.c:1.17 --- src/sys/dev/pci/if_vte.c:1.16 Thu Dec 15 09:28:05 2016 +++ src/sys/dev/pci/if_vte.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_vte.c,v 1.16 2016/12/15 09:28:05 ozaki-r Exp $ */ +/* $NetBSD: if_vte.c,v 1.17 2017/05/23 02:19:14 ozaki-r Exp $ */ /* * Copyright (c) 2011 Manuel Bouyer. All rights reserved. @@ -55,7 +55,7 @@ /* Driver for DM&P Electronics, Inc, Vortex86 RDC R6040 FastEthernet. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_vte.c,v 1.16 2016/12/15 09:28:05 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_vte.c,v 1.17 2017/05/23 02:19:14 ozaki-r Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -269,6 +269,7 @@ vte_attach(device_t parent, device_t sel ifp->if_timer = 0; IFQ_SET_READY(&ifp->if_snd); if_attach(ifp); + if_deferred_start_init(ifp, NULL); ether_ifattach(&(sc)->vte_if, (sc)->vte_eaddr); if (pmf_device_register1(self, vte_suspend, vte_resume, vte_shutdown)) @@ -974,8 +975,7 @@ vte_intr(void *arg) vte_txeof(sc); if ((status & MISR_EVENT_CNT_OFLOW) != 0) vte_stats_update(sc); - if (!IFQ_IS_EMPTY(&ifp->if_snd)) - vte_ifstart(ifp); + if_schedule_deferred_start(ifp); if (--n > 0) status = CSR_READ_2(sc, VTE_MISR); else Index: src/sys/dev/pci/if_wpi.c diff -u src/sys/dev/pci/if_wpi.c:1.77 src/sys/dev/pci/if_wpi.c:1.78 --- src/sys/dev/pci/if_wpi.c:1.77 Thu Feb 2 10:05:35 2017 +++ src/sys/dev/pci/if_wpi.c Tue May 23 02:19:14 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wpi.c,v 1.77 2017/02/02 10:05:35 nonaka Exp $ */ +/* $NetBSD: if_wpi.c,v 1.78 2017/05/23 02:19:14 ozaki-r Exp $ */ /*- * Copyright (c) 2006, 2007 @@ -18,7 +18,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_wpi.c,v 1.77 2017/02/02 10:05:35 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wpi.c,v 1.78 2017/05/23 02:19:14 ozaki-r Exp $"); /* * Driver for Intel PRO/Wireless 3945ABG 802.11 network adapters. @@ -1665,7 +1665,7 @@ wpi_tx_intr(struct wpi_softc *sc, struct sc->sc_tx_timer = 0; ifp->if_flags &= ~IFF_OACTIVE; - wpi_start(ifp); + wpi_start(ifp); /* in softint */ splx(s); }