aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core
diff options
context:
space:
mode:
authorKrishnamraju Eraparaju <krishna2@chelsio.com>2020-02-04 14:42:30 +0530
committerJason Gunthorpe <jgg@mellanox.com>2020-02-11 14:28:00 -0400
commitd219face9059f38ad187bde133451a2a308fdb7c (patch)
tree83aa8a9dbfca1ab683728290fe970ff7ce9b1f23 /drivers/infiniband/core
parentIB/mlx5: Return failure when rts2rts_qp_counters_set_id is not supported (diff)
downloadlinux-dev-d219face9059f38ad187bde133451a2a308fdb7c.tar.xz
linux-dev-d219face9059f38ad187bde133451a2a308fdb7c.zip
RDMA/iw_cxgb4: initiate CLOSE when entering TERM
As per draft-hilland-iwarp-verbs-v1.0, sec 6.2.3, always initiate a CLOSE when entering into TERM state. In c4iw_modify_qp(), disconnect operation should only be performed when the modify_qp call is invoked from ib_core. And all other internal modify_qp calls(invoked within iw_cxgb4) that needs 'disconnect' should call c4iw_ep_disconnect() explicitly after modify_qp. Otherwise, deadlocks like below can occur: Call Trace: schedule+0x2f/0xa0 schedule_preempt_disabled+0xa/0x10 __mutex_lock.isra.5+0x2d0/0x4a0 c4iw_ep_disconnect+0x39/0x430 => tries to reacquire ep lock again c4iw_modify_qp+0x468/0x10d0 rx_data+0x218/0x570 => acquires ep lock process_work+0x5f/0x70 process_one_work+0x1a7/0x3b0 worker_thread+0x30/0x390 kthread+0x112/0x130 ret_from_fork+0x35/0x40 Fixes: d2c33370ae73 ("RDMA/iw_cxgb4: Always disconnect when QP is transitioning to TERMINATE state") Link: https://lore.kernel.org/r/20200204091230.7210-1-krishna2@chelsio.com Signed-off-by: Krishnamraju Eraparaju <krishna2@chelsio.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/core')
0 files changed, 0 insertions, 0 deletions