Commit 4c76bf69 authored by Tonghao Zhang's avatar Tonghao Zhang Committed by David S. Miller
Browse files

net: openvswitch: don't unlock mutex when changing the user_features fails



Unlocking of a not locked mutex is not allowed.
Other kernel thread may be in critical section while
we unlock it because of setting user_feature fail.

Fixes: 95a7233c ("net: openvswitch: Set OvS recirc_id from tc chain index")
Cc: Paul Blakey <paulb@mellanox.com>
Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
Tested-by: default avatarGreg Rose <gvrose8192@gmail.com>
Acked-by: default avatarWilliam Tu <u9012063@gmail.com>
Acked-by: default avatarPravin B Shelar <pshelar@ovn.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 50b0e61b
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1657,6 +1657,7 @@ static int ovs_dp_cmd_new(struct sk_buff *skb, struct genl_info *info)
				ovs_dp_reset_user_features(skb, info);
				ovs_dp_reset_user_features(skb, info);
		}
		}


		ovs_unlock();
		goto err_destroy_meters;
		goto err_destroy_meters;
	}
	}


@@ -1673,7 +1674,6 @@ static int ovs_dp_cmd_new(struct sk_buff *skb, struct genl_info *info)
	return 0;
	return 0;


err_destroy_meters:
err_destroy_meters:
	ovs_unlock();
	ovs_meters_exit(dp);
	ovs_meters_exit(dp);
err_destroy_ports_array:
err_destroy_ports_array:
	kfree(dp->ports);
	kfree(dp->ports);