Re: [PATCH 1/1] Drivers: hv: vmbus: Fail VMBus module init for non-nested root partition
Easwar Hariharan <[email protected]> Tue, 4 Aug 2026 12:39:48 -0700
| Newsgroups | org.kernel.vger.linux-hyperv,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/4/2026 12:05, Michael Kelley wrote: > 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. This seems straightforward: Reviewed-by: Easwar Hariharan <[email protected]>