Currently, the CMCI handler checks the cold variable to determine whether it can schedule a task. The task queue is setup as part of the mca_createtq() function, which is run at startup through the SYSINIT facility with SI_SUB_CONFIGURE and SI_ORDER_ANY.
However, cold is set to 0 by configure_final(), which is also run with SI_SUB_CONFIGURE and SI_ORDER_ANY. Therefore, it appears to be non-deterministic whether the cold variable will be set to 0 before the mca_createtq() function runs.
There are several possible fixes; this change proposes to change the mca_createq() order from SI_ORDER_ANY to SI_ORDER_MIDDLE to ensure it runs before cold is set to 0.