Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39db3e66 authored by Dennis Dalessandro's avatar Dennis Dalessandro Committed by Doug Ledford
Browse files

staging/rdma/hfi1: Remove srq from hfi1



SRQ data structure has been moved to rdmavt. Make use of it.

Reviewed-by: default avatarHarish Chegondi <harish.chegondi@intel.com>
Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 895420dd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1092,7 +1092,7 @@ struct ib_qp *hfi1_create_qp(struct ib_pd *ibpd,
		sz = sizeof(*qp);
		sg_list_sz = 0;
		if (init_attr->srq) {
			struct hfi1_srq *srq = to_isrq(init_attr->srq);
			struct rvt_srq *srq = ibsrq_to_rvtsrq(init_attr->srq);

			if (srq->rq.max_sge > 1)
				sg_list_sz = sizeof(*qp->r_sg_list) *
+2 −2
Original line number Diff line number Diff line
@@ -159,14 +159,14 @@ int hfi1_get_rwqe(struct rvt_qp *qp, int wr_id_only)
	unsigned long flags;
	struct rvt_rq *rq;
	struct rvt_rwq *wq;
	struct hfi1_srq *srq;
	struct rvt_srq *srq;
	struct rvt_rwqe *wqe;
	void (*handler)(struct ib_event *, void *);
	u32 tail;
	int ret;

	if (qp->ibqp.srq) {
		srq = to_isrq(qp->ibqp.srq);
		srq = ibsrq_to_rvtsrq(qp->ibqp.srq);
		handler = srq->ibsrq.event_handler;
		rq = &srq->rq;
	} else {
+5 −5
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@
int hfi1_post_srq_receive(struct ib_srq *ibsrq, struct ib_recv_wr *wr,
			  struct ib_recv_wr **bad_wr)
{
	struct hfi1_srq *srq = to_isrq(ibsrq);
	struct rvt_srq *srq = ibsrq_to_rvtsrq(ibsrq);
	struct rvt_rwq *wq;
	unsigned long flags;
	int ret;
@@ -120,7 +120,7 @@ struct ib_srq *hfi1_create_srq(struct ib_pd *ibpd,
			       struct ib_udata *udata)
{
	struct hfi1_ibdev *dev = to_idev(ibpd->device);
	struct hfi1_srq *srq;
	struct rvt_srq *srq;
	u32 sz;
	struct ib_srq *ret;

@@ -229,7 +229,7 @@ int hfi1_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
		    enum ib_srq_attr_mask attr_mask,
		    struct ib_udata *udata)
{
	struct hfi1_srq *srq = to_isrq(ibsrq);
	struct rvt_srq *srq = ibsrq_to_rvtsrq(ibsrq);
	struct rvt_rwq *wq;
	int ret = 0;

@@ -367,7 +367,7 @@ int hfi1_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,

int hfi1_query_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr)
{
	struct hfi1_srq *srq = to_isrq(ibsrq);
	struct rvt_srq *srq = ibsrq_to_rvtsrq(ibsrq);

	attr->max_wr = srq->rq.size - 1;
	attr->max_sge = srq->rq.max_sge;
@@ -381,7 +381,7 @@ int hfi1_query_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr)
 */
int hfi1_destroy_srq(struct ib_srq *ibsrq)
{
	struct hfi1_srq *srq = to_isrq(ibsrq);
	struct rvt_srq *srq = ibsrq_to_rvtsrq(ibsrq);
	struct hfi1_ibdev *dev = to_idev(ibsrq->device);

	spin_lock(&dev->n_srqs_lock);
+0 −13
Original line number Diff line number Diff line
@@ -263,14 +263,6 @@ struct hfi1_cq {
	struct rvt_mmap_info *ip;
};

struct hfi1_srq {
	struct ib_srq ibsrq;
	struct rvt_rq rq;
	struct rvt_mmap_info *ip;
	/* send signal when number of RWQEs < limit */
	u32 limit;
};

/*
 * hfi1 specific data structures that will be hidden from rvt after the queue
 * pair is made common
@@ -539,11 +531,6 @@ static inline struct hfi1_cq *to_icq(struct ib_cq *ibcq)
	return container_of(ibcq, struct hfi1_cq, ibcq);
}

static inline struct hfi1_srq *to_isrq(struct ib_srq *ibsrq)
{
	return container_of(ibsrq, struct hfi1_srq, ibsrq);
}

static inline struct rvt_qp *to_iqp(struct ib_qp *ibqp)
{
	return container_of(ibqp, struct rvt_qp, ibqp);