Module Name:    src
Committed By:   christos
Date:           Sat Oct 12 16:49:01 UTC 2013

Modified Files:
        src/sys/dev/ata: ata.c
        src/sys/dev/cardbus: cardslot.c
        src/sys/dev/ieee1394: firewire.c
        src/sys/dev/pcmcia: wdc_pcmcia.c
        src/sys/dev/scsipi: scsiconf.c
        src/sys/dev/sdmmc: ld_sdmmc.c sdmmc.c
        src/sys/dev/usb: usb.c
        src/sys/kern: subr_autoconf.c
        src/sys/sys: device.h

Log Message:
Pass the device name in, so we can debug what deferred drivers did not work.


To generate a diff of this commit:
cvs rdiff -u -r1.128 -r1.129 src/sys/dev/ata/ata.c
cvs rdiff -u -r1.54 -r1.55 src/sys/dev/cardbus/cardslot.c
cvs rdiff -u -r1.42 -r1.43 src/sys/dev/ieee1394/firewire.c
cvs rdiff -u -r1.123 -r1.124 src/sys/dev/pcmcia/wdc_pcmcia.c
cvs rdiff -u -r1.270 -r1.271 src/sys/dev/scsipi/scsiconf.c
cvs rdiff -u -r1.11 -r1.12 src/sys/dev/sdmmc/ld_sdmmc.c
cvs rdiff -u -r1.20 -r1.21 src/sys/dev/sdmmc/sdmmc.c
cvs rdiff -u -r1.144 -r1.145 src/sys/dev/usb/usb.c
cvs rdiff -u -r1.227 -r1.228 src/sys/kern/subr_autoconf.c
cvs rdiff -u -r1.143 -r1.144 src/sys/sys/device.h

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/ata/ata.c
diff -u src/sys/dev/ata/ata.c:1.128 src/sys/dev/ata/ata.c:1.129
--- src/sys/dev/ata/ata.c:1.128	Wed Aug  7 08:50:17 2013
+++ src/sys/dev/ata/ata.c	Sat Oct 12 12:49:00 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: ata.c,v 1.128 2013/08/07 12:50:17 blymn Exp $	*/
+/*	$NetBSD: ata.c,v 1.129 2013/10/12 16:49:00 christos Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Manuel Bouyer.  All rights reserved.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.128 2013/08/07 12:50:17 blymn Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.129 2013/10/12 16:49:00 christos Exp $");
 
 #include "opt_ata.h"
 
@@ -267,7 +267,7 @@ atabusconfig(struct atabus_softc *atabus
 
 	ata_delref(chp);
 
-	config_pending_decr();
+	config_pending_decr(atac->atac_dev);
 }
 
 /*
@@ -394,7 +394,7 @@ atabusconfig_thread(void *arg)
 
 	ata_delref(chp);
 
-	config_pending_decr();
+	config_pending_decr(atac->atac_dev);
 	kthread_exit(0);
 }
 
@@ -518,7 +518,7 @@ atabus_attach(device_t parent, device_t 
 	initq = malloc(sizeof(*initq), M_DEVBUF, M_WAITOK);
 	initq->atabus_sc = sc;
 	TAILQ_INSERT_TAIL(&atabus_initq_head, initq, atabus_initq);
-	config_pending_incr();
+	config_pending_incr(sc->sc_dev);
 
 	if ((error = kthread_create(PRI_NONE, 0, NULL, atabus_thread, sc,
 	    &chp->ch_thread, "%s", device_xname(self))) != 0)
@@ -1715,7 +1715,7 @@ atabus_rescan(device_t self, const char 
 	initq = malloc(sizeof(*initq), M_DEVBUF, M_WAITOK);
 	initq->atabus_sc = sc;
 	TAILQ_INSERT_TAIL(&atabus_initq_head, initq, atabus_initq);
-	config_pending_incr();
+	config_pending_incr(sc->sc_dev);
 
 	chp->ch_flags |= ATACH_TH_RESCAN;
 	wakeup(&chp->ch_thread);

Index: src/sys/dev/cardbus/cardslot.c
diff -u src/sys/dev/cardbus/cardslot.c:1.54 src/sys/dev/cardbus/cardslot.c:1.55
--- src/sys/dev/cardbus/cardslot.c:1.54	Sat Oct 27 13:18:15 2012
+++ src/sys/dev/cardbus/cardslot.c	Sat Oct 12 12:49:00 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: cardslot.c,v 1.54 2012/10/27 17:18:15 chs Exp $	*/
+/*	$NetBSD: cardslot.c,v 1.55 2013/10/12 16:49:00 christos Exp $	*/
 
 /*
  * Copyright (c) 1999 and 2000
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cardslot.c,v 1.54 2012/10/27 17:18:15 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cardslot.c,v 1.55 2013/10/12 16:49:00 christos Exp $");
 
 #include "opt_cardslot.h"
 
@@ -147,7 +147,7 @@ cardslotattach(device_t parent, device_t
 	}
 
 	if (csc != NULL || psc != NULL) {
-		config_pending_incr();
+		config_pending_incr(self);
 		if (kthread_create(PRI_NONE, 0, NULL, cardslot_event_thread,
 		    sc, &sc->sc_event_thread, "%s", device_xname(self))) {
 			aprint_error_dev(sc->sc_dev,
@@ -298,7 +298,7 @@ cardslot_event_thread(void *arg)
 			splx(s);
 			if (first) {
 				first = 0;
-				config_pending_decr();
+				config_pending_decr(sc->sc_dev);
 			}
 			(void) tsleep(&sc->sc_events, PWAIT, "cardslotev", 0);
 			continue;

Index: src/sys/dev/ieee1394/firewire.c
diff -u src/sys/dev/ieee1394/firewire.c:1.42 src/sys/dev/ieee1394/firewire.c:1.43
--- src/sys/dev/ieee1394/firewire.c:1.42	Sat Aug  4 22:47:52 2012
+++ src/sys/dev/ieee1394/firewire.c	Sat Oct 12 12:49:00 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: firewire.c,v 1.42 2012/08/05 02:47:52 riastradh Exp $	*/
+/*	$NetBSD: firewire.c,v 1.43 2013/10/12 16:49:00 christos Exp $	*/
 /*-
  * Copyright (c) 2003 Hidetoshi Shimokawa
  * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: firewire.c,v 1.42 2012/08/05 02:47:52 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: firewire.c,v 1.43 2013/10/12 16:49:00 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -256,13 +256,13 @@ firewireattach(device_t parent, device_t
 	callout_schedule(&fc->timeout_callout, hz);
 
 	/* Tell config we will have started a thread to scan the bus.  */
