Skip to contentSkip to conversation

gro: refetch inet6_protos[] after pulling ext headers

PATCH Applied Yan, Zheng 3 participants 3 messages Oct 9, 2011 – Oct 10, 2011

Subsystems (2)
lore
Share & tools
lore

Yan, Zheng

author
#0 lore raw

PATCH 1/1 gro: refetch inet6_protos[] after pulling ext headers

ipv6_gro_receive() doesn't update the protocol ops after pulling the ext headers. It looks like a typo.

---

net/ipv6/af_inet6.c +1 -0
index 3b5669a..d27c797 100644
@@ -875,6 +875,7 @@ static struct sk_buff **ipv6_gro_receive(struct sk_buff **head,
 		skb_reset_transport_header(skb);
 		__skb_push(skb, skb_gro_offset(skb));
 
+		ops = rcu_dereference(inet6_protos[proto]);
 		if (!ops || !ops->gro_receive)
 			goto out_unlock;
 
Acked-by on v1 1/1
#1 lore raw
Quoted 10 lines · Zheng

ipv6_gro_receive() doesn't update the protocol ops after pulling the ext headers. It looks like a typo.

---

net/ipv6/af_inet6.c +0 -0
index 3b5669a..d27c797 100644

net/ipv6/af_inet6.c static struct sk_buff **ipv6_gro_receive(struct sk_buff **head, · line 880

Quoted 6 lines
net/ipv6/af_inet6.c +1 -0
@@ -875,6 +875,7 @@ static struct sk_buff **ipv6_gro_receive(struct sk_buff **head,
 		skb_reset_transport_header(skb);
 		__skb_push(skb, skb_gro_offset(skb));
 
+		ops = rcu_dereference(inet6_protos[proto]);
 		if (!ops || !ops->gro_receive)
 			goto out_unlock;

Good catch !