aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/input.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2006-07-15 01:17:38 -0400
committerDmitry Torokhov <dtor@insightbb.com>2006-07-15 01:17:38 -0400
commita2b2ed2ce20ae6c335a27ae5bf8580f385014e70 (patch)
treeca0ba68a0dd8dfc1e737cc41ca686d91e269aa0a /drivers/input/input.c
parentb53174fb5a0e47a19e10b8ef74ab0c12a19f92dc (diff)
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/input/input.c')
-rw-r--r--drivers/input/input.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c
index e20913942927..9c98b6d6848b 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -236,10 +236,12 @@ EXPORT_SYMBOL(input_grab_device);
236 236
237void input_release_device(struct input_handle *handle) 237void input_release_device(struct input_handle *handle)
238{ 238{
239 if (handle->dev->grab == handle) { 239 struct input_dev *dev = handle->dev;
240 handle->dev->grab = NULL; 240
241 if (dev->grab == handle) {
242 dev->grab = NULL;
241 243
242 list_for_each_entry(handle, &handle->dev->h_list, d_node) 244 list_for_each_entry(handle, &dev->h_list, d_node)
243 if (handle->handler->start) 245 if (handle->handler->start)
244 handle->handler->start(handle); 246 handle->handler->start(handle);
245 } 247 }