rvt_qp
void * (*qp_priv_alloc)(struct rvt_dev_info *rdi, struct rvt_qp *qp,
void (*qp_priv_free)(struct rvt_dev_info *rdi, struct rvt_qp *qp);
void (*notify_qp_reset)(struct rvt_qp *qp);
void (*schedule_send)(struct rvt_qp *qp);
void (*schedule_send_no_lock)(struct rvt_qp *qp);
void (*do_send)(struct rvt_qp *qp);
int (*get_pmtu_from_attr)(struct rvt_dev_info *rdi, struct rvt_qp *qp,
void (*flush_qp_waiters)(struct rvt_qp *qp);
void (*stop_send_queue)(struct rvt_qp *qp);
void (*quiesce_qp)(struct rvt_qp *qp);
void (*notify_error_qp)(struct rvt_qp *qp);
u32 (*mtu_from_qp)(struct rvt_dev_info *rdi, struct rvt_qp *qp,
int (*check_modify_qp)(struct rvt_qp *qp, struct ib_qp_attr *attr,
void (*modify_qp)(struct rvt_qp *qp, struct ib_qp_attr *attr,
int (*check_send_wqe)(struct rvt_qp *qp, struct rvt_swqe *wqe);
static inline struct rvt_qp *ibqp_to_rvtqp(struct ib_qp *ibqp)
return container_of(ibqp, struct rvt_qp, ibqp);
static inline struct rvt_qp *rvt_lookup_qpn(struct rvt_dev_info *rdi,
struct rvt_qp *qp = NULL;
int rvt_fast_reg_mr(struct rvt_qp *qp, struct ib_mr *ibmr, u32 key,
int rvt_invalidate_rkey(struct rvt_qp *qp, u32 rkey);
int rvt_rkey_ok(struct rvt_qp *qp, struct rvt_sge *sge,
struct rvt_qp __rcu *qp[2];
struct rvt_qp __rcu *next; /* link list for QPN hash table */
struct rvt_qp __rcu **qp_table;
struct rvt_qp *qp;
static inline struct rvt_swqe *rvt_get_swqe_ptr(struct rvt_qp *qp,
static inline void rvt_get_qp(struct rvt_qp *qp)
static inline void rvt_put_qp(struct rvt_qp *qp)
struct rvt_qp *qp,
struct rvt_qp *qp,
int rvt_error_qp(struct rvt_qp *qp, enum ib_wc_status err);