diff --git a/sys/dev/aac/aac.c b/sys/dev/aac/aac.c --- a/sys/dev/aac/aac.c +++ b/sys/dev/aac/aac.c @@ -328,12 +328,6 @@ &sc->aifthread, 0, 0, "aac%daif", unit)) panic("Could not create AIF thread"); - /* Register the shutdown method to only be called post-dump */ - if ((sc->eh = EVENTHANDLER_REGISTER(shutdown_final, aac_shutdown, - sc->aac_dev, SHUTDOWN_PRI_DEFAULT)) == NULL) - device_printf(sc->aac_dev, - "shutdown event registration failed\n"); - /* Register with CAM for the non-DASD devices */ if ((sc->flags & AAC_FLAGS_ENABLE_CAM) != 0) { TAILQ_INIT(&sc->aac_sim_tqh); @@ -701,9 +695,7 @@ } if ((error = aac_shutdown(dev))) - return(error); - - EVENTHANDLER_DEREGISTER(shutdown_final, sc->eh); + return (error); aac_free(sc); diff --git a/sys/dev/aac/aac_pci.c b/sys/dev/aac/aac_pci.c --- a/sys/dev/aac/aac_pci.c +++ b/sys/dev/aac/aac_pci.c @@ -69,6 +69,7 @@ DEVMETHOD(device_probe, aac_pci_probe), DEVMETHOD(device_attach, aac_pci_attach), DEVMETHOD(device_detach, aac_detach), + DEVMETHOD(device_shutdown, aac_shutdown), DEVMETHOD(device_suspend, aac_suspend), DEVMETHOD(device_resume, aac_resume), diff --git a/sys/dev/aacraid/aacraid.c b/sys/dev/aacraid/aacraid.c --- a/sys/dev/aacraid/aacraid.c +++ b/sys/dev/aacraid/aacraid.c @@ -306,12 +306,6 @@ &sc->aifthread, 0, 0, "aacraid%daif", unit)) panic("Could not create AIF thread"); - /* Register the shutdown method to only be called post-dump */ - if ((sc->eh = EVENTHANDLER_REGISTER(shutdown_final, aacraid_shutdown, - sc->aac_dev, SHUTDOWN_PRI_DEFAULT)) == NULL) - device_printf(sc->aac_dev, - "shutdown event registration failed\n"); - /* Find containers */ mtx_lock(&sc->aac_io_lock); aac_alloc_sync_fib(sc, &fib); @@ -765,9 +759,7 @@ panic("Cannot shutdown AIF thread"); if ((error = aacraid_shutdown(dev))) - return(error); - - EVENTHANDLER_DEREGISTER(shutdown_final, sc->eh); + return (error); aacraid_free(sc); diff --git a/sys/dev/aacraid/aacraid_pci.c b/sys/dev/aacraid/aacraid_pci.c --- a/sys/dev/aacraid/aacraid_pci.c +++ b/sys/dev/aacraid/aacraid_pci.c @@ -67,6 +67,7 @@ DEVMETHOD(device_probe, aacraid_pci_probe), DEVMETHOD(device_attach, aacraid_pci_attach), DEVMETHOD(device_detach, aacraid_detach), + DEVMETHOD(device_shutdown, aacraid_shutdown), DEVMETHOD(device_suspend, aacraid_suspend), DEVMETHOD(device_resume, aacraid_resume), diff --git a/sys/dev/aacraid/aacraid_var.h b/sys/dev/aacraid/aacraid_var.h --- a/sys/dev/aacraid/aacraid_var.h +++ b/sys/dev/aacraid/aacraid_var.h @@ -336,7 +336,6 @@ int aac_irq_rid[AAC_MAX_MSIX]; void *aac_intr[AAC_MAX_MSIX]; /* interrupt handle */ struct aac_msix_ctx aac_msix[AAC_MAX_MSIX]; /* context */ - eventhandler_tag eh; struct callout aac_daemontime; /* clock daemon callout */ /* controller features, limits and status */