From: Greg Kroah-Hartman Date: Thu, 25 Aug 2011 23:51:28 +0000 (-0700) Subject: Staging: hv: hv_mouse: fix up remove() function X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=6a180978aea7cb231c60b69b078ec339f40e2faa;p=linux-beck.git Staging: hv: hv_mouse: fix up remove() function 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 Cc: Haiyang Zhang Cc: Hank Janssen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/hv/hv_mouse.c b/drivers/staging/hv/hv_mouse.c index 083f28f7abdd..090736af8dff 100644 --- a/drivers/staging/hv/hv_mouse.c +++ b/drivers/staging/hv/hv_mouse.c @@ -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);