mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
media: pulse8-cec: INIT_DELAYED_WORK was called too late
If earlier in the connect() an error occurred, then pulse8_cec_adap_free
was called by cec_delete_adapter, and that free function tried to
cancel the ping_eeprom_work workqueue, but that workqueue hasn't
been initialized yet, resulting in a kernel warning.
Move the initialization of that workqueue up to where the other
workqueues are initialized.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Fixes: 601282d65b
("media: pulse8-cec: use adap_free callback")
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
bb6d3fb354
commit
34a818882e
1 changed files with 2 additions and 2 deletions
|
@ -840,6 +840,8 @@ static int pulse8_connect(struct serio *serio, struct serio_driver *drv)
|
|||
serio_set_drvdata(serio, pulse8);
|
||||
INIT_WORK(&pulse8->irq_work, pulse8_irq_work_handler);
|
||||
INIT_WORK(&pulse8->tx_work, pulse8_tx_work_handler);
|
||||
INIT_DELAYED_WORK(&pulse8->ping_eeprom_work,
|
||||
pulse8_ping_eeprom_work_handler);
|
||||
mutex_init(&pulse8->lock);
|
||||
spin_lock_init(&pulse8->msg_lock);
|
||||
pulse8->config_pending = false;
|
||||
|
@ -865,8 +867,6 @@ static int pulse8_connect(struct serio *serio, struct serio_driver *drv)
|
|||
pulse8->restoring_config = true;
|
||||
}
|
||||
|
||||
INIT_DELAYED_WORK(&pulse8->ping_eeprom_work,
|
||||
pulse8_ping_eeprom_work_handler);
|
||||
schedule_delayed_work(&pulse8->ping_eeprom_work, PING_PERIOD);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue