Skip to content

Commit 9b49f57

Browse files
edumazetkuba-moo
authored andcommitted
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 <[email protected]> Reviewed-by: Kuniyuki Iwashima <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent e7b9ecc commit 9b49f57

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

net/ipv4/tcp_offload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ static void tcp4_check_fraglist_gro(struct list_head *head, struct sk_buff *skb,
425425

426426
inet_get_iif_sdif(skb, &iif, &sdif);
427427
iph = skb_gro_network_header(skb);
428-
net = dev_net(skb->dev);
428+
net = dev_net_rcu(skb->dev);
429429
sk = __inet_lookup_established(net, net->ipv4.tcp_death_row.hashinfo,
430430
iph->saddr, th->source,
431431
iph->daddr, ntohs(th->dest),

net/ipv4/udp_offload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ static struct sock *udp4_gro_lookup_skb(struct sk_buff *skb, __be16 sport,
630630
__be16 dport)
631631
{
632632
const struct iphdr *iph = skb_gro_network_header(skb);
633-
struct net *net = dev_net(skb->dev);
633+
struct net *net = dev_net_rcu(skb->dev);
634634
int iif, sdif;
635635

636636
inet_get_iif_sdif(skb, &iif, &sdif);

net/ipv6/tcpv6_offload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ static void tcp6_check_fraglist_gro(struct list_head *head, struct sk_buff *skb,
3535

3636
inet6_get_iif_sdif(skb, &iif, &sdif);
3737
hdr = skb_gro_network_header(skb);
38-
net = dev_net(skb->dev);
38+
net = dev_net_rcu(skb->dev);
3939
sk = __inet6_lookup_established(net, net->ipv4.tcp_death_row.hashinfo,
4040
&hdr->saddr, th->source,
4141
&hdr->daddr, ntohs(th->dest),

net/ipv6/udp_offload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ static struct sock *udp6_gro_lookup_skb(struct sk_buff *skb, __be16 sport,
117117
__be16 dport)
118118
{
119119
const struct ipv6hdr *iph = skb_gro_network_header(skb);
120-
struct net *net = dev_net(skb->dev);
120+
struct net *net = dev_net_rcu(skb->dev);
121121
int iif, sdif;
122122

123123
inet6_get_iif_sdif(skb, &iif, &sdif);

0 commit comments

Comments
 (0)