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
Kconfig -rw-r--r-- 865 bytes
Makefile -rw-r--r-- 392 bytes
dma_queue.c -rw-r--r-- 4.9 KB
iorpc_globals.c -rw-r--r-- 2.2 KB
iorpc_mpipe.c -rw-r--r-- 14.9 KB
iorpc_mpipe_info.c -rw-r--r-- 2.6 KB
iorpc_trio.c -rw-r--r-- 8.8 KB
iorpc_uart.c -rw-r--r-- 2.1 KB
iorpc_usb_host.c -rw-r--r-- 2.7 KB
kiorpc.c -rw-r--r-- 1.7 KB
mpipe.c -rw-r--r-- 14.0 KB
trio.c -rw-r--r-- 1.2 KB
uart.c -rw-r--r-- 2.0 KB
usb_host.c -rw-r--r-- 2.0 KB

back to top