diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-02-26 14:41:00 +1100 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-02-26 14:41:00 +1100 |
commit | 874f2f997dbe041a6c6e509dae8656ed9022d65d (patch) | |
tree | 61898165882041ef7f9beaf2ef6663a1a4d3c29a /drivers/input/input-polldev.c | |
parent | 071c06cb570d38efe23a124e885f2f3e643a9206 (diff) | |
parent | 6ebdc661b608671e9ca572af8bb42d58108cc008 (diff) |
Merge commit 'origin/master' into next
Manual merge of:
drivers/char/hvc_console.c
drivers/char/hvc_console.h
Diffstat (limited to 'drivers/input/input-polldev.c')
-rw-r--r-- | drivers/input/input-polldev.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/input/input-polldev.c b/drivers/input/input-polldev.c index aa6713b4a98..291d9393d35 100644 --- a/drivers/input/input-polldev.c +++ b/drivers/input/input-polldev.c @@ -100,6 +100,12 @@ static void input_close_polled_device(struct input_dev *input) struct input_polled_dev *dev = input_get_drvdata(input); cancel_delayed_work_sync(&dev->work); + /* + * Clean up work struct to remove references to the workqueue. + * It may be destroyed by the next call. This causes problems + * at next device open-close in case of poll_interval == 0. + */ + INIT_DELAYED_WORK(&dev->work, dev->work.work.func); input_polldev_stop_workqueue(); if (dev->close) |