Patch "IB/mlx4: Handle well-known-gid in mad_demux processing" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
IB/mlx4: Handle well-known-gid in mad_demux processing
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ib-mlx4-handle-well-known-gid-in-mad_demux-processing.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
befcabcd530e4ffb6f016638f693b7d94986d2baMon Sep 17 00:00:00 2001
From: Jack Morgenstein <[email protected]>
Date: Thu, 10 Nov 2016 11:30:57 +0200
Subject: IB/mlx4: Handle well-known-gid in mad_demux processing
From: Jack Morgenstein <[email protected]>
commit befcabcd530e4ffb6f016638f693b7d94986d2ba upstream.
If OpenSM runs over a ConnectX-3, and there are ConnectX-4 or Connect-IB VFs active on the network, the OpenSM will receive QP1 packets containing a GRH where the destination GID is the "Well-Known GID" -- which is not a GID in the HCA Port's GID Table.
This GID must be tested-for separately -- and packets which contain this destination GID should be routed to slave 0 (the PF).
--- drivers/infiniband/hw/mlx4/mad.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
drivers/infiniband/hw/mlx4/mad.c +12 -4
@@ -702,10 +702,18 @@ static int mlx4_ib_demux_mad(struct ib_d/* If a grh is present, we demux according to it */ if (wc->wc_flags &IB_WC_GRH ) { - slave =mlx4_ib_find_real_gid (ibdev, port, grh->dgid.global.interface_id); -if (slave <0 ) { -mlx4_ib_warn (ibdev,"failed matching grh\n" ); -return -ENOENT ; +if (grh->dgid.global.interface_id == +cpu_to_be64 (IB_SA_WELL_KNOWN_GUID ) && + grh->dgid.global.subnet_prefix ==cpu_to_be64 ( +atomic64_read (&dev->sriov.demux[port -1 ].subnet_prefix))) { + slave =0 ; + }else { + slave =mlx4_ib_find_real_gid (ibdev, port, + grh->dgid.global.interface_id); +if (slave <0 ) { +mlx4_ib_warn (ibdev,"failed matching grh\n" ); +return -ENOENT ; + } } }/* Class-specific handling */
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/ib-mlx4-handle-well-known-gid-in-mad_demux-processing.patch queue-4.9/ib-mlx4-fix-out-of-range-array-index-in-destroy-qp-flow.patch