-	config_pending_incr();
+	config_pending_incr(self);
 
 	/* create thread */
 	if (kthread_create(PRI_NONE, KTHREAD_MPSAFE, NULL, fw_bus_probe_thread,
 	    fc, &fc->probe_thread, "fw%dprobe", device_unit(fc->bdev))) {
 		aprint_error_dev(self, "kthread_create failed\n");
-		config_pending_decr();
+		config_pending_decr(self);
 	}
 
 	devlist = malloc(sizeof(struct firewire_dev_list), M_DEVBUF, M_NOWAIT);
@@ -1962,7 +1962,7 @@ fw_bus_probe_thread(void *arg)
 	 * 		once = true;
 	 * 	}
 	 */
-	config_pending_decr();
+	config_pending_decr(fc->bdev);
 
 	mutex_enter(&fc->wait_lock);
 	while (fc->status != FWBUSDETACH) {

Index: src/sys/dev/pcmcia/wdc_pcmcia.c
diff -u src/sys/dev/pcmcia/wdc_pcmcia.c:1.123 src/sys/dev/pcmcia/wdc_pcmcia.c:1.124
--- src/sys/dev/pcmcia/wdc_pcmcia.c:1.123	Tue Jul 31 11:50:37 2012
+++ src/sys/dev/pcmcia/wdc_pcmcia.c	Sat Oct 12 12:49:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_pcmcia.c,v 1.123 2012/07/31 15:50:37 bouyer Exp $ */
+/*	$NetBSD: wdc_pcmcia.c,v 1.124 2013/10/12 16:49:01 christos Exp $ */
 
 /*-
  * Copyright (c) 1998, 2003, 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.123 2012/07/31 15:50:37 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.124 2013/10/12 16:49:01 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -316,7 +316,7 @@ wdc_pcmcia_attach(device_t parent, devic
 	 * and probe properly, so give them half a second.
 	 * See PR 25659 for details.
 	 */
-	config_pending_incr();
+	config_pending_incr(self);
 	tsleep(wdc_pcmcia_attach, PWAIT, "wdcattach", hz / 2);
 
 	wdcattach(&sc->ata_channel);
@@ -324,7 +324,7 @@ wdc_pcmcia_attach(device_t parent, devic
 	if (!pmf_device_register(self, NULL, NULL))
 		aprint_error_dev(self, "unable to establish power handler\n");
 
-	config_pending_decr();
+	config_pending_decr(self);
 	ata_delref(&sc->ata_channel);
 	sc->sc_state = WDC_PCMCIA_ATTACHED;
 	return;

Index: src/sys/dev/scsipi/scsiconf.c
diff -u src/sys/dev/scsipi/scsiconf.c:1.270 src/sys/dev/scsipi/scsiconf.c:1.271
--- src/sys/dev/scsipi/scsiconf.c:1.270	Sun Sep 15 09:53:51 2013
+++ src/sys/dev/scsipi/scsiconf.c	Sat Oct 12 12:49:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: scsiconf.c,v 1.270 2013/09/15 13:53:51 martin Exp $	*/
+/*	$NetBSD: scsiconf.c,v 1.271 2013/10/12 16:49:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2004 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.270 2013/09/15 13:53:51 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.271 2013/10/12 16:49:01 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -241,7 +241,7 @@ scsibusattach(device_t parent, device_t 
 	scsi_initq = malloc(sizeof(struct scsi_initq), M_DEVBUF, M_WAITOK);
 	scsi_initq->sc_channel = chan;
 	TAILQ_INSERT_TAIL(&scsi_initq_head, scsi_initq, scsi_initq);
-        config_pending_incr();
+        config_pending_incr(sc->sc_dev);
 	if (scsipi_channel_init(chan)) {
 		aprint_error_dev(sc->sc_dev, "failed to init channel\n");
 		return;
@@ -288,7 +288,7 @@ scsibus_config(struct scsipi_channel *ch
 
 	scsipi_adapter_delref(chan->chan_adapter);
 
-	config_pending_decr();
+	config_pending_decr(sc->sc_dev);
 }
 
 static int

Index: src/sys/dev/sdmmc/ld_sdmmc.c
diff -u src/sys/dev/sdmmc/ld_sdmmc.c:1.11 src/sys/dev/sdmmc/ld_sdmmc.c:1.12
--- src/sys/dev/sdmmc/ld_sdmmc.c:1.11	Fri Dec 14 18:53:56 2012
+++ src/sys/dev/sdmmc/ld_sdmmc.c	Sat Oct 12 12:49:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: ld_sdmmc.c,v 1.11 2012/12/14 23:53:56 jakllsch Exp $	*/
+/*	$NetBSD: ld_sdmmc.c,v 1.12 2013/10/12 16:49:01 christos Exp $	*/
 
 /*
  * Copyright (c) 2008 KIYOHARA Takashi
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ld_sdmmc.c,v 1.11 2012/12/14 23:53:56 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ld_sdmmc.c,v 1.12 2013/10/12 16:49:01 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_sdmmc.h"
@@ -135,7 +135,7 @@ ld_sdmmc_attach(device_t parent, device_
 	 * It is avoided that the error occurs when the card attaches it,
 	 * when wedge is supported.
 	 */
-	config_pending_incr();
+	config_pending_incr(self);
 	if (kthread_create(PRI_NONE, KTHREAD_MPSAFE, NULL,
 	    ld_sdmmc_doattach, sc, &lwp, "%sattach", device_xname(self))) {
 		aprint_error_dev(self, "couldn't create thread\n");
@@ -157,7 +157,7 @@ ld_sdmmc_doattach(void *arg)
 		    ssc->sc_busclk / 1000, ssc->sc_busclk % 1000);
 	else
 		aprint_normal(" %u KHz\n", ssc->sc_busclk % 1000);
-	config_pending_decr();
+	config_pending_decr(ld->sc_dv);
 	kthread_exit(0);
 }
 

Index: src/sys/dev/sdmmc/sdmmc.c
diff -u src/sys/dev/sdmmc/sdmmc.c:1.20 src/sys/dev/sdmmc/sdmmc.c:1.21
--- src/sys/dev/sdmmc/sdmmc.c:1.20	Sat Dec 22 16:24:49 2012
+++ src/sys/dev/sdmmc/sdmmc.c	Sat Oct 12 12:49:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: sdmmc.c,v 1.20 2012/12/22 21:24:49 jakllsch Exp $	*/
+/*	$NetBSD: sdmmc.c,v 1.21 2013/10/12 16:49:01 christos 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.20 2012/12/22 21:24:49 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sdmmc.c,v 1.21 2013/10/12 16:49:01 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_sdmmc.h"
@@ -170,7 +170,7 @@ sdmmc_attach(device_t parent, device_t s
 	 * Create the event thread that will attach and detach cards
 	 * and perform other lengthy operations.
 	 */
-	config_pending_incr();
+	config_pending_incr(self);
 	config_interrupts(self, sdmmc_doattach);
 }
 
