Skip to content

Commit

Permalink
Staging: hv: vmbus_driver cannot be unloaded; cleanup accordingly
Browse files Browse the repository at this point in the history
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 <kys@microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed May 3, 2011
1 parent da548cb commit 3609269
Showing 1 changed file with 0 additions and 32 deletions.
32 changes: 0 additions & 32 deletions drivers/staging/hv/vmbus_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -622,30 +622,6 @@ static int vmbus_bus_init(struct pci_dev *pdev)
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
Expand Down Expand Up @@ -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);

0 comments on commit 3609269

Please sign in to comment.