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>
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;
* is being removed
*/
ret = mousevsc_on_device_remove(dev);
-
if (ret != 0) {
DPRINT_ERR(INPUTVSC_DRV,
"unable to remove vsc device (ret %d)", ret);