提交 43adff39 编写于 作者: T Tatyana Nikolova 提交者: Roland Dreier

RDMA/nes: Fix for passing a valid QP pointer to the user space library

Signed-off-by: NTatyana Nikolova <tatyana.e.nikolova@intel.com>
Signed-off-by: NRoland Dreier <roland@purestorage.com>
上级 4ac79a70
...@@ -657,7 +657,7 @@ static void build_rdma0_msg(struct nes_cm_node *cm_node, struct nes_qp **nesqp_a ...@@ -657,7 +657,7 @@ static void build_rdma0_msg(struct nes_cm_node *cm_node, struct nes_qp **nesqp_a
struct nes_qp *nesqp = *nesqp_addr; struct nes_qp *nesqp = *nesqp_addr;
struct nes_hw_qp_wqe *wqe = &nesqp->hwqp.sq_vbase[0]; struct nes_hw_qp_wqe *wqe = &nesqp->hwqp.sq_vbase[0];
u64temp = (unsigned long)nesqp; u64temp = (unsigned long)nesqp->nesuqp_addr;
u64temp |= NES_SW_CONTEXT_ALIGN >> 1; u64temp |= NES_SW_CONTEXT_ALIGN >> 1;
set_wqe_64bit_value(wqe->wqe_words, NES_IWARP_SQ_WQE_COMP_CTX_LOW_IDX, u64temp); set_wqe_64bit_value(wqe->wqe_words, NES_IWARP_SQ_WQE_COMP_CTX_LOW_IDX, u64temp);
......
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
#include <linux/types.h> #include <linux/types.h>
#define NES_ABI_USERSPACE_VER 1 #define NES_ABI_USERSPACE_VER 2
#define NES_ABI_KERNEL_VER 1 #define NES_ABI_KERNEL_VER 2
/* /*
* Make sure that all structs defined in this file remain laid out so * Make sure that all structs defined in this file remain laid out so
...@@ -78,6 +78,7 @@ struct nes_create_cq_req { ...@@ -78,6 +78,7 @@ struct nes_create_cq_req {
struct nes_create_qp_req { struct nes_create_qp_req {
__u64 user_wqe_buffers; __u64 user_wqe_buffers;
__u64 user_qp_buffer;
}; };
enum iwnes_memreg_type { enum iwnes_memreg_type {
......
...@@ -1191,6 +1191,8 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd, ...@@ -1191,6 +1191,8 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd,
if (req.user_wqe_buffers) { if (req.user_wqe_buffers) {
virt_wqs = 1; virt_wqs = 1;
} }
if (req.user_qp_buffer)
nesqp->nesuqp_addr = req.user_qp_buffer;
if ((ibpd->uobject) && (ibpd->uobject->context)) { if ((ibpd->uobject) && (ibpd->uobject->context)) {
nesqp->user_mode = 1; nesqp->user_mode = 1;
nes_ucontext = to_nesucontext(ibpd->uobject->context); nes_ucontext = to_nesucontext(ibpd->uobject->context);
......
...@@ -184,5 +184,6 @@ struct nes_qp { ...@@ -184,5 +184,6 @@ struct nes_qp {
u8 pau_busy; u8 pau_busy;
u8 pau_pending; u8 pau_pending;
u8 pau_state; u8 pau_state;
__u64 nesuqp_addr;
}; };
#endif /* NES_VERBS_H */ #endif /* NES_VERBS_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册