firmware: turris-mox-rwtm: Do not complete if there are no waiters

[ Upstream commit 0bafb172b1 ]

Do not complete the "command done" completion if there are no waiters.
This can happen if a wait_for_completion() timed out or was interrupted.

Fixes: 389711b374 ("firmware: Add Turris Mox rWTM firmware driver")
Signed-off-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Marek Behún 2024-07-15 13:59:10 +02:00 committed by Greg Kroah-Hartman
parent 9312a63da7
commit 2f4f8d171e

View File

@ -2,7 +2,7 @@
/* /*
* Turris Mox rWTM firmware driver * Turris Mox rWTM firmware driver
* *
* Copyright (C) 2019 Marek Behún <kabel@kernel.org> * Copyright (C) 2019, 2024 Marek Behún <kabel@kernel.org>
*/ */
#include <linux/armada-37xx-rwtm-mailbox.h> #include <linux/armada-37xx-rwtm-mailbox.h>
@ -174,6 +174,9 @@ static void mox_rwtm_rx_callback(struct mbox_client *cl, void *data)
struct mox_rwtm *rwtm = dev_get_drvdata(cl->dev); struct mox_rwtm *rwtm = dev_get_drvdata(cl->dev);
struct armada_37xx_rwtm_rx_msg *msg = data; struct armada_37xx_rwtm_rx_msg *msg = data;
if (completion_done(&rwtm->cmd_done))
return;
rwtm->reply = *msg; rwtm->reply = *msg;
complete(&rwtm->cmd_done); complete(&rwtm->cmd_done);
} }