On 10/20/2015 02:53 AM, Haggai Eran wrote:
> When discussing the patches to demux ids in rdma_cm instead of ib_cm, it
> was decided that it is best to use the P_Key value in the packet headers.
> However, the mlx5 and ipath drivers are currently unable to send correct
> P_Key values in GMP headers. They always send using a single P_Key that is
> set during the GSI QP initialization.
>
> Change the rdma_cm code to look at the P_Key value that is part of the
> packet payload as a workaround. Once the drivers are fixed this patch can
> be reverted.
>
> Fixes: 4c21b5bcef73 ("IB/cma: Add net_dev and private data checks to
> RDMA CM")
> Signed-off-by: Haggai Eran <[email protected]>
> ---
> Changes from v0:
> - improve commit message
>
> drivers/infiniband/core/cma.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
> index 59a2dafc8c57..e8324543e085 100644
> --- a/drivers/infiniband/core/cma.c
> +++ b/drivers/infiniband/core/cma.c
> @@ -1067,14 +1067,14 @@ static int cma_save_req_info(const struct ib_cm_event
> *ib_event,
> sizeof(req->local_gid));
> req->has_gid = true;
> req->service_id = req_param->primary_path->service_id;
> - req->pkey = req_param->bth_pkey;
> + req->pkey = be16_to_cpu(req_param->primary_path->pkey);
> break;
> case IB_CM_SIDR_REQ_RECEIVED:
> req->device = sidr_param->listen_id->device;
> req->port = sidr_param->port;
> req->has_gid = false;
> req->service_id = sidr_param->service_id;
> - req->pkey = sidr_param->bth_pkey;
> + req->pkey = sidr_param->pkey;
> break;
> default:
> return -EINVAL;
> And, to be clear, you are looking for this to be part of 4.3-rc updates, yes? -- Doug Ledford <[email protected]> GPG KeyID: 0E572FDD
signature.asc
Description: OpenPGP digital signature
