On Fri, Jul 30, 2021 at 6:01 AM Bob Pearson <rpearsonhpe@xxxxxxxxx> wrote: > > An earlier patch removed setting of tot_len in IPV4 headers because it > was also set in ip_local_out. However, this change resulted in an incorrect > ICRC being computed because the tot_len field is not masked out. This > patch restores that line. This fixes the bug reported by Zhu Yanjun. > This bug affects anyone using rxe which is currently broken. > > Fixes: 230bb836ee88 ("RDMA/rxe: Fix redundant call to ip_send_check") > Reported-by: Zhu Yanjun <zyjzyj2000@xxxxxxxxx> > Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> This commit is needed. Without this commit, on some different kernel versions, SoftRoCE can not connect to each other. Thanks a lot. Reviewed-and-tested-by: Zhu Yanjun <zyjzyj2000@xxxxxxxxx> Zhu Yanjun > --- > drivers/infiniband/sw/rxe/rxe_net.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c > index 10c13dfebcbc..2cb810cb890a 100644 > --- a/drivers/infiniband/sw/rxe/rxe_net.c > +++ b/drivers/infiniband/sw/rxe/rxe_net.c > @@ -259,6 +259,7 @@ static void prepare_ipv4_hdr(struct dst_entry *dst, struct sk_buff *skb, > > iph->version = IPVERSION; > iph->ihl = sizeof(struct iphdr) >> 2; > + iph->tot_len = htons(skb->len); > iph->frag_off = df; > iph->protocol = proto; > iph->tos = tos; > -- > 2.30.2 >