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:
parent
b53174fb5a
commit
a2b2ed2ce2
|
@ -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) {
|
struct input_dev *dev = handle->dev;
|
||||||
handle->dev->grab = NULL;
|
|
||||||
|
|
||||||
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)
|
if (handle->handler->start)
|
||||||
handle->handler->start(handle);
|
handle->handler->start(handle);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue