Re: [PATCH] net: ethernet: use ip_hdrlen() instead of bit shift
From: Christophe JAILLET <hidden>
Date: 2024-08-02 14:09:22
Also in:
lkml
Le 02/08/2024 à 07:44, Moon Yeounsu a écrit :
`ip_hdr(skb)->ihl << 2` are the same as `ip_hdrlen(skb)` Therefore, we should use a well-defined function not a bit shift to find the header length. It also compress two lines at a single line. Signed-off-by: Moon Yeounsu <redacted> --- drivers/net/ethernet/jme.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
Hi,
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c index b06e24562973..83b185c995df 100644 --- a/drivers/net/ethernet/jme.c +++ b/drivers/net/ethernet/jme.c@@ -946,15 +946,13 @@ jme_udpsum(struct sk_buff *skb) if (skb->protocol != htons(ETH_P_IP)) return csum; skb_set_network_header(skb, ETH_HLEN); + if ((ip_hdr(skb)->protocol != IPPROTO_UDP) || - (skb->len < (ETH_HLEN + - (ip_hdr(skb)->ihl << 2) + - sizeof(struct udphdr)))) { + (skb->len < (ETH_HLEN + (ip_hdrlen(skb)) + sizeof(struct udphdr)))) {
The extra () around "ip_hdrlen(skb)" can be remove. Also maybe the ones around "ETH_HLEN + ip_hdrlen(skb)" could also be removed.
skb_reset_network_header(skb); return csum; } - skb_set_transport_header(skb, - ETH_HLEN + (ip_hdr(skb)->ihl << 2)); + skb_set_transport_header(skb, ETH_HLEN + (ip_hdrlen(skb)));
Same here, the extra () around "ip_hdrlen(skb)" can be remove. CJ
csum = udp_hdr(skb)->check; skb_reset_transport_header(skb); skb_reset_network_header(skb);