[ovs-dev] [PATCHv2] datapath: Release rtnl_lock if ovs_vport_cmd_build_info() failed

Ansis Atteka aatteka at nicira.com
Thu May 3 21:29:22 UTC 2012


This patch fixes a possible lock-up bug where rtnl_lock might not
get released.

Signed-off-by: Ansis Atteka <aatteka at nicira.com>
---
 datapath/datapath.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/datapath/datapath.c b/datapath/datapath.c
index 079b3f2..63713d8 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -1891,10 +1891,9 @@ static int ovs_vport_cmd_set(struct sk_buff *skb, struct genl_info *info)
 	reply = ovs_vport_cmd_build_info(vport, info->snd_pid, info->snd_seq,
 					 OVS_VPORT_CMD_NEW);
 	if (IS_ERR(reply)) {
-		err = PTR_ERR(reply);
 		netlink_set_err(GENL_SOCK(sock_net(skb->sk)), 0,
-				ovs_dp_vport_multicast_group.id, err);
-		return 0;
+				ovs_dp_vport_multicast_group.id, PTR_ERR(reply));
+		goto exit_unlock;
 	}
 
 	genl_notify(reply, genl_info_net(info), info->snd_pid,
-- 
1.7.9.5




More information about the dev mailing list