RDMA/rtrs: Introduce rtrs_post_send
Since the three functions share the similar logic, let's introduce one common function for it. Link: https://lore.kernel.org/r/20201023074353.21946-12-jinpu.wang@cloud.ionos.com Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com> Signed-off-by: Jack Wang <jinpu.wang@cloud.ionos.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
Родитель
ffea6ad133
Коммит
e6ab8cf50f
|
@ -104,6 +104,22 @@ int rtrs_post_recv_empty(struct rtrs_con *con, struct ib_cqe *cqe)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(rtrs_post_recv_empty);
|
||||
|
||||
static int rtrs_post_send(struct ib_qp *qp, struct ib_send_wr *head,
|
||||
struct ib_send_wr *wr)
|
||||
{
|
||||
if (head) {
|
||||
struct ib_send_wr *tail = head;
|
||||
|
||||
while (tail->next)
|
||||
tail = tail->next;
|
||||
tail->next = wr;
|
||||
} else {
|
||||
head = wr;
|
||||
}
|
||||
|
||||
return ib_post_send(qp, head, NULL);
|
||||
}
|
||||
|
||||
int rtrs_iu_post_send(struct rtrs_con *con, struct rtrs_iu *iu, size_t size,
|
||||
struct ib_send_wr *head)
|
||||
{
|
||||
|
@ -126,17 +142,7 @@ int rtrs_iu_post_send(struct rtrs_con *con, struct rtrs_iu *iu, size_t size,
|
|||
.send_flags = IB_SEND_SIGNALED,
|
||||
};
|
||||
|
||||
if (head) {
|
||||
struct ib_send_wr *tail = head;
|
||||
|
||||
while (tail->next)
|
||||
tail = tail->next;
|
||||
tail->next = ≀
|
||||
} else {
|
||||
head = ≀
|
||||
}
|
||||
|
||||
return ib_post_send(con->qp, head, NULL);
|
||||
return rtrs_post_send(con->qp, head, &wr);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rtrs_iu_post_send);
|
||||
|
||||
|
@ -168,17 +174,7 @@ int rtrs_iu_post_rdma_write_imm(struct rtrs_con *con, struct rtrs_iu *iu,
|
|||
if (WARN_ON(sge[i].length == 0))
|
||||
return -EINVAL;
|
||||
|
||||
if (head) {
|
||||
struct ib_send_wr *tail = head;
|
||||
|
||||
while (tail->next)
|
||||
tail = tail->next;
|
||||
tail->next = &wr.wr;
|
||||
} else {
|
||||
head = &wr.wr;
|
||||
}
|
||||
|
||||
return ib_post_send(con->qp, head, NULL);
|
||||
return rtrs_post_send(con->qp, head, &wr.wr);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rtrs_iu_post_rdma_write_imm);
|
||||
|
||||
|
@ -195,17 +191,7 @@ int rtrs_post_rdma_write_imm_empty(struct rtrs_con *con, struct ib_cqe *cqe,
|
|||
.ex.imm_data = cpu_to_be32(imm_data),
|
||||
};
|
||||
|
||||
if (head) {
|
||||
struct ib_send_wr *tail = head;
|
||||
|
||||
while (tail->next)
|
||||
tail = tail->next;
|
||||
tail->next = ≀
|
||||
} else {
|
||||
head = ≀
|
||||
}
|
||||
|
||||
return ib_post_send(con->qp, head, NULL);
|
||||
return rtrs_post_send(con->qp, head, &wr);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rtrs_post_rdma_write_imm_empty);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче