Module Name: src Committed By: ozaki-r Date: Sun Nov 16 16:20:01 UTC 2014
Modified Files: src/sys/arch/x86/pci: fwhrng.c src/sys/arch/x86/x86: via_padlock.c src/sys/dev/bluetooth: bcsp.c btkbd.c src/sys/dev/ic: nslm7x.c src/sys/dev/ir: irframe_tty.c src/sys/dev/isa: aps.c src/sys/dev/pci: pccbb.c src/sys/dev/pcmcia: btbc.c src/sys/dev/sdmmc: sdmmc.c src/sys/dev/wscons: wskbd.c src/sys/net: if_ecosubr.c Log Message: Replace callout_stop with callout_halt In order to call callout_destroy for a callout safely, we have to ensure the function of the callout is not running and pending. To do so, we should use callout_halt, not callout_stop. Discussed with martin@ and riastradh@. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/arch/x86/pci/fwhrng.c cvs rdiff -u -r1.22 -r1.23 src/sys/arch/x86/x86/via_padlock.c cvs rdiff -u -r1.24 -r1.25 src/sys/dev/bluetooth/bcsp.c cvs rdiff -u -r1.16 -r1.17 src/sys/dev/bluetooth/btkbd.c cvs rdiff -u -r1.60 -r1.61 src/sys/dev/ic/nslm7x.c cvs rdiff -u -r1.59 -r1.60 src/sys/dev/ir/irframe_tty.c cvs rdiff -u -r1.15 -r1.16 src/sys/dev/isa/aps.c cvs rdiff -u -r1.206 -r1.207 src/sys/dev/pci/pccbb.c cvs rdiff -u -r1.16 -r1.17 src/sys/dev/pcmcia/btbc.c cvs rdiff -u -r1.22 -r1.23 src/sys/dev/sdmmc/sdmmc.c cvs rdiff -u -r1.134 -r1.135 src/sys/dev/wscons/wskbd.c cvs rdiff -u -r1.40 -r1.41 src/sys/net/if_ecosubr.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/arch/x86/pci/fwhrng.c diff -u src/sys/arch/x86/pci/fwhrng.c:1.7 src/sys/arch/x86/pci/fwhrng.c:1.8 --- src/sys/arch/x86/pci/fwhrng.c:1.7 Sun Aug 10 16:44:34 2014 +++ src/sys/arch/x86/pci/fwhrng.c Sun Nov 16 16:20:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: fwhrng.c,v 1.7 2014/08/10 16:44:34 tls Exp $ */ +/* $NetBSD: fwhrng.c,v 1.8 2014/11/16 16:20:00 ozaki-r Exp $ */ /* * Copyright (c) 2000 Michael Shalayeff @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: fwhrng.c,v 1.7 2014/08/10 16:44:34 tls Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fwhrng.c,v 1.8 2014/11/16 16:20:00 ozaki-r Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -211,7 +211,7 @@ fwhrng_detach(device_t self, int flags) rnd_detach_source(&sc->sc_rnd_source); - callout_stop(&sc->sc_rnd_ch); + callout_halt(&sc->sc_rnd_ch, NULL); callout_destroy(&sc->sc_rnd_ch); /* Disable the RNG. */ Index: src/sys/arch/x86/x86/via_padlock.c diff -u src/sys/arch/x86/x86/via_padlock.c:1.22 src/sys/arch/x86/x86/via_padlock.c:1.23 --- src/sys/arch/x86/x86/via_padlock.c:1.22 Sun Aug 10 16:44:34 2014 +++ src/sys/arch/x86/x86/via_padlock.c Sun Nov 16 16:20:00 2014 @@ -1,5 +1,5 @@ /* $OpenBSD: via.c,v 1.8 2006/11/17 07:47:56 tom Exp $ */ -/* $NetBSD: via_padlock.c,v 1.22 2014/08/10 16:44:34 tls Exp $ */ +/* $NetBSD: via_padlock.c,v 1.23 2014/11/16 16:20:00 ozaki-r Exp $ */ /*- * Copyright (c) 2003 Jason Wright @@ -20,7 +20,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: via_padlock.c,v 1.22 2014/08/10 16:44:34 tls Exp $"); +__KERNEL_RCSID(0, "$NetBSD: via_padlock.c,v 1.23 2014/11/16 16:20:00 ozaki-r Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -626,7 +626,7 @@ via_padlock_detach(device_t self, int fl struct via_padlock_softc *sc = device_private(self); if (sc->sc_rnd_attached) { - callout_stop(&sc->sc_rnd_co); + callout_halt(&sc->sc_rnd_co, NULL); callout_destroy(&sc->sc_rnd_co); rnd_detach_source(&sc->sc_rnd_source); sc->sc_rnd_attached = false; Index: src/sys/dev/bluetooth/bcsp.c diff -u src/sys/dev/bluetooth/bcsp.c:1.24 src/sys/dev/bluetooth/bcsp.c:1.25 --- src/sys/dev/bluetooth/bcsp.c:1.24 Tue May 20 18:25:54 2014 +++ src/sys/dev/bluetooth/bcsp.c Sun Nov 16 16:20:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: bcsp.c,v 1.24 2014/05/20 18:25:54 rmind Exp $ */ +/* $NetBSD: bcsp.c,v 1.25 2014/11/16 16:20:00 ozaki-r Exp $ */ /* * Copyright (c) 2007 KIYOHARA Takashi * All rights reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bcsp.c,v 1.24 2014/05/20 18:25:54 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcsp.c,v 1.25 2014/11/16 16:20:00 ozaki-r Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -349,10 +349,10 @@ bcsp_detach(device_t self, int flags __u sc->sc_unit = NULL; } - callout_stop(&sc->sc_seq_timer); + callout_halt(&sc->sc_seq_timer, NULL); callout_destroy(&sc->sc_seq_timer); - callout_stop(&sc->sc_le_timer); + callout_halt(&sc->sc_le_timer, NULL); callout_destroy(&sc->sc_le_timer); return 0; Index: src/sys/dev/bluetooth/btkbd.c diff -u src/sys/dev/bluetooth/btkbd.c:1.16 src/sys/dev/bluetooth/btkbd.c:1.17 --- src/sys/dev/bluetooth/btkbd.c:1.16 Thu Sep 12 12:20:01 2013 +++ src/sys/dev/bluetooth/btkbd.c Sun Nov 16 16:20:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: btkbd.c,v 1.16 2013/09/12 12:20:01 martin Exp $ */ +/* $NetBSD: btkbd.c,v 1.17 2014/11/16 16:20:00 ozaki-r Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: btkbd.c,v 1.16 2013/09/12 12:20:01 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: btkbd.c,v 1.17 2014/11/16 16:20:00 ozaki-r Exp $"); #include <sys/param.h> #include <sys/callout.h> @@ -251,8 +251,7 @@ btkbd_detach(device_t self, int flags) #ifdef WSDISPLAY_COMPAT_RAWKBD #ifdef BTKBD_REPEAT - callout_stop(&sc->sc_repeat); - KASSERT(!callout_invoking(&sc->sc_repeat)); + callout_halt(&sc->sc_repeat, NULL); callout_destroy(&sc->sc_repeat); #endif #endif Index: src/sys/dev/ic/nslm7x.c diff -u src/sys/dev/ic/nslm7x.c:1.60 src/sys/dev/ic/nslm7x.c:1.61 --- src/sys/dev/ic/nslm7x.c:1.60 Sun Oct 20 21:13:15 2013 +++ src/sys/dev/ic/nslm7x.c Sun Nov 16 16:20:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: nslm7x.c,v 1.60 2013/10/20 21:13:15 christos Exp $ */ +/* $NetBSD: nslm7x.c,v 1.61 2014/11/16 16:20:00 ozaki-r Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nslm7x.c,v 1.60 2013/10/20 21:13:15 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nslm7x.c,v 1.61 2014/11/16 16:20:00 ozaki-r Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1703,7 +1703,7 @@ lm_attach(struct lm_softc *lmsc) void lm_detach(struct lm_softc *lmsc) { - callout_stop(&lmsc->sc_callout); + callout_halt(&lmsc->sc_callout, NULL); callout_destroy(&lmsc->sc_callout); sysmon_envsys_unregister(lmsc->sc_sme); } Index: src/sys/dev/ir/irframe_tty.c diff -u src/sys/dev/ir/irframe_tty.c:1.59 src/sys/dev/ir/irframe_tty.c:1.60 --- src/sys/dev/ir/irframe_tty.c:1.59 Mon Dec 16 15:49:40 2013 +++ src/sys/dev/ir/irframe_tty.c Sun Nov 16 16:20:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: irframe_tty.c,v 1.59 2013/12/16 15:49:40 mrg Exp $ */ +/* $NetBSD: irframe_tty.c,v 1.60 2014/11/16 16:20:00 ozaki-r Exp $ */ /* * TODO @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: irframe_tty.c,v 1.59 2013/12/16 15:49:40 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: irframe_tty.c,v 1.60 2014/11/16 16:20:00 ozaki-r Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -245,7 +245,7 @@ irframet_detach(device_t dev, int flags) struct irframet_softc *sc = device_private(dev); int rc; - callout_stop(&sc->sc_timeout); + callout_halt(&sc->sc_timeout, NULL); rc = irframe_detach(dev, flags); Index: src/sys/dev/isa/aps.c diff -u src/sys/dev/isa/aps.c:1.15 src/sys/dev/isa/aps.c:1.16 --- src/sys/dev/isa/aps.c:1.15 Tue Aug 14 14:36:43 2012 +++ src/sys/dev/isa/aps.c Sun Nov 16 16:20:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: aps.c,v 1.15 2012/08/14 14:36:43 jruoho Exp $ */ +/* $NetBSD: aps.c,v 1.16 2014/11/16 16:20:00 ozaki-r Exp $ */ /* $OpenBSD: aps.c,v 1.15 2007/05/19 19:14:11 tedu Exp $ */ /* $OpenBSD: aps.c,v 1.17 2008/06/27 06:08:43 canacar Exp $ */ /* @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: aps.c,v 1.15 2012/08/14 14:36:43 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aps.c,v 1.16 2014/11/16 16:20:00 ozaki-r Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -429,7 +429,7 @@ aps_detach(device_t self, int flags) { struct aps_softc *sc = device_private(self); - callout_stop(&sc->sc_callout); + callout_halt(&sc->sc_callout, NULL); callout_destroy(&sc->sc_callout); if (sc->sc_sme) Index: src/sys/dev/pci/pccbb.c diff -u src/sys/dev/pci/pccbb.c:1.206 src/sys/dev/pci/pccbb.c:1.207 --- src/sys/dev/pci/pccbb.c:1.206 Sat Mar 29 19:28:25 2014 +++ src/sys/dev/pci/pccbb.c Sun Nov 16 16:20:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: pccbb.c,v 1.206 2014/03/29 19:28:25 christos Exp $ */ +/* $NetBSD: pccbb.c,v 1.207 2014/11/16 16:20:00 ozaki-r Exp $ */ /* * Copyright (c) 1998, 1999 and 2000 @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pccbb.c,v 1.206 2014/03/29 19:28:25 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pccbb.c,v 1.207 2014/11/16 16:20:00 ozaki-r Exp $"); /* #define CBB_DEBUG @@ -560,7 +560,7 @@ pccbbdetach(device_t self, int flags) if (!TAILQ_EMPTY(&sc->sc_memwindow)) aprint_error_dev(self, "memory windows not empty"); - callout_stop(&sc->sc_insert_ch); + callout_halt(&sc->sc_insert_ch, NULL); callout_destroy(&sc->sc_insert_ch); mutex_destroy(&sc->sc_pwr_mtx); Index: src/sys/dev/pcmcia/btbc.c diff -u src/sys/dev/pcmcia/btbc.c:1.16 src/sys/dev/pcmcia/btbc.c:1.17 --- src/sys/dev/pcmcia/btbc.c:1.16 Tue May 20 18:25:54 2014 +++ src/sys/dev/pcmcia/btbc.c Sun Nov 16 16:20:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: btbc.c,v 1.16 2014/05/20 18:25:54 rmind Exp $ */ +/* $NetBSD: btbc.c,v 1.17 2014/11/16 16:20:00 ozaki-r Exp $ */ /* * Copyright (c) 2007 KIYOHARA Takashi * All rights reserved. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: btbc.c,v 1.16 2014/05/20 18:25:54 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: btbc.c,v 1.17 2014/11/16 16:20:00 ozaki-r Exp $"); #include <sys/param.h> #include <sys/callout.h> @@ -210,7 +210,7 @@ btbc_detach(device_t self, int flags) pmf_device_deregister(self); btbc_disable(sc->sc_dev); - callout_stop(&sc->sc_ledch); + callout_halt(&sc->sc_ledch, NULL); callout_destroy(&sc->sc_ledch); if (sc->sc_unit) { Index: src/sys/dev/sdmmc/sdmmc.c diff -u src/sys/dev/sdmmc/sdmmc.c:1.22 src/sys/dev/sdmmc/sdmmc.c:1.23 --- src/sys/dev/sdmmc/sdmmc.c:1.22 Wed Mar 19 15:26:42 2014 +++ src/sys/dev/sdmmc/sdmmc.c Sun Nov 16 16:20:01 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sdmmc.c,v 1.22 2014/03/19 15:26:42 nonaka Exp $ */ +/* $NetBSD: sdmmc.c,v 1.23 2014/11/16 16:20:01 ozaki-r Exp $ */ /* $OpenBSD: sdmmc.c,v 1.18 2009/01/09 10:58:38 jsg Exp $ */ /* @@ -49,7 +49,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sdmmc.c,v 1.22 2014/03/19 15:26:42 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sdmmc.c,v 1.23 2014/11/16 16:20:01 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_sdmmc.h" @@ -199,7 +199,7 @@ sdmmc_detach(device_t self, int flags) } if (ISSET(sc->sc_caps, SMC_CAPS_POLL_CARD_DET)) { - callout_stop(&sc->sc_card_detect_ch); + callout_halt(&sc->sc_card_detect_ch, NULL); callout_destroy(&sc->sc_card_detect_ch); } Index: src/sys/dev/wscons/wskbd.c diff -u src/sys/dev/wscons/wskbd.c:1.134 src/sys/dev/wscons/wskbd.c:1.135 --- src/sys/dev/wscons/wskbd.c:1.134 Fri Jul 25 08:10:39 2014 +++ src/sys/dev/wscons/wskbd.c Sun Nov 16 16:20:01 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: wskbd.c,v 1.134 2014/07/25 08:10:39 dholland Exp $ */ +/* $NetBSD: wskbd.c,v 1.135 2014/11/16 16:20:01 ozaki-r Exp $ */ /* * Copyright (c) 1996, 1997 Christopher G. Demetriou. All rights reserved. @@ -105,7 +105,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wskbd.c,v 1.134 2014/07/25 08:10:39 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wskbd.c,v 1.135 2014/11/16 16:20:01 ozaki-r Exp $"); #include "opt_ddb.h" #include "opt_kgdb.h" @@ -634,7 +634,7 @@ wskbd_detach(device_t self, int flags) wsmux_detach_sc(&sc->sc_base); #endif - callout_stop(&sc->sc_repeat_ch); + callout_halt(&sc->sc_repeat_ch, NULL); callout_destroy(&sc->sc_repeat_ch); if (sc->sc_isconsole) { Index: src/sys/net/if_ecosubr.c diff -u src/sys/net/if_ecosubr.c:1.40 src/sys/net/if_ecosubr.c:1.41 --- src/sys/net/if_ecosubr.c:1.40 Thu Jun 5 23:48:16 2014 +++ src/sys/net/if_ecosubr.c Sun Nov 16 16:20:01 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ecosubr.c,v 1.40 2014/06/05 23:48:16 rmind Exp $ */ +/* $NetBSD: if_ecosubr.c,v 1.41 2014/11/16 16:20:01 ozaki-r Exp $ */ /*- * Copyright (c) 2001 Ben Harris @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ecosubr.c,v 1.40 2014/06/05 23:48:16 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ecosubr.c,v 1.41 2014/11/16 16:20:01 ozaki-r Exp $"); #include "opt_inet.h" @@ -860,7 +860,7 @@ eco_retry_free(struct eco_retry *er) { int s; - callout_stop(&er->er_callout); + callout_halt(&er->er_callout, NULL); m_freem(er->er_packet); s = splnet(); LIST_REMOVE(er, er_link);