>From 450d464332a8dbf5a915c1447af554ca84a163bb Mon Sep 17 00:00:00 2001 From: Pavel Skripkin Date: Tue, 22 Jun 2021 19:00:03 +0300 Subject: [PATCH] nfc: add missing complete() to avoid hung /* .... */ Signed-off-by: Pavel Skripkin --- drivers/nfc/port100.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/nfc/port100.c b/drivers/nfc/port100.c index 8e4d355dc3ae..c8c421af49b7 100644 --- a/drivers/nfc/port100.c +++ b/drivers/nfc/port100.c @@ -805,9 +805,15 @@ static void port100_build_cmd_frame(struct port100 *dev, u8 cmd_code, port100_tx_frame_finish(skb->data); } +struct port100_sync_cmd_response { + struct sk_buff *resp; + struct completion done; +}; + static void port100_send_async_complete(struct port100 *dev) { struct port100_cmd *cmd = dev->cmd; + struct port100_sync_cmd_response *cmd_resp = cmd->complete_cb_context; int status = cmd->status; struct sk_buff *req = cmd->req; @@ -831,6 +837,7 @@ static void port100_send_async_complete(struct port100 *dev) cmd->complete_cb(dev, cmd->complete_cb_context, resp); done: + complete(&cmd_resp->done); kfree(cmd); } @@ -883,11 +890,6 @@ static int port100_send_cmd_async(struct port100 *dev, u8 cmd_code, return rc; } -struct port100_sync_cmd_response { - struct sk_buff *resp; - struct completion done; -}; - static void port100_wq_cmd_complete(struct work_struct *work) { struct port100 *dev = container_of(work, struct port100, -- 2.32.0