summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2013-04-24 19:00:45 +0000
committermav <mav@FreeBSD.org>2013-04-24 19:00:45 +0000
commitdf40a0e7efabf85cc2995e880b5da15ee78b748b (patch)
tree8a7f582a33904f7291a852bfa9f089fb9f846881
parentd90354b0198e919d53ae959bea342067b74d33b8 (diff)
downloadFreeBSD-src-df40a0e7efabf85cc2995e880b5da15ee78b748b.zip
FreeBSD-src-df40a0e7efabf85cc2995e880b5da15ee78b748b.tar.gz
Move hptmv and mpt drivers shutdown a bit later to the SHUTDOWN_PRI_LAST
stage of shutdown_post_sync. That should allow CAM to do final cache flush at the SHUTDOWN_PRI_DEFAULT without using polling magic. MFC after: 3 days
-rw-r--r--sys/dev/hptmv/entry.c6
-rw-r--r--sys/dev/mpt/mpt_pci.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/hptmv/entry.c b/sys/dev/hptmv/entry.c
index 248d655..cdc3e18 100644
--- a/sys/dev/hptmv/entry.c
+++ b/sys/dev/hptmv/entry.c
@@ -2605,9 +2605,11 @@ launch_worker_thread(void)
* hpt_worker_thread needs to be suspended after shutdown sync, when fs sync finished.
*/
#if (__FreeBSD_version < 500043)
- EVENTHANDLER_REGISTER(shutdown_post_sync, shutdown_kproc, hptdaemonproc, SHUTDOWN_PRI_FIRST);
+ EVENTHANDLER_REGISTER(shutdown_post_sync, shutdown_kproc, hptdaemonproc,
+ SHUTDOWN_PRI_LAST);
#else
- EVENTHANDLER_REGISTER(shutdown_post_sync, kproc_shutdown, hptdaemonproc, SHUTDOWN_PRI_FIRST);
+ EVENTHANDLER_REGISTER(shutdown_post_sync, kproc_shutdown, hptdaemonproc,
+ SHUTDOWN_PRI_LAST);
#endif
}
/*
diff --git a/sys/dev/mpt/mpt_pci.c b/sys/dev/mpt/mpt_pci.c
index f1fb018..d6a1d38 100644
--- a/sys/dev/mpt/mpt_pci.c
+++ b/sys/dev/mpt/mpt_pci.c
@@ -563,7 +563,7 @@ mpt_pci_attach(device_t dev)
}
mpt->eh = EVENTHANDLER_REGISTER(shutdown_post_sync, mpt_pci_shutdown,
- dev, SHUTDOWN_PRI_DEFAULT);
+ dev, SHUTDOWN_PRI_LAST);
if (mpt->eh == NULL) {
mpt_prt(mpt, "shutdown event registration failed\n");
OpenPOWER on IntegriCloud