Commit 36092692 authored by K. Y. Srinivasan's avatar K. Y. Srinivasan Committed by Greg Kroah-Hartman

Staging: hv: vmbus_driver cannot be unloaded; cleanup accordingly

The vmbus driver cannot be unloaded; the windows host does not
permit this: A) All guest resources given to the host cannot
be recovered and B) Windows host does not permit reloading the
vmbus_driver without re-booting the guest. Both these issues
are host related. Acknowledge this reality and cleanup the
vmbus driver accordingly. Note that, ideally we will want to handle
the root device through the Hyper-V block driver. In this case
unloading the vmbus driver will not be possible because of the
dependency issues.
Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: default avatarHaiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: default avatarAbhishek Kane <v-abkane@microsoft.com>
Signed-off-by: default avatarHank Janssen <hjanssen@microsoft.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent da548cb3
...@@ -622,30 +622,6 @@ static int vmbus_bus_init(struct pci_dev *pdev) ...@@ -622,30 +622,6 @@ static int vmbus_bus_init(struct pci_dev *pdev)
return ret; return ret;
} }
/*
* vmbus_bus_exit - Terminate the vmbus driver.
*
* This routine is opposite of vmbus_bus_init()
*/
static void vmbus_bus_exit(void)
{
vmbus_release_unattached_channels();
vmbus_disconnect();
on_each_cpu(hv_synic_cleanup, NULL, 1);
hv_cleanup();
bus_unregister(&hv_bus.bus);
free_irq(hv_pci_dev->irq, hv_pci_dev);
tasklet_kill(&hv_bus.msg_dpc);
tasklet_kill(&hv_bus.event_dpc);
}
/** /**
* vmbus_child_driver_register() - Register a vmbus's child driver * vmbus_child_driver_register() - Register a vmbus's child driver
* @drv: Pointer to driver structure you want to register * @drv: Pointer to driver structure you want to register
...@@ -814,17 +790,9 @@ static int __init hv_pci_init(void) ...@@ -814,17 +790,9 @@ static int __init hv_pci_init(void)
return pci_register_driver(&hv_bus_driver); return pci_register_driver(&hv_bus_driver);
} }
static void __exit hv_pci_exit(void)
{
vmbus_bus_exit();
pci_unregister_driver(&hv_bus_driver);
}
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_VERSION(HV_DRV_VERSION); MODULE_VERSION(HV_DRV_VERSION);
module_param(vmbus_loglevel, int, S_IRUGO|S_IWUSR); module_param(vmbus_loglevel, int, S_IRUGO|S_IWUSR);
module_init(hv_pci_init); module_init(hv_pci_init);
module_exit(hv_pci_exit);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment