Staging: hv: hv_mouse: fix up remove() function
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 25 Aug 2011 23:51:28 +0000 (16:51 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 25 Aug 2011 23:51:28 +0000 (16:51 -0700)
This function obviously never worked, it was a cut-and-paste from the
probe() function.  Rewrite it to do what it is supposed to do at least
in theory.  As to if it works yet, well, it's not worse than it was
before, so this can't hurt.

Cc: K. Y. Srinivasan <kys@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/hv/hv_mouse.c

index 083f28f7abdd79e8517b0de4219beaf788969814..090736af8dff087b93621bda04f27fdd93019fb2 100644 (file)
@@ -847,15 +847,10 @@ static int mousevsc_probe(struct hv_device *dev)
 
 static int mousevsc_remove(struct hv_device *dev)
 {
-       int ret = 0;
-
        struct input_device_context *input_dev_ctx;
+       int ret;
 
-       input_dev_ctx = kmalloc(sizeof(struct input_device_context),
-                               GFP_KERNEL);
-
-       dev_set_drvdata(&dev->device, input_dev_ctx);
-
+       input_dev_ctx = dev_get_drvdata(&dev->device);
        if (input_dev_ctx->connected) {
                hidinput_disconnect(input_dev_ctx->hid_device);
                input_dev_ctx->connected = 0;
@@ -866,7 +861,6 @@ static int mousevsc_remove(struct hv_device *dev)
         * is being removed
         */
        ret = mousevsc_on_device_remove(dev);
-
        if (ret != 0) {
                DPRINT_ERR(INPUTVSC_DRV,
                           "unable to remove vsc device (ret %d)", ret);