aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c2
-rw-r--r--drivers/infiniband/hw/nes/nes_user.h5
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c2
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.h1
4 files changed, 7 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index e852a3a42b9e..dfa9df484505 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -657,7 +657,7 @@ static void build_rdma0_msg(struct nes_cm_node *cm_node, struct nes_qp **nesqp_a
657 struct nes_qp *nesqp = *nesqp_addr; 657 struct nes_qp *nesqp = *nesqp_addr;
658 struct nes_hw_qp_wqe *wqe = &nesqp->hwqp.sq_vbase[0]; 658 struct nes_hw_qp_wqe *wqe = &nesqp->hwqp.sq_vbase[0];
659 659
660 u64temp = (unsigned long)nesqp; 660 u64temp = (unsigned long)nesqp->nesuqp_addr;
661 u64temp |= NES_SW_CONTEXT_ALIGN >> 1; 661 u64temp |= NES_SW_CONTEXT_ALIGN >> 1;
662 set_wqe_64bit_value(wqe->wqe_words, NES_IWARP_SQ_WQE_COMP_CTX_LOW_IDX, u64temp); 662 set_wqe_64bit_value(wqe->wqe_words, NES_IWARP_SQ_WQE_COMP_CTX_LOW_IDX, u64temp);
663 663
diff --git a/drivers/infiniband/hw/nes/nes_user.h b/drivers/infiniband/hw/nes/nes_user.h
index 4926de744488..529c421bb15c 100644
--- a/drivers/infiniband/hw/nes/nes_user.h
+++ b/drivers/infiniband/hw/nes/nes_user.h
@@ -39,8 +39,8 @@
39 39
40#include <linux/types.h> 40#include <linux/types.h>
41 41
42#define NES_ABI_USERSPACE_VER 1 42#define NES_ABI_USERSPACE_VER 2
43#define NES_ABI_KERNEL_VER 1 43#define NES_ABI_KERNEL_VER 2
44 44
45/* 45/*
46 * Make sure that all structs defined in this file remain laid out so 46 * Make sure that all structs defined in this file remain laid out so
@@ -78,6 +78,7 @@ struct nes_create_cq_req {
78 78
79struct nes_create_qp_req { 79struct nes_create_qp_req {
80 __u64 user_wqe_buffers; 80 __u64 user_wqe_buffers;
81 __u64 user_qp_buffer;
81}; 82};
82 83
83enum iwnes_memreg_type { 84enum iwnes_memreg_type {
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index 8308e3634767..797d8876d948 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -1191,6 +1191,8 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd,
1191 if (req.user_wqe_buffers) { 1191 if (req.user_wqe_buffers) {
1192 virt_wqs = 1; 1192 virt_wqs = 1;
1193 } 1193 }
1194 if (req.user_qp_buffer)
1195 nesqp->nesuqp_addr = req.user_qp_buffer;
1194 if ((ibpd->uobject) && (ibpd->uobject->context)) { 1196 if ((ibpd->uobject) && (ibpd->uobject->context)) {
1195 nesqp->user_mode = 1; 1197 nesqp->user_mode = 1;
1196 nes_ucontext = to_nesucontext(ibpd->uobject->context); 1198 nes_ucontext = to_nesucontext(ibpd->uobject->context);
diff --git a/drivers/infiniband/hw/nes/nes_verbs.h b/drivers/infiniband/hw/nes/nes_verbs.h
index 0eff7c44d76b..309b31c31ae1 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.h
+++ b/drivers/infiniband/hw/nes/nes_verbs.h
@@ -184,5 +184,6 @@ struct nes_qp {
184 u8 pau_busy; 184 u8 pau_busy;
185 u8 pau_pending; 185 u8 pau_pending;
186 u8 pau_state; 186 u8 pau_state;
187 __u64 nesuqp_addr;
187}; 188};
188#endif /* NES_VERBS_H */ 189#endif /* NES_VERBS_H */