From: K. Y. Srinivasan Date: Fri, 29 Apr 2011 20:44:59 +0000 (-0700) Subject: Staging: hv: vmbus_driver cannot be unloaded; cleanup accordingly X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=360926923b184fddf4e570b7f970b33e4e52af40;p=linux-beck.git 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: K. Y. Srinivasan Signed-off-by: Haiyang Zhang Signed-off-by: Abhishek Kane Signed-off-by: Hank Janssen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index bf124a7e9dc3..d597dd4dd846 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -622,30 +622,6 @@ cleanup: 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 * @drv: Pointer to driver structure you want to register @@ -814,17 +790,9 @@ static int __init hv_pci_init(void) 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_VERSION(HV_DRV_VERSION); module_param(vmbus_loglevel, int, S_IRUGO|S_IWUSR); module_init(hv_pci_init); -module_exit(hv_pci_exit);