When nfc_register_device fails in nci_register_device,
destroy_workqueue() shouled be called to destroy ndev->tx_wq.

Fixes: 3c1c0f5dc80b ("NFC: NCI: Fix nci_register_device init sequence")
Reported-by: Hulk Robot <hul...@huawei.com>
Signed-off-by: Wang Hai <wangha...@huawei.com>
---
 net/nfc/nci/core.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
index 7cd524884304..78ea8c94dcba 100644
--- a/net/nfc/nci/core.c
+++ b/net/nfc/nci/core.c
@@ -1228,10 +1228,13 @@ int nci_register_device(struct nci_dev *ndev)
 
        rc = nfc_register_device(ndev->nfc_dev);
        if (rc)
-               goto destroy_rx_wq_exit;
+               goto destroy_tx_wq_exit;
 
        goto exit;
 
+destroy_tx_wq_exit:
+       destroy_workqueue(ndev->tx_wq);
+
 destroy_rx_wq_exit:
        destroy_workqueue(ndev->rx_wq);
 
-- 
2.17.1

Reply via email to