linux/drivers/infiniband/hw
Devesh Sharma 6e04b10356 RDMA/bnxt_re: Fix broken RoCE driver due to recent L2 driver changes
The recent changes in Broadcom's ethernet driver(L2 driver) broke
RoCE functionality in terms of MSIx vector allocation and
de-allocation.

There is a possibility that L2 driver would initiate MSIx vector
reallocation depending upon the requests coming from administrator.
In such cases L2 driver needs to free up all the MSIx vectors
allocated previously and reallocate/initialize those.

If RoCE driver is loaded and reshuffling is attempted, there will be
kernel crashes because RoCE driver would still be holding the MSIx
vectors but L2 driver would attempt to free in-use vectors. Thus
leading to a kernel crash.

Making changes in roce driver to fix crashes described above.
As part of solution L2 driver tells RoCE driver to release
the MSIx vector whenever there is a need. When RoCE driver
get message it sync up with all the running tasklets and IRQ
handlers and releases the vectors. L2 driver send one more
message to RoCE driver to resume the MSIx vectors. L2 driver
guarantees that RoCE vector do not change during reshuffling.

Fixes: ec86f14ea5 ("bnxt_en: Add ULP calls to stop and restart IRQs.")
Fixes: 08654eb213 ("bnxt_en: Change IRQ assignment for RDMA driver.")
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-05-25 11:03:47 -06:00
..
bnxt_re RDMA/bnxt_re: Fix broken RoCE driver due to recent L2 driver changes 2018-05-25 11:03:47 -06:00
cxgb3 RDMA/cxgb3: Use structs to describe the uABI instead of opencoding 2018-03-22 12:42:48 -06:00
cxgb4 iw_cxgb4: Fix an error handling path in 'c4iw_get_dma_mr()' 2018-05-09 10:45:19 -04:00
hfi1 IB/hfi1: Use after free race condition in send context error path 2018-05-09 10:39:50 -04:00
hns RDMA/hns: Move the location for initializing tmp_len 2018-05-23 15:45:44 -06:00
i40iw RDMA/i40iw: Avoid panic when reading back the IRQ affinity hint 2018-05-09 10:45:19 -04:00
mlx4 IB/mlx4: Fix integer overflow when calculating optimal MTT size 2018-05-03 15:31:43 -04:00
mlx5 RDMA/mlx5: Use proper spec flow label type 2018-05-09 10:39:50 -04:00
mthca IB/uverbs: Extend uverbs_ioctl header with driver_id 2018-03-19 14:45:17 -06:00
nes IB/nes: fix nes_netdev_start_xmit()'s return type 2018-04-27 14:07:30 -04:00
ocrdma IB/providers: Avoid null netdev check for RoCE 2018-04-03 21:33:51 -06:00
qedr RDMA/qedr: Fix doorbell bar mapping for dpi > 1 2018-05-23 15:12:14 -06:00
qib RDMA: Use u64_to_user_ptr everywhere 2018-03-29 13:42:29 -06:00
usnic Merge candidates for 4.17 merge window 2018-04-06 17:35:43 -07:00
vmw_pvrdma RDMA: Use ib_gid_attr during GID modification 2018-04-03 21:34:16 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00