forked from luck/tmp_suning_uos_patched
Input: atkbd - cancel delayed work before freeing its structure
Pointed out by Oleg Nesterov. Since delayed work is used here, use of flush_scheduled_work() is not sufficient in atkbd_disconnect(). It does not wait for scheduled delayed work to finish. This patch prevents delayed work to be processed after freeing atkbd structure (used struct delayed_work is part of atkbd) by cancelling this delayed work. Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
a8215b81cc
commit
d6d79a785d
|
@ -824,7 +824,7 @@ static void atkbd_disconnect(struct serio *serio)
|
|||
atkbd_disable(atkbd);
|
||||
|
||||
/* make sure we don't have a command in flight */
|
||||
flush_scheduled_work();
|
||||
cancel_delayed_work_sync(&atkbd->event_work);
|
||||
|
||||
sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group);
|
||||
input_unregister_device(atkbd->dev);
|
||||
|
|
Loading…
Reference in New Issue
Block a user