datapath: Fix tunnel reconfiguration that does not change key data.
[openvswitch] / datapath / datapath.c
index b3e24427c357c7952a1f28b2813161af54f7a2b4..cd29482c508eb50c042f1484d33651ef2ce55fa4 100644 (file)
@@ -1751,7 +1751,9 @@ static int ovs_vport_cmd_set(struct sk_buff *skb, struct genl_info *info)
                goto exit_unlock;
 
        err = 0;
-       if (a[OVS_VPORT_ATTR_OPTIONS])
+       if (a[OVS_VPORT_ATTR_TYPE] && nla_get_u32(a[OVS_VPORT_ATTR_TYPE]) != vport_get_type(vport))
+               err = -EINVAL;
+       if (!err && a[OVS_VPORT_ATTR_OPTIONS])
                err = vport_set_options(vport, a[OVS_VPORT_ATTR_OPTIONS]);
        if (!err)
                err = change_vport(vport, a);