netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] ip_tunnel: fix preempt warning in ip tunnel creation/updating
@ 2016-04-28  9:04 Paolo Abeni
  2016-04-28 12:09 ` Eric Dumazet
  2016-04-29 18:11 ` David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: Paolo Abeni @ 2016-04-28  9:04 UTC (permalink / raw)
  To: netdev
  Cc: David S. Miller, Alexey Kuznetsov, tgraf, pshelar, jbenc, hannes,
	sergei.shtylyov, Tom Herbert, Eric Dumazet

After the commit e09acddf873b ("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: e09acddf873b ("ip_tunnel: replace dst_cache with generic
implementation")

Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
 net/ipv4/ip_tunnel.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c
index 6aad019..a69ed94 100644
--- a/net/ipv4/ip_tunnel.c
+++ b/net/ipv4/ip_tunnel.c
@@ -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)
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-04-29 18:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-28  9:04 [PATCH net] ip_tunnel: fix preempt warning in ip tunnel creation/updating Paolo Abeni
2016-04-28 12:09 ` Eric Dumazet
2016-04-28 14:11   ` Paolo Abeni
2016-04-29 18:11 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).