From patchwork Sat Nov 4 04:06:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Weiguo Li X-Patchwork-Id: 133867 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CDBB543284; Sat, 4 Nov 2023 05:07:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BB88B402F2; Sat, 4 Nov 2023 05:07:17 +0100 (CET) Received: from out203-205-221-236.mail.qq.com (out203-205-221-236.mail.qq.com [203.205.221.236]) by mails.dpdk.org (Postfix) with ESMTP id 71721402D8; Sat, 4 Nov 2023 05:07:15 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1699070828; bh=T7vbi9K+sYehSr3fkN4duv8IVMLWWBG71MVSRrlwRf0=; h=From:To:Cc:Subject:Date; b=rzCozoRm39htWutbzrNpzQAfCk3GoJ55eljPFTj7niQ72jRR06VzX3XJWX61mEn1k CutVyD1P5B3HfDQPxJShBCsXSe5C1BVVxh9sN68MB+tbKEflycVXlXNjDyrE8rROxo 60Bma1Kk+qCFFfRes7Lj1e9rpc1GeIfjDJpfJLf4= Received: from liwg-V5320.. ([36.112.73.58]) by newxmesmtplogicsvrszb1-0.qq.com (NewEsmtp) with SMTP id 1BA99C71; Sat, 04 Nov 2023 12:06:58 +0800 X-QQ-mid: xmsmtpt1699070818tlhrznzm2 Message-ID: X-QQ-XMAILINFO: NTPE1iKZ8oO7cKx6WQCZ2oNgK+76jAdj2PDufr9Mpi1TEb1ZX3AwkfjU+uolf7 6n8hHfjUqD4ZlUDNdPU4ZfxCdb5W45jfhqgUbmrjgE42uPzAvwWuU+38aQyPPimqEjArsdiOKAmP 67apm2W3TppWQh3Xj86yMZqhlVz73FcswzuorjJ3uo8I4GLiMWuHqqzT2ZYTCPyIkbROiw0jVxYc 32L0inIOR4khF6ZDPR9TcMF+6q/vamq/9lkMfPSDmF5AV4npfxJyQn/Ed407eQwQm6DtvVp0SbiC LIRb9SHDNCMcaZEeWZU2PuLDzKXkPDGIbLoNC1OzlF39UKaFrtOu6AbgQP2lOJBqFdHkNezP9+FK FiiAPoAQKJ3fm00BcCz7Ng2hy1hG4LvZhDMV/JVPhTr/n53HFKrY7b6YfSJdLR9Yiz3HvEvPw/tU CYKQXbopl4SOwBDk7xPDtpAszoAviVt+naPDaEZjgSiHUQuFXTrj92eDSXsUXq+tawIFbxY/U82x F9tRzfsmFstg4LbFTlqxNDtOtDzaJBenvN7TsPiatu72KRfDNyB8VfGwUHVWfzAfbmuwcqLeghu3 KdV5BTAgfT4/mWhy5pWqYXE+oqwkcKQWetwiLaEuNC8VVA60wxKIp2pT9XQxQ9x/sUJDM28ozkAW kBG5mIx+1usZABXnIQwzjXgjn0bTUlWO9hkl0WD4xqBXUwCWMsXLjRZvPvyt6tWQrGtVO9N9y9iZ sekPGwAqQ/vjSCWz7DXG04ftdUB3Y1Hfff6NFn01W9REp9pqoonymg6i7xnhJL3/H3GIM8/PswMG XcvxFmOSiOsOoh0DZOJHOI66aburSG3uyEH2VhBjnIFIn4Q3WXWt9XTZGYgjGoLFpxLVkZbNcX1d yBOJjH+ljks5oXT49gI1kpAZwcYMrpoCaVHIMlLa0cNZGtJ+BGeOnKViwQoz41BIjCpMrXK2Hylh koyoBSAXalw47BnjSh6IthKDmfpJ1JPXBHvXhhCfsBsC5NzKyI/Z3QmplIcaiGtauvPiYVTnYT+Z 2jEOJ6a7C6lu4DPhhbIK8oVuWZyPk= X-QQ-XMRINFO: M/715EihBoGSf6IYSX1iLFg= From: Weiguo Li To: ajit.khaparde@broadcom.com, sbhosle@broadcom.com Cc: michael.baucom@broadcom.com, kishore.padmanabha@broadcom.com, venkatkumar.duvvuru@broadcom.com, dev@dpdk.org, stable@dpdk.org, Weiguo Li Subject: [PATCH] net/bnxt: fix deadlock in mgr timer cb Date: Sat, 4 Nov 2023 12:06:58 +0800 X-OQ-MSGID: <20231104040658.2050984-1-liwg06@foxmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The function 'ulp_ha_mgr_timer_cb' acquires a lock on the context entry at the beginning with bnxt_ulp_cntxt_entry_acquire(). This lock is expected to be released by bnxt_ulp_cntxt_entry_release() at the end of the function. However, the second early return statement in the function could potentially bypass the lock release. To fix this issue, add bnxt_ulp_cntxt_entry_release() before the return statement. Fixes: 1993b267dbcb ("net/bnxt: cleanup ULP parser and mapper) CC: stable@dpdk.org Signed-off-by: Weiguo Li Acked-by: Ajit Khaparde --- drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c b/drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c index f3f5bda890..852deef3b4 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c +++ b/drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c @@ -253,6 +253,7 @@ ulp_ha_mgr_timer_cb(void *arg) myclient_cnt = bnxt_ulp_cntxt_num_shared_clients_get(ulp_ctx); if (myclient_cnt == 0) { + bnxt_ulp_cntxt_entry_release(); BNXT_TF_DBG(ERR, "PANIC Client Count is zero kill timer\n."); return;