Эх сурвалжийг харах

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 жил өмнө
parent
commit
a2b2ed2ce2

+ 5 - 3
drivers/input/input.c

@@ -236,10 +236,12 @@ EXPORT_SYMBOL(input_grab_device);
 
 
 void input_release_device(struct input_handle *handle)
 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)
 			if (handle->handler->start)
 				handle->handler->start(handle);
 				handle->handler->start(handle);
 	}
 	}