From 52800c9d1564b2c29ffe6d7a4ad627b55526ce97 Mon Sep 17 00:00:00 2001 From: Sascha Wildner Date: Tue, 10 Jul 2012 18:33:44 +0200 Subject: [PATCH] kernel: Add descriptions to the intrhooks that miss them. The description is printed in the "**WARNING** waiting for the following device to finish configuring: ..." messages we occasionally see, from run_interrupt_driven_config_hooks(), most of the times for xpt. Some of them had been accidentally removed in past synchronizations with FreeBSD (mostly by me). --- sys/bus/mmc/mmc.c | 1 + sys/dev/disk/isp/isp_freebsd.c | 1 + sys/dev/raid/aac/aac.c | 1 + sys/dev/raid/amr/amr.c | 1 + sys/dev/raid/mfi/mfi.c | 1 + sys/dev/raid/mps/mps.c | 1 + sys/dev/raid/twe/twe_freebsd.c | 1 + sys/dev/sound/pci/atiixp.c | 1 + sys/dev/sound/pci/hda/hdac.c | 1 + sys/dev/sound/pci/ich.c | 1 + 10 files changed, 10 insertions(+), 0 deletions(-) diff --git a/sys/bus/mmc/mmc.c b/sys/bus/mmc/mmc.c index fdc7294..a9adeb3 100644 --- a/sys/bus/mmc/mmc.c +++ b/sys/bus/mmc/mmc.c @@ -164,6 +164,7 @@ mmc_attach(device_t dev) /* We'll probe and attach our children later, but before / mount */ sc->config_intrhook.ich_func = mmc_delayed_attach; sc->config_intrhook.ich_arg = sc; + sc->config_intrhook.ich_desc = "mmc"; if (config_intrhook_establish(&sc->config_intrhook) != 0) device_printf(dev, "config_intrhook_establish failed\n"); return (0); diff --git a/sys/dev/disk/isp/isp_freebsd.c b/sys/dev/disk/isp/isp_freebsd.c index 1d34355..b0685cf 100644 --- a/sys/dev/disk/isp/isp_freebsd.c +++ b/sys/dev/disk/isp/isp_freebsd.c @@ -190,6 +190,7 @@ isp_attach(ispsoftc_t *isp) isp->isp_osinfo.ehook.ich_func = isp_intr_enable; isp->isp_osinfo.ehook.ich_arg = isp; + isp->isp_osinfo.ehook.ich_desc = "isp"; /* * Haha. Set this first, because if we're loaded as a module isp_intr_enable * will be called right awawy, which will clear isp_osinfo.ehook_active, diff --git a/sys/dev/raid/aac/aac.c b/sys/dev/raid/aac/aac.c index cf3d345..4523e04 100644 --- a/sys/dev/raid/aac/aac.c +++ b/sys/dev/raid/aac/aac.c @@ -295,6 +295,7 @@ aac_attach(struct aac_softc *sc) */ sc->aac_ich.ich_func = aac_startup; sc->aac_ich.ich_arg = sc; + sc->aac_ich.ich_desc = "aac"; if (config_intrhook_establish(&sc->aac_ich) != 0) { device_printf(sc->aac_dev, "can't establish configuration hook\n"); diff --git a/sys/dev/raid/amr/amr.c b/sys/dev/raid/amr/amr.c index 51752b3..6e0eb2a 100644 --- a/sys/dev/raid/amr/amr.c +++ b/sys/dev/raid/amr/amr.c @@ -287,6 +287,7 @@ amr_attach(struct amr_softc *sc) bzero(&sc->amr_ich, sizeof(struct intr_config_hook)); sc->amr_ich.ich_func = amr_startup; sc->amr_ich.ich_arg = sc; + sc->amr_ich.ich_desc = "amr"; if (config_intrhook_establish(&sc->amr_ich) != 0) { device_printf(sc->amr_dev, "can't establish configuration hook\n"); return(ENOMEM); diff --git a/sys/dev/raid/mfi/mfi.c b/sys/dev/raid/mfi/mfi.c index ad3bbaa..50ca40e 100644 --- a/sys/dev/raid/mfi/mfi.c +++ b/sys/dev/raid/mfi/mfi.c @@ -697,6 +697,7 @@ mfi_attach(struct mfi_softc *sc) /* Register a config hook to probe the bus for arrays */ sc->mfi_ich.ich_func = mfi_startup; sc->mfi_ich.ich_arg = sc; + sc->mfi_ich.ich_desc = "mfi"; if (config_intrhook_establish(&sc->mfi_ich) != 0) { device_printf(sc->mfi_dev, "Cannot establish configuration " "hook\n"); diff --git a/sys/dev/raid/mps/mps.c b/sys/dev/raid/mps/mps.c index 8a3686e..c74b081 100644 --- a/sys/dev/raid/mps/mps.c +++ b/sys/dev/raid/mps/mps.c @@ -1195,6 +1195,7 @@ mps_attach(struct mps_softc *sc) */ sc->mps_ich.ich_func = mps_startup; sc->mps_ich.ich_arg = sc; + sc->mps_ich.ich_desc = "mps"; if (config_intrhook_establish(&sc->mps_ich) != 0) { mps_dprint(sc, MPS_FAULT, "Cannot establish MPS config hook\n"); error = EINVAL; diff --git a/sys/dev/raid/twe/twe_freebsd.c b/sys/dev/raid/twe/twe_freebsd.c index fa6bc11..bea43f4 100644 --- a/sys/dev/raid/twe/twe_freebsd.c +++ b/sys/dev/raid/twe/twe_freebsd.c @@ -363,6 +363,7 @@ twe_attach(device_t dev) */ sc->twe_ich.ich_func = twe_intrhook; sc->twe_ich.ich_arg = sc; + sc->twe_ich.ich_desc = "twe"; if (config_intrhook_establish(&sc->twe_ich) != 0) { twe_printf(sc, "can't establish configuration hook\n"); twe_free(sc); diff --git a/sys/dev/sound/pci/atiixp.c b/sys/dev/sound/pci/atiixp.c index a698463..b59ff86 100644 --- a/sys/dev/sound/pci/atiixp.c +++ b/sys/dev/sound/pci/atiixp.c @@ -1002,6 +1002,7 @@ atiixp_pci_attach(device_t dev) sc->delayed_attach.ich_func = atiixp_chip_post_init; sc->delayed_attach.ich_arg = sc; + sc->delayed_attach.ich_desc = "snd_atiixp"; if (cold == 0 || config_intrhook_establish(&sc->delayed_attach) != 0) { sc->delayed_attach.ich_func = NULL; diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index c1e7beb..92982a5 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -3893,6 +3893,7 @@ hdac_attach(device_t dev) /* Defer remaining of initialization until interrupts are enabled */ sc->intrhook.ich_func = hdac_attach2; sc->intrhook.ich_arg = (void *)sc; + sc->intrhook.ich_desc = "snd_hda"; if (cold == 0 || config_intrhook_establish(&sc->intrhook) != 0) { sc->intrhook.ich_func = NULL; hdac_attach2((void *)sc); diff --git a/sys/dev/sound/pci/ich.c b/sys/dev/sound/pci/ich.c index a74f85e..32682c3 100644 --- a/sys/dev/sound/pci/ich.c +++ b/sys/dev/sound/pci/ich.c @@ -1107,6 +1107,7 @@ ich_pci_attach(device_t dev) sc->intrhook.ich_func = ich_calibrate; sc->intrhook.ich_arg = sc; + sc->intrhook.ich_desc = "snd_ich"; if (cold == 0 || config_intrhook_establish(&sc->intrhook) != 0) { sc->intrhook.ich_func = NULL; -- 1.7.7.2