
From: Roland Dreier <roland@topspin.com>

InfiniBand spec rev 1.2 compliance: add local qp number to work completion
structure.

Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <roland@topspin.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/infiniband/core/mad.c          |    1 +
 25-akpm/drivers/infiniband/hw/mthca/mthca_cq.c |    2 ++
 25-akpm/drivers/infiniband/include/ib_verbs.h  |    1 +
 3 files changed, 4 insertions(+)

diff -puN drivers/infiniband/core/mad.c~infiniband-core-add-qp-number-to-work-completion-struct drivers/infiniband/core/mad.c
--- 25/drivers/infiniband/core/mad.c~infiniband-core-add-qp-number-to-work-completion-struct	Wed Jan 12 16:31:48 2005
+++ 25-akpm/drivers/infiniband/core/mad.c	Wed Jan 12 16:31:48 2005
@@ -2025,6 +2025,7 @@ static void local_completions(void *data
 			wc.slid = IB_LID_PERMISSIVE;
 			wc.sl = 0;
 			wc.dlid_path_bits = 0;
+			wc.qp_num = IB_QP0;
 			local->mad_priv->header.recv_wc.wc = &wc;
 			local->mad_priv->header.recv_wc.mad_len =
 						sizeof(struct ib_mad);
diff -puN drivers/infiniband/hw/mthca/mthca_cq.c~infiniband-core-add-qp-number-to-work-completion-struct drivers/infiniband/hw/mthca/mthca_cq.c
--- 25/drivers/infiniband/hw/mthca/mthca_cq.c~infiniband-core-add-qp-number-to-work-completion-struct	Wed Jan 12 16:31:48 2005
+++ 25-akpm/drivers/infiniband/hw/mthca/mthca_cq.c	Wed Jan 12 16:31:48 2005
@@ -444,6 +444,8 @@ static inline int mthca_poll_one(struct 
 		spin_lock(&(*cur_qp)->lock);
 	}
 
+	entry->qp_num = (*cur_qp)->qpn;
+
 	if (is_send) {
 		wq = &(*cur_qp)->sq;
 		wqe_index = ((be32_to_cpu(cqe->wqe) - (*cur_qp)->send_wqe_offset)
diff -puN drivers/infiniband/include/ib_verbs.h~infiniband-core-add-qp-number-to-work-completion-struct drivers/infiniband/include/ib_verbs.h
--- 25/drivers/infiniband/include/ib_verbs.h~infiniband-core-add-qp-number-to-work-completion-struct	Wed Jan 12 16:31:48 2005
+++ 25-akpm/drivers/infiniband/include/ib_verbs.h	Wed Jan 12 16:31:48 2005
@@ -352,6 +352,7 @@ struct ib_wc {
 	u32			vendor_err;
 	u32			byte_len;
 	__be32			imm_data;
+	u32			qp_num;
 	u32			src_qp;
 	int			wc_flags;
 	u16			pkey_index;
_
