diff --git a/drivers/hid/hid-lg.c b/drivers/hid/hid-lg.c index 3f01da695d5e11e527e95f858ba3e118f88dd3b1..d5022b3130d0b40a4c726c1b287745312f94f98e 100644 --- a/drivers/hid/hid-lg.c +++ b/drivers/hid/hid-lg.c @@ -735,8 +735,8 @@ static void lg_remove(struct hid_device *hdev) struct lg_drv_data *drv_data = hid_get_drvdata(hdev); if (drv_data->quirks & LG_FF4) lg4ff_deinit(hdev); - - hid_hw_stop(hdev); + else + hid_hw_stop(hdev); kfree(drv_data); } diff --git a/drivers/hid/hid-lg4ff.c b/drivers/hid/hid-lg4ff.c index 0f8d72694aaaff5b62dd0b2adfb84592cf6e27a7..031b8abd7131d83c5e287bb7e3599d51b857e4e5 100644 --- a/drivers/hid/hid-lg4ff.c +++ b/drivers/hid/hid-lg4ff.c @@ -1213,6 +1213,8 @@ int lg4ff_deinit(struct hid_device *hid) } } #endif + hid_hw_stop(hid); + drv_data->device_props = NULL; kfree(entry); out: