| From 21d8c25e3f4b9052a471ced8f47b531956eb9963 Mon Sep 17 00:00:00 2001 |
| From: Vinay Kumar Yadav <vinay.yadav@chelsio.com> |
| Date: Thu, 15 Apr 2021 13:17:47 +0530 |
| Subject: ch_ktls: tcb close causes tls connection failure |
| |
| From: Vinay Kumar Yadav <vinay.yadav@chelsio.com> |
| |
| commit 21d8c25e3f4b9052a471ced8f47b531956eb9963 upstream. |
| |
| HW doesn't need marking TCB closed. This TCB state change |
| sometimes causes problem to the new connection which gets |
| the same tid. |
| |
| Fixes: 34aba2c45024 ("cxgb4/chcr : Register to tls add and del callback") |
| Signed-off-by: Vinay Kumar Yadav <vinay.yadav@chelsio.com> |
| Signed-off-by: Rohit Maheshwari <rohitm@chelsio.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 19 ---------- |
| 1 file changed, 19 deletions(-) |
| |
| --- a/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c |
| +++ b/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c |
| @@ -355,18 +355,6 @@ static int chcr_set_tcb_field(struct chc |
| } |
| |
| /* |
| - * chcr_ktls_mark_tcb_close: mark tcb state to CLOSE |
| - * @tx_info - driver specific tls info. |
| - * return: NET_TX_OK/NET_XMIT_DROP. |
| - */ |
| -static int chcr_ktls_mark_tcb_close(struct chcr_ktls_info *tx_info) |
| -{ |
| - return chcr_set_tcb_field(tx_info, TCB_T_STATE_W, |
| - TCB_T_STATE_V(TCB_T_STATE_M), |
| - CHCR_TCB_STATE_CLOSED, 1); |
| -} |
| - |
| -/* |
| * chcr_ktls_dev_del: call back for tls_dev_del. |
| * Remove the tid and l2t entry and close the connection. |
| * it per connection basis. |
| @@ -400,8 +388,6 @@ static void chcr_ktls_dev_del(struct net |
| |
| /* clear tid */ |
| if (tx_info->tid != -1) { |
| - /* clear tcb state and then release tid */ |
| - chcr_ktls_mark_tcb_close(tx_info); |
| cxgb4_remove_tid(&tx_info->adap->tids, tx_info->tx_chan, |
| tx_info->tid, tx_info->ip_family); |
| } |
| @@ -579,7 +565,6 @@ static int chcr_ktls_dev_add(struct net_ |
| return 0; |
| |
| free_tid: |
| - chcr_ktls_mark_tcb_close(tx_info); |
| #if IS_ENABLED(CONFIG_IPV6) |
| /* clear clip entry */ |
| if (tx_info->ip_family == AF_INET6) |
| @@ -677,10 +662,6 @@ static int chcr_ktls_cpl_act_open_rpl(st |
| if (tx_info->pending_close) { |
| spin_unlock(&tx_info->lock); |
| if (!status) { |
| - /* it's a late success, tcb status is establised, |
| - * mark it close. |
| - */ |
| - chcr_ktls_mark_tcb_close(tx_info); |
| cxgb4_remove_tid(&tx_info->adap->tids, tx_info->tx_chan, |
| tid, tx_info->ip_family); |
| } |