Input: fix list iteration in input_release_device()

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
Andrew Morton 2006-07-15 01:17:38 -04:00 committed by Dmitry Torokhov
parent b53174fb5a
commit a2b2ed2ce2

View File

@ -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;
list_for_each_entry(handle, &handle->dev->h_list, d_node)
if (dev->grab == handle) {
dev->grab = NULL;
list_for_each_entry(handle, &dev->h_list, d_node)
if (handle->handler->start)
handle->handler->start(handle);
}