linux_dsm_epyc7002/drivers/infiniband/hw
Mike Marciniszyn f59fb9e051 IB/hfi1: Fix handling of FECN marked multicast packet
The code for handling a marked UD packet unconditionally returns the
dlid in the header of the FECN marked packet.  This is not correct
for multicast packets where the DLID is in the multicast range.

The subsequent attempt to send the CNP with the multicast lid will
cause the chip to halt the ack send context because the source
lid doesn't match the chip programming.   The send context will
be halted and flush any other pending packets in the pio ring causing
the CNP to not be sent.

A part of investigating the fix, it was determined that the 16B work
broke the FECN routine badly with inconsistent use of 16 bit and 32 bits
types for lids and pkeys.  Since the port's source lid was correctly 32
bits the type mixmatches need to be dealt with at the same time as
fixing the CNP header issue.

Fix these issues by:
- Using the ports lid for as the SLID for responding to FECN marked UD
  packets
- Insure pkey is always 16 bit in this and subordinate routines
- Insure lids are 32 bits in this and subordinate routines

Cc: <stable@vger.kernel.org> # 4.14.x
Fixes: 88733e3b84 ("IB/hfi1: Add 16B UD support")
Reviewed-by: Don Hiatt <don.hiatt@intel.com>
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2018-05-03 15:24:44 -04:00
..
bnxt_re RDMA: Use ib_gid_attr during GID modification 2018-04-03 21:34:16 -06:00
cxgb3 RDMA/cxgb3: Use structs to describe the uABI instead of opencoding 2018-03-22 12:42:48 -06:00
cxgb4 iw_cxgb4: Atomically flush per QP HW CQEs 2018-04-27 14:38:44 -04:00
hfi1 IB/hfi1: Fix handling of FECN marked multicast packet 2018-05-03 15:24:44 -04:00
hns RDMA/hns: Fix a couple misspellings 2018-04-27 14:21:51 -04:00
i40iw i40iw: Remove pre-production workaround for resource profile 1 2018-04-03 13:40:39 -06:00
mlx4 RDMA/mlx4: Add missed RSS hash inner header flag 2018-04-27 14:22:23 -04:00
mlx5 RDMA/mlx5: Properly check return value of mlx5_get_uars_page 2018-04-27 11:03:15 -04:00
mthca IB/uverbs: Extend uverbs_ioctl header with driver_id 2018-03-19 14:45:17 -06:00
nes IB/nes: fix nes_netdev_start_xmit()'s return type 2018-04-27 14:07:30 -04:00
ocrdma IB/providers: Avoid null netdev check for RoCE 2018-04-03 21:33:51 -06:00
qedr Merge candidates for 4.17 merge window 2018-04-06 17:35:43 -07:00
qib RDMA: Use u64_to_user_ptr everywhere 2018-03-29 13:42:29 -06:00
usnic Merge candidates for 4.17 merge window 2018-04-06 17:35:43 -07:00
vmw_pvrdma RDMA: Use ib_gid_attr during GID modification 2018-04-03 21:34:16 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00