From b1184a78452e7160db81e379783cd18937866382 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 17 Oct 2011 11:32:23 -0700 Subject: [PATCH] datapath: Fix tunnel reconfiguration that does not change key data. Without this commit, a pair of commands like ovs-dpctl add-if br0 gre0,type=gre,remote_ip=192.168.5.2,csum=true ovs-dpctl set-if br0 gre0,csum=false would result in a csum of "true" for gre0, that is, the second command would silently have no effect. This could also happen when the key data (such as remote_ip) changed but the port hash just happened to have the same value. This also fixes a small kernel memory leak in this case. An upcoming commit implements the "ovs-dpctl set-if" command mentioned above. Signed-off-by: Ben Pfaff Acked-by: Jesse Gross --- datapath/tunnel.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/datapath/tunnel.c b/datapath/tunnel.c index 38004e9e..8edff069 100644 --- a/datapath/tunnel.c +++ b/datapath/tunnel.c @@ -1408,6 +1408,8 @@ int tnl_set_options(struct vport *vport, struct nlattr *options) if (port_hash(&mutable->key) != port_hash(&old_mutable->key)) port_table_move_port(vport, mutable); + else + assign_config_rcu(vport, mutable); return 0; -- 2.30.2