[PATCH 1/1] Drivers: hv: vmbus: Fail VMBus module init for non-nested root partition

Michael Kelley <[email protected]> Tue, 4 Aug 2026 12:05:17 -0700
Newsgroups org.kernel.vger.linux-hyperv,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
The VMBus module should not be loaded when Linux is running directly
in the root partition and root is not nested in another VM. Current
code checks this condition and skips VMBus module initialization, which
works. But it returns 0 as the result, so Linux thinks the module has
successfully loaded. Later, if the module were to be unloaded, the
VMBus module unload code tries to clean up things that were never
initialized, resulting in memory faults and a panic.

Fix this by having VMBus module initialization return -ENODEV for this
case. The module is then not loaded, and the unload path can never run.

Reported-by: Sashiko <[email protected]>
Closes: https://lore.kernel.org/linux-hyperv/[email protected]/
Fixes: 7e279d78664aa ("Drivers: hv: vmbus: skip VMBus initialization if Linux is root")
Signed-off-by: Michael Kelley <[email protected]>
---
 drivers/hv/vmbus_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index e19ec73b0187..849d7e1a7320 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -2976,7 +2976,7 @@ static int __init hv_acpi_init(void)
 		return -ENODEV;
 
 	if (hv_root_partition() && !hv_nested)
-		return 0;
+		return -ENODEV;
 
 	/*
 	 * Get ACPI resources first.
-- 
2.25.1