git: c11b70191511 - main - geom: Push GEOM sysinit ordering to after devctl
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 26 Mar 2025 14:58:14 UTC
The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=c11b701915116bf512f3d77dfdac7a867f51ca0a commit c11b701915116bf512f3d77dfdac7a867f51ca0a Author: Justin Hibbits <jhibbits@FreeBSD.org> AuthorDate: 2025-03-26 14:43:14 +0000 Commit: Justin Hibbits <jhibbits@FreeBSD.org> CommitDate: 2025-03-26 14:55:24 +0000 geom: Push GEOM sysinit ordering to after devctl GEOM depends on devctl being initialized, as it uses devctl_notify, which assumes that devctl is initialized already. However, if devctl is not initialized yet, the devctl UMA zone is NULL, resulting in a panic. Thus far this has worked seemingly by linker luck that lets devctl sort before GEOM, but this is not guaranteed. Instead, enforce the ordering by pushing GEOM to third place, explicitly ordering it after devctl_init, which is ordered second. Since g_raid wants to initialize after GEOM, push that to fourth place as well. Sponsored by: Juniper Networks, Inc. --- sys/geom/geom.h | 2 +- sys/geom/raid/g_raid.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/geom/geom.h b/sys/geom/geom.h index 0eb6775701fd..dcd6f793f9f7 100644 --- a/sys/geom/geom.h +++ b/sys/geom/geom.h @@ -417,7 +417,7 @@ g_free(void *ptr) static moduledata_t name##_mod = { \ #name, g_modevent, &class \ }; \ - DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_SECOND); + DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_THIRD); int g_is_geom_thread(struct thread *td); diff --git a/sys/geom/raid/g_raid.c b/sys/geom/raid/g_raid.c index 6938491d696c..a483622d14a5 100644 --- a/sys/geom/raid/g_raid.c +++ b/sys/geom/raid/g_raid.c @@ -2571,5 +2571,5 @@ static moduledata_t g_raid_mod = { g_modevent, &g_raid_class }; -DECLARE_MODULE(g_raid, g_raid_mod, SI_SUB_DRIVERS, SI_ORDER_THIRD); +DECLARE_MODULE(g_raid, g_raid_mod, SI_SUB_DRIVERS, SI_ORDER_FOURTH); MODULE_VERSION(geom_raid, 0);