Skip to content

Commit 7441e2c

Browse files
committed
Merge: ipv4: backports from upstream
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/6131 ``` JIRA: https://issues.redhat.com/browse/RHEL-73391 Upstream Status: linux.git Signed-off-by: Guillaume Nault <gnault@redhat.com> ``` Approved-by: Sabrina Dubroca <sdubroca@redhat.com> Approved-by: Xin Long <lxin@redhat.com> Approved-by: Hangbin Liu <haliu@redhat.com> Approved-by: Paolo Abeni <pabeni@redhat.com> Approved-by: Davide Caratti <dcaratti@redhat.com> Approved-by: Michal Schmidt <mschmidt@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Patrick Talbert <ptalbert@redhat.com>
2 parents e1bbc25 + 62cbbf8 commit 7441e2c

File tree

3 files changed

+29
-15
lines changed

3 files changed

+29
-15
lines changed

drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,7 @@ mlxsw_sp_span_gretap4_route(const struct net_device *to_dev,
423423

424424
parms = mlxsw_sp_ipip_netdev_parms4(to_dev);
425425
ip_tunnel_init_flow(&fl4, parms.iph.protocol, *daddrp, *saddrp,
426-
0, 0, dev_net(to_dev), parms.link, tun->fwmark, 0,
427-
0);
426+
0, 0, tun->net, parms.link, tun->fwmark, 0, 0);
428427

429428
rt = ip_route_output_key(tun->net, &fl4);
430429
if (IS_ERR(rt))

net/ipv4/devinet.c

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -273,17 +273,19 @@ static struct in_device *inetdev_init(struct net_device *dev)
273273
/* Account for reference dev->ip_ptr (below) */
274274
refcount_set(&in_dev->refcnt, 1);
275275

276-
err = devinet_sysctl_register(in_dev);
277-
if (err) {
278-
in_dev->dead = 1;
279-
neigh_parms_release(&arp_tbl, in_dev->arp_parms);
280-
in_dev_put(in_dev);
281-
in_dev = NULL;
282-
goto out;
276+
if (dev != blackhole_netdev) {
277+
err = devinet_sysctl_register(in_dev);
278+
if (err) {
279+
in_dev->dead = 1;
280+
neigh_parms_release(&arp_tbl, in_dev->arp_parms);
281+
in_dev_put(in_dev);
282+
in_dev = NULL;
283+
goto out;
284+
}
285+
ip_mc_init_dev(in_dev);
286+
if (dev->flags & IFF_UP)
287+
ip_mc_up(in_dev);
283288
}
284-
ip_mc_init_dev(in_dev);
285-
if (dev->flags & IFF_UP)
286-
ip_mc_up(in_dev);
287289

288290
/* we can receive as soon as ip_ptr is set -- do this last */
289291
rcu_assign_pointer(dev->ip_ptr, in_dev);
@@ -328,6 +330,19 @@ static void inetdev_destroy(struct in_device *in_dev)
328330
call_rcu(&in_dev->rcu_head, in_dev_rcu_put);
329331
}
330332

333+
static int __init inet_blackhole_dev_init(void)
334+
{
335+
int err = 0;
336+
337+
rtnl_lock();
338+
if (!inetdev_init(blackhole_netdev))
339+
err = -ENOMEM;
340+
rtnl_unlock();
341+
342+
return err;
343+
}
344+
late_initcall(inet_blackhole_dev_init);
345+
331346
int inet_addr_onlink(struct in_device *in_dev, __be32 a, __be32 b)
332347
{
333348
const struct in_ifaddr *ifa;

net/ipv4/ip_tunnel.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ static int ip_tunnel_bind_dev(struct net_device *dev)
293293

294294
ip_tunnel_init_flow(&fl4, iph->protocol, iph->daddr,
295295
iph->saddr, tunnel->parms.o_key,
296-
RT_TOS(iph->tos), dev_net(dev),
296+
RT_TOS(iph->tos), tunnel->net,
297297
tunnel->parms.link, tunnel->fwmark, 0, 0);
298298
rt = ip_route_output_key(tunnel->net, &fl4);
299299

@@ -596,7 +596,7 @@ void ip_md_tunnel_xmit(struct sk_buff *skb, struct net_device *dev,
596596
}
597597
ip_tunnel_init_flow(&fl4, proto, key->u.ipv4.dst, key->u.ipv4.src,
598598
tunnel_id_to_key32(key->tun_id), RT_TOS(tos),
599-
dev_net(dev), 0, skb->mark, skb_get_hash(skb),
599+
tunnel->net, 0, skb->mark, skb_get_hash(skb),
600600
key->flow_flags);
601601
if (tunnel->encap.type != TUNNEL_ENCAP_NONE)
602602
goto tx_error;
@@ -755,7 +755,7 @@ void ip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev,
755755

756756
ip_tunnel_init_flow(&fl4, protocol, dst, tnl_params->saddr,
757757
tunnel->parms.o_key, RT_TOS(tos),
758-
dev_net(dev), READ_ONCE(tunnel->parms.link),
758+
tunnel->net, READ_ONCE(tunnel->parms.link),
759759
tunnel->fwmark, skb_get_hash(skb), 0);
760760

761761
if (ip_tunnel_encap(skb, tunnel, &protocol, &fl4) < 0)

0 commit comments

Comments
 (0)