RDMA/rxe: Fix redundant call to ip_send_check
authorBob Pearson <rpearsonhpe@gmail.com>
Fri, 18 Jun 2021 04:57:39 +0000 (23:57 -0500)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 22 Jun 2021 18:38:52 +0000 (15:38 -0300)
For IPV4 packets sent on the wire the rxe driver calls ip_local_out()
which immediately calls __ip_local_out() which sets iph->tot_len and calls
ip_send_check(). This code is duplicated in prepare4(). On the loopback
path the IP header checksum and tot_len fields are not used so they do not
need to be set.

Remove this redundant code.

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Link: https://lore.kernel.org/r/20210618045742.204195-3-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_net.c

index fc1ba49..c4350ce 100644 (file)
@@ -267,8 +267,6 @@ static void prepare_ipv4_hdr(struct dst_entry *dst, struct sk_buff *skb,
        iph->ttl        =       ttl;
        __ip_select_ident(dev_net(dst->dev), iph,
                          skb_shinfo(skb)->gso_segs ?: 1);
-       iph->tot_len = htons(skb->len);
-       ip_send_check(iph);
 }
 
 static void prepare_ipv6_hdr(struct dst_entry *dst, struct sk_buff *skb,