diff mbox series

[net] chelsio/chtls: fix deadlock issue

Message ID 20201025193538.31112-1-vinay.yadav@chelsio.com
State New
Headers show
Series [net] chelsio/chtls: fix deadlock issue | expand

Commit Message

Vinay Kumar Yadav Oct. 25, 2020, 7:35 p.m. UTC
In chtls_pass_establish() we hold child socket lock using bh_lock_sock
and we are again trying bh_lock_sock in add_to_reap_list, causing deadlock.
Remove bh_lock_sock in add_to_reap_list() as lock is already held.

Fixes: cc35c88ae4db ("crypto : chtls - CPL handler definition")
Signed-off-by: Vinay Kumar Yadav <vinay.yadav@chelsio.com>
---
 drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Jakub Kicinski Oct. 27, 2020, 11:51 p.m. UTC | #1
On Mon, 26 Oct 2020 01:05:39 +0530 Vinay Kumar Yadav wrote:
> In chtls_pass_establish() we hold child socket lock using bh_lock_sock
> and we are again trying bh_lock_sock in add_to_reap_list, causing deadlock.
> Remove bh_lock_sock in add_to_reap_list() as lock is already held.
> 
> Fixes: cc35c88ae4db ("crypto : chtls - CPL handler definition")
> Signed-off-by: Vinay Kumar Yadav <vinay.yadav@chelsio.com>

Applied.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
index d128fc860c6f..24154816d1d1 100644
--- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
+++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
@@ -1512,7 +1512,6 @@  static void add_to_reap_list(struct sock *sk)
 	struct chtls_sock *csk = sk->sk_user_data;
 
 	local_bh_disable();
-	bh_lock_sock(sk);
 	release_tcp_port(sk); /* release the port immediately */
 
 	spin_lock(&reap_list_lock);
@@ -1521,7 +1520,6 @@  static void add_to_reap_list(struct sock *sk)
 	if (!csk->passive_reap_next)
 		schedule_work(&reap_task);
 	spin_unlock(&reap_list_lock);
-	bh_unlock_sock(sk);
 	local_bh_enable();
 }