On Thu, May 21, 2026, at 18:49, Michael Kelley wrote: > > Existing code ensures that the VMBus driver loads first if it is > built-in. The VMBus driver uses subsys_initcall(), which is > initcall level 4. The MSHV root driver uses module_init(), which > becomes device_init() when built-in, and device_init() is > initcall level 6. > > Reported-by: Arnd Bergmann <[email protected]> > Closes: https://lore.kernel.org/all/[email protected]/ > Signed-off-by: Michael Kelley <[email protected]>
Looks good to me, thanks for fixing it! Acked-by: Arnd Bergmann <[email protected]> > /* > * VMBus owns SIMP/SIEFP/SCONTROL when it is active. > * See hv_hyp_synic_enable_regs() for that initialization. > */ > - bool vmbus_active = hv_vmbus_exists(); > +#if IS_ENABLED(CONFIG_HYPERV_VMBUS) > + vmbus_active = hv_vmbus_exists(); > +#endif I would usually write this as if (IS_ENABLED(CONFIG_HYPERV_VMBUS)) vmbus_active = hv_vmbus_exists(); for readability, since the hv_vmbus_exists() declarations is still visible and the IS_ENABLED() check avoids the link failure. ARnd

