Message ID | 20210707040040.15434-3-rpearsonhpe@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | ICRC cleanup | expand |
On Wed, Jul 7, 2021 at 12:01 PM Bob Pearson <rpearsonhpe@gmail.com> wrote: > > rxe_xmit_packet() was an overlong inline subroutine. This patch moves it > into rxe_net.c as an ordinary subroutine. In this commit, the function rxe_xmit_packet is moved from rxe_loc.h to rxe_net.c. No other changes. I am fine with this. Thanks. Reviewed-by: Zhu Yanjun <zyjzyj2000@gmail.com> Zhu Yanjun > > Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com> > --- > drivers/infiniband/sw/rxe/rxe_loc.h | 45 ++--------------------------- > drivers/infiniband/sw/rxe/rxe_net.c | 43 +++++++++++++++++++++++++++ > 2 files changed, 45 insertions(+), 43 deletions(-) > > diff --git a/drivers/infiniband/sw/rxe/rxe_loc.h b/drivers/infiniband/sw/rxe/rxe_loc.h > index 015777e31ec9..409d10f20948 100644 > --- a/drivers/infiniband/sw/rxe/rxe_loc.h > +++ b/drivers/infiniband/sw/rxe/rxe_loc.h > @@ -104,6 +104,8 @@ int rxe_send(struct rxe_pkt_info *pkt, struct sk_buff *skb); > struct sk_buff *rxe_init_packet(struct rxe_dev *rxe, struct rxe_av *av, > int paylen, struct rxe_pkt_info *pkt); > int rxe_prepare(struct rxe_pkt_info *pkt, struct sk_buff *skb, u32 *crc); > +int rxe_xmit_packet(struct rxe_qp *qp, struct rxe_pkt_info *pkt, > + struct sk_buff *skb); > const char *rxe_parent_name(struct rxe_dev *rxe, unsigned int port_num); > int rxe_mcast_add(struct rxe_dev *rxe, union ib_gid *mgid); > int rxe_mcast_delete(struct rxe_dev *rxe, union ib_gid *mgid); > @@ -206,47 +208,4 @@ static inline unsigned int wr_opcode_mask(int opcode, struct rxe_qp *qp) > return rxe_wr_opcode_info[opcode].mask[qp->ibqp.qp_type]; > } > > -static inline int rxe_xmit_packet(struct rxe_qp *qp, struct rxe_pkt_info *pkt, > - struct sk_buff *skb) > -{ > - int err; > - int is_request = pkt->mask & RXE_REQ_MASK; > - struct rxe_dev *rxe = to_rdev(qp->ibqp.device); > - > - if ((is_request && (qp->req.state != QP_STATE_READY)) || > - (!is_request && (qp->resp.state != QP_STATE_READY))) { > - pr_info("Packet dropped. QP is not in ready state\n"); > - goto drop; > - } > - > - if (pkt->mask & RXE_LOOPBACK_MASK) { > - memcpy(SKB_TO_PKT(skb), pkt, sizeof(*pkt)); > - rxe_loopback(skb); > - err = 0; > - } else { > - err = rxe_send(pkt, skb); > - } > - > - if (err) { > - rxe->xmit_errors++; > - rxe_counter_inc(rxe, RXE_CNT_SEND_ERR); > - return err; > - } > - > - if ((qp_type(qp) != IB_QPT_RC) && > - (pkt->mask & RXE_END_MASK)) { > - pkt->wqe->state = wqe_state_done; > - rxe_run_task(&qp->comp.task, 1); > - } > - > - rxe_counter_inc(rxe, RXE_CNT_SENT_PKTS); > - goto done; > - > -drop: > - kfree_skb(skb); > - err = 0; > -done: > - return err; > -} > - > #endif /* RXE_LOC_H */ > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c > index dec92928a1cd..c93a379a1b28 100644 > --- a/drivers/infiniband/sw/rxe/rxe_net.c > +++ b/drivers/infiniband/sw/rxe/rxe_net.c > @@ -421,6 +421,49 @@ void rxe_loopback(struct sk_buff *skb) > rxe_rcv(skb); > } > > +int rxe_xmit_packet(struct rxe_qp *qp, struct rxe_pkt_info *pkt, > + struct sk_buff *skb) > +{ > + int err; > + int is_request = pkt->mask & RXE_REQ_MASK; > + struct rxe_dev *rxe = to_rdev(qp->ibqp.device); > + > + if ((is_request && (qp->req.state != QP_STATE_READY)) || > + (!is_request && (qp->resp.state != QP_STATE_READY))) { > + pr_info("Packet dropped. QP is not in ready state\n"); > + goto drop; > + } > + > + if (pkt->mask & RXE_LOOPBACK_MASK) { > + memcpy(SKB_TO_PKT(skb), pkt, sizeof(*pkt)); > + rxe_loopback(skb); > + err = 0; > + } else { > + err = rxe_send(pkt, skb); > + } > + > + if (err) { > + rxe->xmit_errors++; > + rxe_counter_inc(rxe, RXE_CNT_SEND_ERR); > + return err; > + } > + > + if ((qp_type(qp) != IB_QPT_RC) && > + (pkt->mask & RXE_END_MASK)) { > + pkt->wqe->state = wqe_state_done; > + rxe_run_task(&qp->comp.task, 1); > + } > + > + rxe_counter_inc(rxe, RXE_CNT_SENT_PKTS); > + goto done; > + > +drop: > + kfree_skb(skb); > + err = 0; > +done: > + return err; > +} > + > struct sk_buff *rxe_init_packet(struct rxe_dev *rxe, struct rxe_av *av, > int paylen, struct rxe_pkt_info *pkt) > { > -- > 2.30.2 >
diff --git a/drivers/infiniband/sw/rxe/rxe_loc.h b/drivers/infiniband/sw/rxe/rxe_loc.h index 015777e31ec9..409d10f20948 100644 --- a/drivers/infiniband/sw/rxe/rxe_loc.h +++ b/drivers/infiniband/sw/rxe/rxe_loc.h @@ -104,6 +104,8 @@ int rxe_send(struct rxe_pkt_info *pkt, struct sk_buff *skb); struct sk_buff *rxe_init_packet(struct rxe_dev *rxe, struct rxe_av *av, int paylen, struct rxe_pkt_info *pkt); int rxe_prepare(struct rxe_pkt_info *pkt, struct sk_buff *skb, u32 *crc); +int rxe_xmit_packet(struct rxe_qp *qp, struct rxe_pkt_info *pkt, + struct sk_buff *skb); const char *rxe_parent_name(struct rxe_dev *rxe, unsigned int port_num); int rxe_mcast_add(struct rxe_dev *rxe, union ib_gid *mgid); int rxe_mcast_delete(struct rxe_dev *rxe, union ib_gid *mgid); @@ -206,47 +208,4 @@ static inline unsigned int wr_opcode_mask(int opcode, struct rxe_qp *qp) return rxe_wr_opcode_info[opcode].mask[qp->ibqp.qp_type]; } -static inline int rxe_xmit_packet(struct rxe_qp *qp, struct rxe_pkt_info *pkt, - struct sk_buff *skb) -{ - int err; - int is_request = pkt->mask & RXE_REQ_MASK; - struct rxe_dev *rxe = to_rdev(qp->ibqp.device); - - if ((is_request && (qp->req.state != QP_STATE_READY)) || - (!is_request && (qp->resp.state != QP_STATE_READY))) { - pr_info("Packet dropped. QP is not in ready state\n"); - goto drop; - } - - if (pkt->mask & RXE_LOOPBACK_MASK) { - memcpy(SKB_TO_PKT(skb), pkt, sizeof(*pkt)); - rxe_loopback(skb); - err = 0; - } else { - err = rxe_send(pkt, skb); - } - - if (err) { - rxe->xmit_errors++; - rxe_counter_inc(rxe, RXE_CNT_SEND_ERR); - return err; - } - - if ((qp_type(qp) != IB_QPT_RC) && - (pkt->mask & RXE_END_MASK)) { - pkt->wqe->state = wqe_state_done; - rxe_run_task(&qp->comp.task, 1); - } - - rxe_counter_inc(rxe, RXE_CNT_SENT_PKTS); - goto done; - -drop: - kfree_skb(skb); - err = 0; -done: - return err; -} - #endif /* RXE_LOC_H */ diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c index dec92928a1cd..c93a379a1b28 100644 --- a/drivers/infiniband/sw/rxe/rxe_net.c +++ b/drivers/infiniband/sw/rxe/rxe_net.c @@ -421,6 +421,49 @@ void rxe_loopback(struct sk_buff *skb) rxe_rcv(skb); } +int rxe_xmit_packet(struct rxe_qp *qp, struct rxe_pkt_info *pkt, + struct sk_buff *skb) +{ + int err; + int is_request = pkt->mask & RXE_REQ_MASK; + struct rxe_dev *rxe = to_rdev(qp->ibqp.device); + + if ((is_request && (qp->req.state != QP_STATE_READY)) || + (!is_request && (qp->resp.state != QP_STATE_READY))) { + pr_info("Packet dropped. QP is not in ready state\n"); + goto drop; + } + + if (pkt->mask & RXE_LOOPBACK_MASK) { + memcpy(SKB_TO_PKT(skb), pkt, sizeof(*pkt)); + rxe_loopback(skb); + err = 0; + } else { + err = rxe_send(pkt, skb); + } + + if (err) { + rxe->xmit_errors++; + rxe_counter_inc(rxe, RXE_CNT_SEND_ERR); + return err; + } + + if ((qp_type(qp) != IB_QPT_RC) && + (pkt->mask & RXE_END_MASK)) { + pkt->wqe->state = wqe_state_done; + rxe_run_task(&qp->comp.task, 1); + } + + rxe_counter_inc(rxe, RXE_CNT_SENT_PKTS); + goto done; + +drop: + kfree_skb(skb); + err = 0; +done: + return err; +} + struct sk_buff *rxe_init_packet(struct rxe_dev *rxe, struct rxe_av *av, int paylen, struct rxe_pkt_info *pkt) {
rxe_xmit_packet() was an overlong inline subroutine. This patch moves it into rxe_net.c as an ordinary subroutine. Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com> --- drivers/infiniband/sw/rxe/rxe_loc.h | 45 ++--------------------------- drivers/infiniband/sw/rxe/rxe_net.c | 43 +++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 43 deletions(-)