Revision eed7624552ca55c346a4e9ccaa9ab0723841aee6 authored by Jack Morgenstein on 21 May 2017, 16:11:13 UTC, committed by Doug Ledford on 01 June 2017, 21:04:51 UTC
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>
1 parent 1feb400
History
File Mode Size
Makefile -rw-r--r-- 1.3 KB
carta_random.S -rw-r--r-- 1.0 KB
checksum.c -rw-r--r-- 2.5 KB
clear_page.S -rw-r--r-- 1.9 KB
clear_user.S -rw-r--r-- 6.0 KB
copy_page.S -rw-r--r-- 2.1 KB
copy_page_mck.S -rw-r--r-- 5.8 KB
copy_user.S -rw-r--r-- 16.7 KB
csum_partial_copy.c -rw-r--r-- 3.0 KB
do_csum.S -rw-r--r-- 10.0 KB
flush.S -rw-r--r-- 2.7 KB
idiv32.S -rw-r--r-- 2.1 KB
idiv64.S -rw-r--r-- 2.1 KB
io.c -rw-r--r-- 2.5 KB
ip_fast_csum.S -rw-r--r-- 2.7 KB
memcpy.S -rw-r--r-- 6.8 KB
memcpy_mck.S -rw-r--r-- 17.4 KB
memset.S -rw-r--r-- 9.1 KB
strlen.S -rw-r--r-- 6.3 KB
strlen_user.S -rw-r--r-- 6.6 KB
strncpy_from_user.S -rw-r--r-- 1.2 KB
strnlen_user.S -rw-r--r-- 957 bytes
xor.S -rw-r--r-- 3.5 KB

back to top