Skip to content

Commit

Permalink
Staging: hv: mousevsc_drv: Cleanup mousevsc_drv_exit() function
Browse files Browse the repository at this point in the history
To conform to the Linux device model, the device should persist even
when there is no driver bound to it. Cleanup the mousevsc_drv_exit() routine
keeping this in mind.

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 17, 2011
1 parent 2bda87c commit 96053ef
Showing 1 changed file with 1 addition and 32 deletions.
33 changes: 1 addition & 32 deletions drivers/staging/hv/hv_mouse.c
Original file line number Diff line number Diff line change
Expand Up @@ -915,13 +915,6 @@ static void reportdesc_callback(struct hv_device *dev, void *packet, u32 len)
kfree(hid_dev);
}

static int mousevsc_drv_exit_cb(struct device *dev, void *data)
{
struct device **curr = (struct device **)data;
*curr = dev;

return 1;
}

static struct hv_driver mousevsc_drv = {
.probe = mousevsc_probe,
Expand All @@ -930,31 +923,7 @@ static struct hv_driver mousevsc_drv = {

static void mousevsc_drv_exit(void)
{
struct hv_driver *drv = &mousevsc_drv;
int ret;

struct device *current_dev = NULL;

while (1) {
current_dev = NULL;

/* Get the device */
ret = driver_for_each_device(&drv->driver, NULL,
(void *)&current_dev,
mousevsc_drv_exit_cb);
if (ret)
printk(KERN_ERR "Can't find mouse device!\n");

if (current_dev == NULL)
break;

/* Initiate removal from the top-down */
device_unregister(current_dev);
}

vmbus_child_driver_unregister(&drv->driver);

return;
vmbus_child_driver_unregister(&mousevsc_drv.driver);
}

static int __init mousevsc_init(void)
Expand Down

0 comments on commit 96053ef

Please sign in to comment.