Commit d3bef1e8 authored by Paolo Abeni's avatar Paolo Abeni Committed by Greg Kroah-Hartman

ip_tunnel: fix preempt warning in ip tunnel creation/updating

commit f27337e1 upstream.

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>
Cc: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e6454536
...@@ -327,12 +327,12 @@ static int ip_tunnel_bind_dev(struct net_device *dev) ...@@ -327,12 +327,12 @@ static int ip_tunnel_bind_dev(struct net_device *dev)
if (!IS_ERR(rt)) { if (!IS_ERR(rt)) {
tdev = rt->dst.dev; tdev = rt->dst.dev;
dst_cache_set_ip4(&tunnel->dst_cache, &rt->dst,
fl4.saddr);
ip_rt_put(rt); ip_rt_put(rt);
} }
if (dev->type != ARPHRD_ETHER) if (dev->type != ARPHRD_ETHER)
dev->flags |= IFF_POINTOPOINT; dev->flags |= IFF_POINTOPOINT;
dst_cache_reset(&tunnel->dst_cache);
} }
if (!tdev && tunnel->parms.link) if (!tdev && tunnel->parms.link)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment