Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed661185 authored by Thomas Graf's avatar Thomas Graf Committed by Jesse Gross
Browse files

openvswitch: Move common genl notify code into ovs_notify()



Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
Signed-off-by: default avatarJesse Gross <jesse@nicira.com>
parent c3ff8cfe
Loading
Loading
Loading
Loading
+16 −20
Original line number Diff line number Diff line
@@ -71,6 +71,13 @@ static int ovs_net_id __read_mostly;
static void rehash_flow_table(struct work_struct *work);
static DECLARE_DELAYED_WORK(rehash_flow_wq, rehash_flow_table);

static void ovs_notify(struct sk_buff *skb, struct genl_info *info,
		       struct genl_multicast_group *grp)
{
	genl_notify(skb, genl_info_net(info), info->snd_portid,
		    grp->id, info->nlhdr, GFP_KERNEL);
}

/**
 * DOC: Locking:
 *
@@ -1061,9 +1068,7 @@ static int ovs_flow_cmd_new_or_set(struct sk_buff *skb, struct genl_info *info)
	}

	if (!IS_ERR(reply))
		genl_notify(reply, genl_info_net(info), info->snd_portid,
			   ovs_dp_flow_multicast_group.id, info->nlhdr,
			   GFP_KERNEL);
		ovs_notify(reply, info, &ovs_dp_flow_multicast_group);
	else
		netlink_set_err(sock_net(skb->sk)->genl_sock, 0,
				ovs_dp_flow_multicast_group.id, PTR_ERR(reply));
@@ -1150,8 +1155,7 @@ static int ovs_flow_cmd_del(struct sk_buff *skb, struct genl_info *info)

	ovs_flow_deferred_free(flow);

	genl_notify(reply, genl_info_net(info), info->snd_portid,
		    ovs_dp_flow_multicast_group.id, info->nlhdr, GFP_KERNEL);
	ovs_notify(reply, info, &ovs_dp_flow_multicast_group);
	return 0;
}

@@ -1383,9 +1387,7 @@ static int ovs_dp_cmd_new(struct sk_buff *skb, struct genl_info *info)
	list_add_tail(&dp->list_node, &ovs_net->dps);
	rtnl_unlock();

	genl_notify(reply, genl_info_net(info), info->snd_portid,
		    ovs_dp_datapath_multicast_group.id, info->nlhdr,
		    GFP_KERNEL);
	ovs_notify(reply, info, &ovs_dp_datapath_multicast_group);
	return 0;

err_destroy_local_port:
@@ -1453,9 +1455,7 @@ static int ovs_dp_cmd_del(struct sk_buff *skb, struct genl_info *info)

	__dp_destroy(dp);

	genl_notify(reply, genl_info_net(info), info->snd_portid,
		    ovs_dp_datapath_multicast_group.id, info->nlhdr,
		    GFP_KERNEL);
	ovs_notify(reply, info, &ovs_dp_datapath_multicast_group);

	return 0;
}
@@ -1479,9 +1479,7 @@ static int ovs_dp_cmd_set(struct sk_buff *skb, struct genl_info *info)
		return 0;
	}

	genl_notify(reply, genl_info_net(info), info->snd_portid,
		    ovs_dp_datapath_multicast_group.id, info->nlhdr,
		    GFP_KERNEL);
	ovs_notify(reply, info, &ovs_dp_datapath_multicast_group);

	return 0;
}
@@ -1727,8 +1725,8 @@ static int ovs_vport_cmd_new(struct sk_buff *skb, struct genl_info *info)
		ovs_dp_detach_port(vport);
		goto exit_unlock;
	}
	genl_notify(reply, genl_info_net(info), info->snd_portid,
		    ovs_dp_vport_multicast_group.id, info->nlhdr, GFP_KERNEL);

	ovs_notify(reply, info, &ovs_dp_vport_multicast_group);

exit_unlock:
	rtnl_unlock();
@@ -1769,8 +1767,7 @@ static int ovs_vport_cmd_set(struct sk_buff *skb, struct genl_info *info)
		goto exit_unlock;
	}

	genl_notify(reply, genl_info_net(info), info->snd_portid,
		    ovs_dp_vport_multicast_group.id, info->nlhdr, GFP_KERNEL);
	ovs_notify(reply, info, &ovs_dp_vport_multicast_group);

exit_unlock:
	rtnl_unlock();
@@ -1804,8 +1801,7 @@ static int ovs_vport_cmd_del(struct sk_buff *skb, struct genl_info *info)
	err = 0;
	ovs_dp_detach_port(vport);

	genl_notify(reply, genl_info_net(info), info->snd_portid,
		    ovs_dp_vport_multicast_group.id, info->nlhdr, GFP_KERNEL);
	ovs_notify(reply, info, &ovs_dp_vport_multicast_group);

exit_unlock:
	rtnl_unlock();