Browse Source

Input: fix list iteration in input_release_device()

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Andrew Morton 19 years ago
parent
commit
a2b2ed2ce2
1 changed files with 5 additions and 3 deletions
  1. 5 3
      drivers/input/input.c

+ 5 - 3
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);
 	}