--- x/drivers/hid/hid-corsair.c +++ y/drivers/hid/hid-corsair.c @@ -524,6 +524,7 @@ static void k90_cleanup_backlight(struct if (drvdata->backlight) { drvdata->backlight->removed = true; + disable_work(&drvdata->backlight->work); cancel_work_sync(&drvdata->backlight->work); led_classdev_unregister(&drvdata->backlight->cdev); kfree(drvdata->backlight->cdev.name); @@ -540,6 +541,7 @@ static void k90_cleanup_macro_functions( sysfs_remove_group(&dev->dev.kobj, &k90_attr_group); k90->record_led.removed = true; + disable_work(&k90->record_led.work); cancel_work_sync(&k90->record_led.work); led_classdev_unregister(&k90->record_led.cdev); kfree(k90->record_led.cdev.name);