From: Jork Loeser <[email protected]> Sent: Wednesday, May 20, 2026 
10:16 AM
> 
> On Wed, 20 May 2026, Arnd Bergmann wrote:
> 
> > From: Arnd Bergmann <[email protected]>
> >
> > When the vmbus driver is not part of the kernel, the mvhv_root
> > driver now fails to link:
> >
> > ERROR: modpost: "hv_vmbus_exists" [drivers/hv/mshv_root.ko] undefined!
> >
> > Avoid this by adding an explicit Kconfig dependency. Note that
> > stubbing out the hv_vmbus_exists() based on configuration would
> > also work for some cases, but not with MSHV_ROOT=y and HYPERV_VMBUS=m.
> >
> > Fixes: f1a9e67c1138 ("mshv: limit SynIC management to MSHV-owned resources")
> > Signed-off-by: Arnd Bergmann <[email protected]>
> > ---
> > drivers/hv/Kconfig | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> > index 52af086fdeb2..21193b571a80 100644
> > --- a/drivers/hv/Kconfig
> > +++ b/drivers/hv/Kconfig
> > @@ -75,6 +75,7 @@ config MSHV_ROOT
> >     # e.g. When withdrawing memory, the hypervisor gives back 4k pages in
> >     # no particular order, making it impossible to reassemble larger pages
> >     depends on PAGE_SIZE_4KB
> > +   depends on HYPERV_VMBUS
> >     select EVENTFD
> >     select VIRT_XFER_TO_GUEST_WORK
> >     select HMM_MIRROR
> > --
> > 2.39.5
> >
> 
> Yes, this is the right short-term fix. We will need to solve the root case
> (no VMBUS required) with a separate SYNIC driver abstraction.
> 
> Reviewed-by: Jork Loeser <[email protected]>
> 

I have what I think is a better way to fix this. It preserves the
ability to build MSHV without VMBus, while also guaranteeing
that VMBus loads first when present. And it is relatively simple --
hv_vmbus_exists() does not need to be moved out of the
VMBus module. Later today I'll post a separate patch for
consideration.

The separate SynIC driver abstraction can still come later
and improve things further.

Michael

Reply via email to