Message ID | 2b043325-14c0-4e63-ae9c-0d685d96fd98@xs4all.nl (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: cec: cec-adap: always cancel work in cec_transmit_msg_fh | expand |
diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c index 559a172ebc6cb..6fc7de744ee9a 100644 --- a/drivers/media/cec/core/cec-adap.c +++ b/drivers/media/cec/core/cec-adap.c @@ -936,8 +936,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg, */ mutex_unlock(&adap->lock); wait_for_completion_killable(&data->c); - if (!data->completed) - cancel_delayed_work_sync(&data->work); + cancel_delayed_work_sync(&data->work); mutex_lock(&adap->lock); /* Cancel the transmit if it was interrupted */
Do not check for !data->completed, just always call cancel_delayed_work_sync(). This fixes a small race condition. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Fixes: 490d84f6d73c ("media: cec: forgot to cancel delayed work") Reported-by: Yang, Chenyuan <cy54@illinois.edu> --- drivers/media/cec/core/cec-adap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)