diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2017-05-21 19:11:13 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-06-01 17:04:51 -0400 |
commit | eed7624552ca55c346a4e9ccaa9ab0723841aee6 (patch) | |
tree | 34615fc83a55ae41203ae20d541ce6f81148a301 /include | |
parent | 1feb40067cf04ae48d65f728d62ca255c9449178 (diff) | |
download | linux-eed7624552ca55c346a4e9ccaa9ab0723841aee6.tar.bz2 |
RDMA/mlx4: Fix MAD tunneling when SRIOV is enabled
The cited patch added a type field to structures ib_ah and rdma_ah_attr.
Function mlx4_ib_query_ah() builds an rdma_ah_attr structure from the
data in an mlx4_ib_ah structure (which contains both an ib_ah structure
and an address vector).
For mlx4_ib_query_ah() to work properly, the type field in the contained
ib_ah structure must be set correctly.
In the outgoing MAD tunneling flow, procedure mlx4_ib_multiplex_mad()
paravirtualizes a MAD received from a slave and sends the processed
mad out over the wire. During this processing, it populates an
mlx4_ib_ah structure and calls mlx4_ib_query_ah().
The cited commit overlooked setting the type field in the contained
ib_ah structure before invoking mlx4_ib_query_ah(). As a result, the
type field remained uninitialized, and the rdma_ah_attr structure was
incorrectly built. This resulted in improperly built MADs being sent out
over the wire.
This patch properly initializes the type field in the contained ib_ah
structure before calling mlx4_ib_query_ah(). The rdma_ah_attr structure
is then generated correctly.
Fixes: 44c58487d51a ("IB/core: Define 'ib' and 'roce' rdma_ah_attr types")
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions