hns_roce_qp
static inline struct hns_roce_qp *to_hr_qp(struct ib_qp *ibqp)
return container_of(ibqp, struct hns_roce_qp, ibqp);
static inline struct hns_roce_qp
void init_flush_work(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp);
void *hns_roce_get_recv_wqe(struct hns_roce_qp *hr_qp, unsigned int n);
void *hns_roce_get_send_wqe(struct hns_roce_qp *hr_qp, unsigned int n);
void *hns_roce_get_extend_sge(struct hns_roce_qp *hr_qp, unsigned int n);
void hns_roce_qp_remove(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp);
void hns_roce_qp_destroy(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
void flush_cqe(struct hns_roce_dev *dev, struct hns_roce_qp *qp);
void (*event)(struct hns_roce_qp *qp,
struct hns_roce_qp *hr_qp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
static int fill_ext_sge_inl_data(struct hns_roce_qp *qp,
static void set_extend_sge(struct hns_roce_qp *qp, struct ib_sge *sge,
static bool check_inl_data_len(struct hns_roce_qp *qp, unsigned int len)
static int set_rc_inl(struct hns_roce_qp *qp, const struct ib_send_wr *wr,
struct hns_roce_qp *hr_qp;
struct hns_roce_qp *hr_qp;
struct hns_roce_qp *qp = to_hr_qp(ibqp);
static int free_mr_post_send_lp_wqe(struct hns_roce_qp *hr_qp)
struct hns_roce_qp *hr_qp;
struct hns_roce_qp *hr_qp)
struct hns_roce_qp *hr_qp;
static int sw_comp(struct hns_roce_qp *hr_qp, struct hns_roce_wq *wq,
struct hns_roce_qp *hr_qp;
static void get_cqe_status(struct hns_roce_dev *hr_dev, struct hns_roce_qp *qp,
struct hns_roce_qp **cur_qp)
struct hns_roce_qp *hr_qp = *cur_qp;
struct hns_roce_qp **cur_qp, struct ib_wc *wc)
struct hns_roce_qp *qp = *cur_qp;
struct hns_roce_qp *cur_qp = NULL;
struct hns_roce_qp *hr_qp)
static void set_access_flags(struct hns_roce_qp *hr_qp,
static void set_qpc_wqe_cnt(struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
static inline int set_ud_wqe(struct hns_roce_qp *qp,
struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
static void clear_qp(struct hns_roce_qp *hr_qp)
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
static inline int set_rc_wqe(struct hns_roce_qp *qp,
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
static inline int modify_qp_is_ok(struct hns_roce_qp *hr_qp)
struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp)
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp)
struct hns_roce_qp *qp)
struct hns_roce_qp *qp)
static void write_dwqe(struct hns_roce_dev *hr_dev, struct hns_roce_qp *qp,
struct hns_roce_qp *qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp)
static void fill_rq_wqe(struct hns_roce_qp *hr_qp, const struct ib_recv_wr *wr,
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *rsv_qp[HNS_ROCE_FREE_MR_USED_QP_NUM];
struct hns_roce_qp *hr_qp;
INIT_RDMA_OBJ_SIZE(ib_qp, hns_roce_qp, ibqp),
static void free_qp_db(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp)
static void free_kernel_wrid(struct hns_roce_qp *hr_qp)
void flush_cqe(struct hns_roce_dev *dev, struct hns_roce_qp *qp)
struct hns_roce_qp *hr_qp)
static int set_congest_type(struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp,
static int set_qp_param(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp)
struct hns_roce_qp *qp;
void hns_roce_qp_destroy(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp = to_hr_qp(qp);
struct hns_roce_qp *qp;
struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
static void hns_roce_ib_qp_event(struct hns_roce_qp *hr_qp,
static inline void *get_wqe(struct hns_roce_qp *hr_qp, u32 offset)
void *hns_roce_get_recv_wqe(struct hns_roce_qp *hr_qp, unsigned int n)
void *hns_roce_get_send_wqe(struct hns_roce_qp *hr_qp, unsigned int n)
void *hns_roce_get_extend_sge(struct hns_roce_qp *hr_qp, unsigned int n)
static int alloc_qpn(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp,
static int alloc_qpc(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
static struct hns_roce_qp *hns_roce_qp_lookup(struct hns_roce_dev *hr_dev,
static void qp_user_mmap_entry_remove(struct hns_roce_qp *hr_qp)
void hns_roce_qp_remove(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
static void free_qpc(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
struct hns_roce_qp *qp;
static void free_qpn(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
static u32 proc_rq_sge(struct hns_roce_dev *dev, struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp, int has_rq, bool user)
static void update_inline_data(struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp, struct ib_qp_cap *cap)
struct hns_roce_qp *hr_qp = container_of(flush_work,
struct hns_roce_qp, flush_work);
struct ib_qp_cap *cap, struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp,
struct ib_qp_cap *cap, struct hns_roce_qp *hr_qp)
static int alloc_qp_buf(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
static void free_qp_buf(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
static int qp_mmap_entry(struct hns_roce_qp *hr_qp,
void init_flush_work(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp,
static int alloc_qp_db(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
struct hns_roce_qp *hr_qp = to_hr_qp(ib_qp);
struct hns_roce_qp *hr_qp = to_hr_qp(ib_qp);