linux_dsm_epyc7002/drivers/infiniband/hw/bnxt_re
Selvin Xavier 3c4b1419c3 RDMA/bnxt_re: Fix system hang when registration with L2 driver fails
Driver doesn't release rtnl lock if registration with
L2 driver (bnxt_re_register_netdev) fais and this causes
hang while requesting for the next lock.

[  371.635416] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  371.635417] kworker/u48:1   D    0   634      2 0x80000000
[  371.635423] Workqueue: bnxt_re bnxt_re_task [bnxt_re]
[  371.635424] Call Trace:
[  371.635426]  ? __schedule+0x36b/0xbd0
[  371.635429]  schedule+0x39/0x90
[  371.635430]  schedule_preempt_disabled+0x11/0x20
[  371.635431]  __mutex_lock+0x45b/0x9c0
[  371.635433]  ? __mutex_lock+0x16d/0x9c0
[  371.635435]  ? bnxt_re_ib_reg+0x2b/0xb30 [bnxt_re]
[  371.635438]  ? wake_up_klogd+0x37/0x40
[  371.635442]  bnxt_re_ib_reg+0x2b/0xb30 [bnxt_re]
[  371.635447]  bnxt_re_task+0xfd/0x180 [bnxt_re]
[  371.635449]  process_one_work+0x216/0x5b0
[  371.635450]  ? process_one_work+0x189/0x5b0
[  371.635453]  worker_thread+0x4e/0x3d0
[  371.635455]  kthread+0x10e/0x140
[  371.635456]  ? process_one_work+0x5b0/0x5b0
[  371.635458]  ? kthread_stop+0x220/0x220
[  371.635460]  ret_from_fork+0x3a/0x50
[  371.635477] INFO: task NetworkManager:1228 blocked for more than 120 seconds.
[  371.635478]       Tainted: G    B      OE     4.20.0-rc1+ #42
[  371.635479] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

Release the rtnl_lock correctly in the failure path.

Fixes: de5c95d0f5 ("RDMA/bnxt_re: Fix system crash during RDMA resource initialization")
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-11-21 14:11:04 -07:00
..
bnxt_re.h RDMA/bnxt_re: Avoid resource leak in case the NQ registration fails 2018-10-16 00:03:51 -06:00
hw_counters.c RDMA/bnxt_re: Report out of sequence hw counters 2018-10-16 00:03:50 -06:00
hw_counters.h RDMA/bnxt_re: Report out of sequence hw counters 2018-10-16 00:03:50 -06:00
ib_verbs.c RDMA/bnxt_re: Add missing spin lock initialization 2018-10-16 00:03:50 -06:00
ib_verbs.h RDMA, core and ULPs: Declare ib_post_send() and ib_post_recv() arguments const 2018-07-30 20:09:34 -06:00
Kconfig bnxt_re: add MAY_USE_DEVLINK dependency 2017-07-29 14:17:48 -07:00
main.c RDMA/bnxt_re: Fix system hang when registration with L2 driver fails 2018-11-21 14:11:04 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qplib_fp.c RDMA/bnxt_re: Avoid accessing nq->bar_reg_iomem in failure case 2018-10-16 00:03:50 -06:00
qplib_fp.h RDMA/bnxt_re: Fix broken RoCE driver due to recent L2 driver changes 2018-05-25 11:03:47 -06:00
qplib_rcfw.c RDMA/bnxt_re: Prevent driver crash due to NULL pointer in error message print 2018-10-16 00:03:50 -06:00
qplib_rcfw.h RDMA/bnxt_re: Report out of sequence hw counters 2018-10-16 00:03:50 -06:00
qplib_res.c RDMA/bnxt_re: QPLIB: Add and use #define dev_fmt(fmt) "QPLIB: " fmt 2018-09-05 15:35:20 -06:00
qplib_res.h bnxt_re: Make room for mapping beyond 32 entries 2017-10-18 10:24:13 -04:00
qplib_sp.c RDMA/bnxt_re: Limit max_pkey to 16 bit value 2018-10-16 00:03:51 -06:00
qplib_sp.h RDMA/bnxt_re: Report out of sequence hw counters 2018-10-16 00:03:50 -06:00
roce_hsi.h RDMA/bnxt_re: Report out of sequence hw counters 2018-10-16 00:03:50 -06:00