PCI: hv: Add check for hyperv_initialized in init_hv_pci_drv()
authorHaiyang Zhang <haiyangz@microsoft.com>
Tue, 25 May 2021 23:17:33 +0000 (16:17 -0700)
committerWei Liu <wei.liu@kernel.org>
Sun, 20 Jun 2021 23:08:56 +0000 (23:08 +0000)
Add check for hv_is_hyperv_initialized() at the top of
init_hv_pci_drv(), so if the pci-hyperv driver is force-loaded on non
Hyper-V platforms, the init_hv_pci_drv() will exit immediately, without
any side effects, like assignments to hvpci_block_ops, etc.

Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Reported-and-tested-by: Mohammad Alqayeem <mohammad.alqyeem@nutanix.com>
Reviewed-by: Wei Liu <wei.liu@kernel.org>
Link: https://lore.kernel.org/r/1621984653-1210-1-git-send-email-haiyangz@microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
drivers/pci/controller/pci-hyperv.c

index 6511648271b23608813cd26b20effd1f35cf4a80..bebe3eeebc4e1abb09092627657bded8d018e203 100644 (file)
@@ -3476,6 +3476,9 @@ static void __exit exit_hv_pci_drv(void)
 
 static int __init init_hv_pci_drv(void)
 {
+       if (!hv_is_hyperv_initialized())
+               return -ENODEV;
+
        /* Set the invalid domain number's bit, so it will not be used */
        set_bit(HVPCI_DOM_INVALID, hvpci_dom_map);