diff options
| author | Jack Morgenstein <[email protected]> | 2018-01-12 07:58:40 +0200 |
|---|---|---|
| committer | Jason Gunthorpe <[email protected]> | 2018-01-15 15:33:21 -0700 |
| commit | 852f6927594d0d3e8632c889b2ab38cbc46476ad (patch) | |
| tree | f50f218f78836e70e791d2ba235f0b2d2510c163 /tools/perf/scripts/python/net_dropmonitor.py | |
| parent | 7bed7ebcb7c33eb789292f8ecc881d785b13a04c (diff) | |
IB/mlx4: Fix incorrectly releasing steerable UD QPs when have only ETH ports
Allocating steerable UD QPs depends on having at least one IB port,
while releasing those QPs does not.
As a result, when there are only ETH ports, the IB (RoCE) driver
requests releasing a qp range whose base qp is zero, with
qp count zero.
When SR-IOV is enabled, and the VF driver is running on a VM over
a hypervisor which treats such qp release calls as errors
(rather than NOPs), we see lines in the VM message log like:
mlx4_core 0002:00:02.0: Failed to release qp range base:0 cnt:0
Fix this by adding a check for a zero count in mlx4_release_qp_range()
(which thus treats releasing 0 qps as a nop), and eliminating the
check for device managed flow steering when releasing steerable UD QPs.
(Freeing ib_uc_qpns_bitmap unconditionally is also OK, since it
remains NULL when steerable UD QPs are not allocated).
Cc: <[email protected]>
Fixes: 4196670be786 ("IB/mlx4: Don't allocate range of steerable UD QPs for Ethernet-only device")
Signed-off-by: Jack Morgenstein <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/net_dropmonitor.py')
0 files changed, 0 insertions, 0 deletions