Skip to content

Commit dde4d70

Browse files
committed
xfrm: set dst dev to blackhole_netdev instead of loopback_dev in ifdown
jira LE-3201 Rebuild_History Non-Buildable kernel-rt-4.18.0-553.27.1.rt7.368.el8_10 commit-author Xin Long <lucien.xin@gmail.com> commit 4d33ab0 The global blackhole_netdev has replaced pernet loopback_dev to become the one given to the object that holds an netdev when ifdown in many places of ipv4 and ipv6 since commit 8d7017f ("blackhole_netdev: use blackhole_netdev to invalidate dst entries"). Especially after commit faab39f ("net: allow out-of-order netdev unregistration"), it's no longer safe to use loopback_dev that may be freed before other netdev. This patch is to set dst dev to blackhole_netdev instead of loopback_dev in ifdown. v1->v2: - add Fixes tag as Eric suggested. Fixes: faab39f ("net: allow out-of-order netdev unregistration") Signed-off-by: Xin Long <lucien.xin@gmail.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://lore.kernel.org/r/e8c87482998ca6fcdab214f5a9d582899ec0c648.1652665047.git.lucien.xin@gmail.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> (cherry picked from commit 4d33ab0) Signed-off-by: Jonathan Maple <jmaple@ciq.com>
1 parent 95a757a commit dde4d70

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

net/xfrm/xfrm_policy.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3552,7 +3552,7 @@ static int stale_bundle(struct dst_entry *dst)
35523552
void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev)
35533553
{
35543554
while ((dst = xfrm_dst_child(dst)) && dst->xfrm && dst->dev == dev) {
3555-
dst->dev = dev_net(dev)->loopback_dev;
3555+
dst->dev = blackhole_netdev;
35563556
dev_hold(dst->dev);
35573557
dev_put(dev);
35583558
}

0 commit comments

Comments
 (0)