Don't schedule the next ping before the current ping is sent, schedule it after. Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> --- drivers/media/usb/pulse8-cec/pulse8-cec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/usb/pulse8-cec/pulse8-cec.c b/drivers/media/usb/pulse8-cec/pulse8-cec.c index d18d1f456576..17fcaf7e558a 100644 --- a/drivers/media/usb/pulse8-cec/pulse8-cec.c +++ b/drivers/media/usb/pulse8-cec/pulse8-cec.c @@ -790,7 +790,6 @@ static void pulse8_ping_eeprom_work_handler(struct work_struct *work) container_of(work, struct pulse8, ping_eeprom_work.work); u8 cmd; - schedule_delayed_work(&pulse8->ping_eeprom_work, PING_PERIOD); mutex_lock(&pulse8->lock); cmd = MSGCODE_PING; pulse8_send_and_wait(pulse8, &cmd, 1, @@ -809,6 +808,7 @@ static void pulse8_ping_eeprom_work_handler(struct work_struct *work) pulse8->config_pending = false; } unlock: + schedule_delayed_work(&pulse8->ping_eeprom_work, PING_PERIOD); mutex_unlock(&pulse8->lock); } -- 2.23.0