IB/mlx4: Fix value of pkey_index in QP1 completions
authorDotan Barak <dotanb@dev.mellanox.co.il>
Mon, 7 Jan 2008 07:01:25 +0000 (09:01 +0200)
committerRoland Dreier <rolandd@cisco.com>
Tue, 8 Jan 2008 20:05:53 +0000 (12:05 -0800)
Fix the value of pkey_index in completions to get a valid value for
GSI QPs.  Without this fix, incoming GSI packets on port 2 get an
invalid P_Key index in the completion, which prevents the MAD layer
from sending back a response, which can make the second port of
ConnectX HCAs completely useless.

Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/mlx4/cq.c

index 8bf44daf45ecd851e858bc72b12678ada60be0d8..9d32c49cc651c76c23850f46c478c167916e7eee 100644 (file)
@@ -430,7 +430,7 @@ static int mlx4_ib_poll_one(struct mlx4_ib_cq *cq,
                wc->dlid_path_bits = (be32_to_cpu(cqe->g_mlpath_rqpn) >> 24) & 0x7f;
                wc->wc_flags      |= be32_to_cpu(cqe->g_mlpath_rqpn) & 0x80000000 ?
                        IB_WC_GRH : 0;
-               wc->pkey_index     = be32_to_cpu(cqe->immed_rss_invalid) >> 16;
+               wc->pkey_index     = be32_to_cpu(cqe->immed_rss_invalid) & 0x7f;
        }
 
        return 0;