mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-04-13 09:59:31 +00:00
net: gro: convert four dev_net() calls
tcp4_check_fraglist_gro(), tcp6_check_fraglist_gro(), udp4_gro_lookup_skb() and udp6_gro_lookup_skb() assume RCU is held so that the net structure does not disappear. Use dev_net_rcu() instead of dev_net() to get LOCKDEP support. Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> Link: https://patch.msgid.link/20250301201424.2046477-5-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
e7b9ecce56
commit
9b49f57ccd
4 changed files with 4 additions and 4 deletions
|
@ -425,7 +425,7 @@ static void tcp4_check_fraglist_gro(struct list_head *head, struct sk_buff *skb,
|
|||
|
||||
inet_get_iif_sdif(skb, &iif, &sdif);
|
||||
iph = skb_gro_network_header(skb);
|
||||
net = dev_net(skb->dev);
|
||||
net = dev_net_rcu(skb->dev);
|
||||
sk = __inet_lookup_established(net, net->ipv4.tcp_death_row.hashinfo,
|
||||
iph->saddr, th->source,
|
||||
iph->daddr, ntohs(th->dest),
|
||||
|
|
|
@ -630,7 +630,7 @@ static struct sock *udp4_gro_lookup_skb(struct sk_buff *skb, __be16 sport,
|
|||
__be16 dport)
|
||||
{
|
||||
const struct iphdr *iph = skb_gro_network_header(skb);
|
||||
struct net *net = dev_net(skb->dev);
|
||||
struct net *net = dev_net_rcu(skb->dev);
|
||||
int iif, sdif;
|
||||
|
||||
inet_get_iif_sdif(skb, &iif, &sdif);
|
||||
|
|
|
@ -35,7 +35,7 @@ static void tcp6_check_fraglist_gro(struct list_head *head, struct sk_buff *skb,
|
|||
|
||||
inet6_get_iif_sdif(skb, &iif, &sdif);
|
||||
hdr = skb_gro_network_header(skb);
|
||||
net = dev_net(skb->dev);
|
||||
net = dev_net_rcu(skb->dev);
|
||||
sk = __inet6_lookup_established(net, net->ipv4.tcp_death_row.hashinfo,
|
||||
&hdr->saddr, th->source,
|
||||
&hdr->daddr, ntohs(th->dest),
|
||||
|
|
|
@ -117,7 +117,7 @@ static struct sock *udp6_gro_lookup_skb(struct sk_buff *skb, __be16 sport,
|
|||
__be16 dport)
|
||||
{
|
||||
const struct ipv6hdr *iph = skb_gro_network_header(skb);
|
||||
struct net *net = dev_net(skb->dev);
|
||||
struct net *net = dev_net_rcu(skb->dev);
|
||||
int iif, sdif;
|
||||
|
||||
inet6_get_iif_sdif(skb, &iif, &sdif);
|
||||
|
|
Loading…
Add table
Reference in a new issue