diff options
author | Andrew Morton <akpm@osdl.org> | 2006-07-15 01:17:38 -0400 |
---|---|---|
committer | Dmitry Torokhov <dtor@insightbb.com> | 2006-07-15 01:17:38 -0400 |
commit | a2b2ed2ce20ae6c335a27ae5bf8580f385014e70 (patch) | |
tree | ca0ba68a0dd8dfc1e737cc41ca686d91e269aa0a /drivers | |
parent | b53174fb5a0e47a19e10b8ef74ab0c12a19f92dc (diff) | |
download | op-kernel-dev-a2b2ed2ce20ae6c335a27ae5bf8580f385014e70.zip op-kernel-dev-a2b2ed2ce20ae6c335a27ae5bf8580f385014e70.tar.gz |
Input: fix list iteration in input_release_device()
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/input/input.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c index e209139..9c98b6d 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -236,10 +236,12 @@ EXPORT_SYMBOL(input_grab_device); void input_release_device(struct input_handle *handle) { - if (handle->dev->grab == handle) { - handle->dev->grab = NULL; + struct input_dev *dev = handle->dev; + + if (dev->grab == handle) { + dev->grab = NULL; - list_for_each_entry(handle, &handle->dev->h_list, d_node) + list_for_each_entry(handle, &dev->h_list, d_node) if (handle->handler->start) handle->handler->start(handle); } |