>Of course, I don't understand input-polldev.c, but shouldn't the trivial >patch below fix the problem? Although, most likely I do not really >understand what the problem is ;) > >Oleg. > >the patch assumes INIT can't race with queue, I don't know if this >is true. > >--- drivers/input/input-polldev.c >+++ drivers/input/input-polldev.c >@@ -100,6 +100,7 @@ static void input_close_polled_device(st > struct input_polled_dev *dev = input_get_drvdata(input); > > cancel_delayed_work_sync(&dev->work); >+ INIT_DELAYED_WORK(&dev->work, dev->work->func); > input_polldev_stop_workqueue(); > > if (dev->close) Yes that should fix the problem. This way references to the old workqueue are cleaned up. I proposed similar thing but to the opening phase. Both should work. I'll test this. -Samu -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html