Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f27337e1 authored by Paolo Abeni's avatar Paolo Abeni Committed by David S. Miller
Browse files

ip_tunnel: fix preempt warning in ip tunnel creation/updating



After the commit e09acddf ("ip_tunnel: replace dst_cache with generic
implementation"), a preemption debug warning is triggered on ip4
tunnels updating; the dst cache helper needs to be invoked in unpreemptible
context.

We don't need to load the cache on tunnel update, so this commit fixes
the warning replacing the load with a dst cache reset, which is
preempt safe.

Fixes: e09acddf ("ip_tunnel: replace dst_cache with generic implementation")
Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Acked-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1dfcd832
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -326,12 +326,12 @@ static int ip_tunnel_bind_dev(struct net_device *dev)

		if (!IS_ERR(rt)) {
			tdev = rt->dst.dev;
			dst_cache_set_ip4(&tunnel->dst_cache, &rt->dst,
					  fl4.saddr);
			ip_rt_put(rt);
		}
		if (dev->type != ARPHRD_ETHER)
			dev->flags |= IFF_POINTOPOINT;

		dst_cache_reset(&tunnel->dst_cache);
	}

	if (!tdev && tunnel->parms.link)