On Sat, Apr 25, 2015 at 03:41:46PM +0800, Paul Goyette wrote: > A quick scan shows that there are about 125-130 sources files which > attempt to register with sysmon_{pswitch,wdog,envsys}_register.
Since this is only about early access to the register functions, can't we just add a static boolean for each of sysmon_envsys_init, sysmon_wdog_init and sysmon_power_init, and change the functions to just ignore multiple calls? Something like: void sysmon_wdog_init(void) { static bool passed = false; if (passed) return; passed = true; mutex_init(&sysmon_wdog_list_mtx, MUTEX_DEFAULT, IPL_NONE); mutex_init(&sysmon_wdog_mtx, MUTEX_DEFAULT, IPL_SOFTCLOCK); ... And then add sysmon_wdog_init() calls to the *_register() functions? Martin