@@ -252,7 +252,7 @@ sdmmc_task_thread(void *arg)
 	struct sdmmc_task *task;
 
 	sdmmc_discover_task(sc);
-	config_pending_decr();
+	config_pending_decr(sc->sc_dev);
 
 	mutex_enter(&sc->sc_tskq_mtx);
 	for (;;) {

Index: src/sys/dev/usb/usb.c
diff -u src/sys/dev/usb/usb.c:1.144 src/sys/dev/usb/usb.c:1.145
--- src/sys/dev/usb/usb.c:1.144	Sat Sep 14 10:06:40 2013
+++ src/sys/dev/usb/usb.c	Sat Oct 12 12:49:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: usb.c,v 1.144 2013/09/14 14:06:40 jakllsch Exp $	*/
+/*	$NetBSD: usb.c,v 1.145 2013/10/12 16:49:01 christos Exp $	*/
 
 /*
  * Copyright (c) 1998, 2002, 2008, 2012 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.144 2013/09/14 14:06:40 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.145 2013/10/12 16:49:01 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -316,7 +316,7 @@ usb_doattach(device_t self)
 		sc->sc_dying = 1;
 	}
 
-	config_pending_incr();
+	config_pending_incr(self);
 
 	if (!pmf_device_register(self, NULL, NULL))
 		aprint_error_dev(self, "couldn't establish power handler\n");
@@ -402,7 +402,7 @@ usb_event_thread(void *arg)
 	usb_discover(sc);
 	if (sc->sc_bus->lock)
 		mutex_exit(sc->sc_bus->lock);
-	config_pending_decr();
+	config_pending_decr(sc->sc_bus->usbctl);
 
 	if (sc->sc_bus->lock)
 		mutex_enter(sc->sc_bus->lock);

Index: src/sys/kern/subr_autoconf.c
diff -u src/sys/kern/subr_autoconf.c:1.227 src/sys/kern/subr_autoconf.c:1.228
--- src/sys/kern/subr_autoconf.c:1.227	Fri Jun 28 11:33:40 2013
+++ src/sys/kern/subr_autoconf.c	Sat Oct 12 12:49:01 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_autoconf.c,v 1.227 2013/06/28 15:33:40 christos Exp $ */
+/* $NetBSD: subr_autoconf.c,v 1.228 2013/10/12 16:49:01 christos Exp $ */
 
 /*
  * Copyright (c) 1996, 2000 Christopher G. Demetriou
@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.227 2013/06/28 15:33:40 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.228 2013/10/12 16:49:01 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -436,8 +436,8 @@ config_interrupts_thread(void *cookie)
 	while ((dc = TAILQ_FIRST(&interrupt_config_queue)) != NULL) {
 		TAILQ_REMOVE(&interrupt_config_queue, dc, dc_queue);
 		(*dc->dc_func)(dc->dc_dev);
+		config_pending_decr(dc->dc_dev);
 		kmem_free(dc, sizeof(*dc));
-		config_pending_decr();
 	}
 	kthread_exit(0);
 }
@@ -1906,7 +1906,7 @@ config_defer(device_t dev, void (*func)(
 	dc->dc_dev = dev;
 	dc->dc_func = func;
 	TAILQ_INSERT_TAIL(&deferred_config_queue, dc, dc_queue);
-	config_pending_incr();
+	config_pending_incr(dev);
 }
 
 /*
@@ -1940,7 +1940,7 @@ config_interrupts(device_t dev, void (*f
 	dc->dc_dev = dev;
 	dc->dc_func = func;
 	TAILQ_INSERT_TAIL(&interrupt_config_queue, dc, dc_queue);
-	config_pending_incr();
+	config_pending_incr(dev);
 }
 
 /*
@@ -1990,8 +1990,8 @@ config_process_deferred(struct deferred_
 		if (parent == NULL || dc->dc_dev->dv_parent == parent) {
 			TAILQ_REMOVE(queue, dc, dc_queue);
 			(*dc->dc_func)(dc->dc_dev);
+			config_pending_decr(dc->dc_dev);
 			kmem_free(dc, sizeof(*dc));
-			config_pending_decr();
 		}
 	}
 }
@@ -2000,16 +2000,19 @@ config_process_deferred(struct deferred_
  * Manipulate the config_pending semaphore.
  */
 void
-config_pending_incr(void)
+config_pending_incr(device_t dev)
 {
 
 	mutex_enter(&config_misc_lock);
 	config_pending++;
+#ifdef DEBUG_AUTOCONF
+	printf("%s: %s %d\n", __func__, device_xname(dev), config_pending);
+#endif
 	mutex_exit(&config_misc_lock);
 }
 
 void
-config_pending_decr(void)
+config_pending_decr(device_t dev)
 {
 
 #ifdef DIAGNOSTIC
@@ -2018,6 +2021,9 @@ config_pending_decr(void)
 #endif
 	mutex_enter(&config_misc_lock);
 	config_pending--;
+#ifdef DEBUG_AUTOCONF
+	printf("%s: %s %d\n", __func__, device_xname(dev), config_pending);
+#endif
 	if (config_pending == 0)
 		cv_broadcast(&config_misc_cv);
 	mutex_exit(&config_misc_lock);

Index: src/sys/sys/device.h
diff -u src/sys/sys/device.h:1.143 src/sys/sys/device.h:1.144
--- src/sys/sys/device.h:1.143	Sat Oct 27 13:18:40 2012
+++ src/sys/sys/device.h	Sat Oct 12 12:49:01 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: device.h,v 1.143 2012/10/27 17:18:40 chs Exp $ */
+/* $NetBSD: device.h,v 1.144 2013/10/12 16:49:01 christos Exp $ */
 
 /*
  * Copyright (c) 1996, 2000 Christopher G. Demetriou
@@ -469,8 +469,8 @@ void	config_defer(device_t, void (*)(dev
 void	config_deferred(device_t);
 void	config_interrupts(device_t, void (*)(device_t));
 void	config_mountroot(device_t, void (*)(device_t));
-void	config_pending_incr(void);
-void	config_pending_decr(void);
+void	config_pending_incr(device_t);
+void	config_pending_decr(device_t);
 void	config_create_interruptthreads(void);
 void	config_create_mountrootthreads(void);
 

Reply via email to