On Fri, Jun 18, 2021 at 1:00 PM Bob Pearson <rpearsonhpe@xxxxxxxxx> wrote: > > rxe_init_packet() in rxe_net.c calls skb_put_zero() to reserve space > for the payload and zero it out. All these bytes are then re-written > with RoCE headers and payload. Remove this useless extra copy. The paylen seems to be a variable, that is, the length of pkt->hdr is not fixed. Can you confirm that all the pkt->hdr are re-writtenwith RoCE headers and payload? Zhu Yanjun > > Fixes: ecb238f6a7f3 ("IB/cxgb4: use skb_put_zero()/__skb_put_zero") > Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> > --- > drivers/infiniband/sw/rxe/rxe_net.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c > index 178a66a45312..6605ee777667 100644 > --- a/drivers/infiniband/sw/rxe/rxe_net.c > +++ b/drivers/infiniband/sw/rxe/rxe_net.c > @@ -470,7 +470,7 @@ struct sk_buff *rxe_init_packet(struct rxe_dev *rxe, struct rxe_av *av, > > pkt->rxe = rxe; > pkt->port_num = port_num; > - pkt->hdr = skb_put_zero(skb, paylen); > + pkt->hdr = skb_put(skb, paylen); > pkt->mask |= RXE_GRH_MASK; > > out: > -- > 2.30.2 >