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

Commit 15e47304 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by David S. Miller
Browse files

netlink: Rename pid to portid to avoid confusion



It is a frequent mistake to confuse the netlink port identifier with a
process identifier.  Try to reduce this confusion by renaming fields
that hold port identifiers portid instead of pid.

I have carefully avoided changing the structures exported to
userspace to avoid changing the userspace API.

I have successfully built an allyesconfig kernel with this change.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9f00d977
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -166,7 +166,7 @@ static int crypto_report_alg(struct crypto_alg *alg,
	struct crypto_user_alg *ualg;
	int err = 0;

	nlh = nlmsg_put(skb, NETLINK_CB(in_skb).pid, info->nlmsg_seq,
	nlh = nlmsg_put(skb, NETLINK_CB(in_skb).portid, info->nlmsg_seq,
			CRYPTO_MSG_GETALG, sizeof(*ualg), info->nlmsg_flags);
	if (!nlh) {
		err = -EMSGSIZE;
@@ -216,7 +216,7 @@ static int crypto_report(struct sk_buff *in_skb, struct nlmsghdr *in_nlh,
	if (err)
		return err;

	return nlmsg_unicast(crypto_nlsk, skb, NETLINK_CB(in_skb).pid);
	return nlmsg_unicast(crypto_nlsk, skb, NETLINK_CB(in_skb).portid);
}

static int crypto_dump_report(struct sk_buff *skb, struct netlink_callback *cb)
+19 −19
Original line number Diff line number Diff line
@@ -1886,7 +1886,7 @@ static int team_nl_cmd_noop(struct sk_buff *skb, struct genl_info *info)
	if (!msg)
		return -ENOMEM;

	hdr = genlmsg_put(msg, info->snd_pid, info->snd_seq,
	hdr = genlmsg_put(msg, info->snd_portid, info->snd_seq,
			  &team_nl_family, 0, TEAM_CMD_NOOP);
	if (IS_ERR(hdr)) {
		err = PTR_ERR(hdr);
@@ -1895,7 +1895,7 @@ static int team_nl_cmd_noop(struct sk_buff *skb, struct genl_info *info)

	genlmsg_end(msg, hdr);

	return genlmsg_unicast(genl_info_net(info), msg, info->snd_pid);
	return genlmsg_unicast(genl_info_net(info), msg, info->snd_portid);

err_msg_put:
	nlmsg_free(msg);
@@ -1952,7 +1952,7 @@ static int team_nl_send_generic(struct genl_info *info, struct team *team,
	if (err < 0)
		goto err_fill;

	err = genlmsg_unicast(genl_info_net(info), skb, info->snd_pid);
	err = genlmsg_unicast(genl_info_net(info), skb, info->snd_portid);
	return err;

err_fill:
@@ -1961,11 +1961,11 @@ static int team_nl_send_generic(struct genl_info *info, struct team *team,
}

typedef int team_nl_send_func_t(struct sk_buff *skb,
				struct team *team, u32 pid);
				struct team *team, u32 portid);

static int team_nl_send_unicast(struct sk_buff *skb, struct team *team, u32 pid)
static int team_nl_send_unicast(struct sk_buff *skb, struct team *team, u32 portid)
{
	return genlmsg_unicast(dev_net(team->dev), skb, pid);
	return genlmsg_unicast(dev_net(team->dev), skb, portid);
}

static int team_nl_fill_one_option_get(struct sk_buff *skb, struct team *team,
@@ -2050,13 +2050,13 @@ static int team_nl_fill_one_option_get(struct sk_buff *skb, struct team *team,
}

static int __send_and_alloc_skb(struct sk_buff **pskb,
				struct team *team, u32 pid,
				struct team *team, u32 portid,
				team_nl_send_func_t *send_func)
{
	int err;

	if (*pskb) {
		err = send_func(*pskb, team, pid);
		err = send_func(*pskb, team, portid);
		if (err)
			return err;
	}
@@ -2066,7 +2066,7 @@ static int __send_and_alloc_skb(struct sk_buff **pskb,
	return 0;
}

static int team_nl_send_options_get(struct team *team, u32 pid, u32 seq,
static int team_nl_send_options_get(struct team *team, u32 portid, u32 seq,
				    int flags, team_nl_send_func_t *send_func,
				    struct list_head *sel_opt_inst_list)
{
@@ -2083,11 +2083,11 @@ static int team_nl_send_options_get(struct team *team, u32 pid, u32 seq,
				    struct team_option_inst, tmp_list);

start_again:
	err = __send_and_alloc_skb(&skb, team, pid, send_func);
	err = __send_and_alloc_skb(&skb, team, portid, send_func);
	if (err)
		return err;

	hdr = genlmsg_put(skb, pid, seq, &team_nl_family, flags | NLM_F_MULTI,
	hdr = genlmsg_put(skb, portid, seq, &team_nl_family, flags | NLM_F_MULTI,
			  TEAM_CMD_OPTIONS_GET);
	if (IS_ERR(hdr))
		return PTR_ERR(hdr);
@@ -2120,15 +2120,15 @@ static int team_nl_send_options_get(struct team *team, u32 pid, u32 seq,
		goto start_again;

send_done:
	nlh = nlmsg_put(skb, pid, seq, NLMSG_DONE, 0, flags | NLM_F_MULTI);
	nlh = nlmsg_put(skb, portid, seq, NLMSG_DONE, 0, flags | NLM_F_MULTI);
	if (!nlh) {
		err = __send_and_alloc_skb(&skb, team, pid, send_func);
		err = __send_and_alloc_skb(&skb, team, portid, send_func);
		if (err)
			goto errout;
		goto send_done;
	}

	return send_func(skb, team, pid);
	return send_func(skb, team, portid);

nla_put_failure:
	err = -EMSGSIZE;
@@ -2151,7 +2151,7 @@ static int team_nl_cmd_options_get(struct sk_buff *skb, struct genl_info *info)

	list_for_each_entry(opt_inst, &team->option_inst_list, list)
		list_add_tail(&opt_inst->tmp_list, &sel_opt_inst_list);
	err = team_nl_send_options_get(team, info->snd_pid, info->snd_seq,
	err = team_nl_send_options_get(team, info->snd_portid, info->snd_seq,
				       NLM_F_ACK, team_nl_send_unicast,
				       &sel_opt_inst_list);

@@ -2305,7 +2305,7 @@ static int team_nl_cmd_options_set(struct sk_buff *skb, struct genl_info *info)
}

static int team_nl_fill_port_list_get(struct sk_buff *skb,
				      u32 pid, u32 seq, int flags,
				      u32 portid, u32 seq, int flags,
				      struct team *team,
				      bool fillall)
{
@@ -2313,7 +2313,7 @@ static int team_nl_fill_port_list_get(struct sk_buff *skb,
	void *hdr;
	struct team_port *port;

	hdr = genlmsg_put(skb, pid, seq, &team_nl_family, flags,
	hdr = genlmsg_put(skb, portid, seq, &team_nl_family, flags,
			  TEAM_CMD_PORT_LIST_GET);
	if (IS_ERR(hdr))
		return PTR_ERR(hdr);
@@ -2362,7 +2362,7 @@ static int team_nl_fill_port_list_get_all(struct sk_buff *skb,
					  struct genl_info *info, int flags,
					  struct team *team)
{
	return team_nl_fill_port_list_get(skb, info->snd_pid,
	return team_nl_fill_port_list_get(skb, info->snd_portid,
					  info->snd_seq, NLM_F_ACK,
					  team, true);
}
@@ -2415,7 +2415,7 @@ static struct genl_multicast_group team_change_event_mcgrp = {
};

static int team_nl_send_multicast(struct sk_buff *skb,
				  struct team *team, u32 pid)
				  struct team *team, u32 portid)
{
	return genlmsg_multicast_netns(dev_net(team->dev), skb, 0,
				       team_change_event_mcgrp.id, GFP_KERNEL);
+23 −23
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ MODULE_AUTHOR("Jouni Malinen");
MODULE_DESCRIPTION("Software simulator of 802.11 radio(s) for mac80211");
MODULE_LICENSE("GPL");

static u32 wmediumd_pid;
static u32 wmediumd_portid;

static int radios = 2;
module_param(radios, int, 0444);
@@ -545,7 +545,7 @@ static bool mac80211_hwsim_addr_match(struct mac80211_hwsim_data *data,

static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw,
				       struct sk_buff *my_skb,
				       int dst_pid)
				       int dst_portid)
{
	struct sk_buff *skb;
	struct mac80211_hwsim_data *data = hw->priv;
@@ -619,7 +619,7 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw,
		goto nla_put_failure;

	genlmsg_end(skb, msg_head);
	genlmsg_unicast(&init_net, skb, dst_pid);
	genlmsg_unicast(&init_net, skb, dst_portid);

	/* Enqueue the packet */
	skb_queue_tail(&data->pending, my_skb);
@@ -715,7 +715,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw,
{
	bool ack;
	struct ieee80211_tx_info *txi;
	u32 _pid;
	u32 _portid;

	mac80211_hwsim_monitor_rx(hw, skb);

@@ -726,10 +726,10 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw,
	}

	/* wmediumd mode check */
	_pid = ACCESS_ONCE(wmediumd_pid);
	_portid = ACCESS_ONCE(wmediumd_portid);

	if (_pid)
		return mac80211_hwsim_tx_frame_nl(hw, skb, _pid);
	if (_portid)
		return mac80211_hwsim_tx_frame_nl(hw, skb, _portid);

	/* NO wmediumd detected, perfect medium simulation */
	ack = mac80211_hwsim_tx_frame_no_nl(hw, skb);
@@ -814,7 +814,7 @@ static void mac80211_hwsim_beacon_tx(void *arg, u8 *mac,
	struct ieee80211_hw *hw = arg;
	struct sk_buff *skb;
	struct ieee80211_tx_info *info;
	u32 _pid;
	u32 _portid;

	hwsim_check_magic(vif);

@@ -831,10 +831,10 @@ static void mac80211_hwsim_beacon_tx(void *arg, u8 *mac,
	mac80211_hwsim_monitor_rx(hw, skb);

	/* wmediumd mode check */
	_pid = ACCESS_ONCE(wmediumd_pid);
	_portid = ACCESS_ONCE(wmediumd_portid);

	if (_pid)
		return mac80211_hwsim_tx_frame_nl(hw, skb, _pid);
	if (_portid)
		return mac80211_hwsim_tx_frame_nl(hw, skb, _portid);

	mac80211_hwsim_tx_frame_no_nl(hw, skb);
	dev_kfree_skb(skb);
@@ -1315,7 +1315,7 @@ static void hwsim_send_ps_poll(void *dat, u8 *mac, struct ieee80211_vif *vif)
	struct hwsim_vif_priv *vp = (void *)vif->drv_priv;
	struct sk_buff *skb;
	struct ieee80211_pspoll *pspoll;
	u32 _pid;
	u32 _portid;

	if (!vp->assoc)
		return;
@@ -1336,10 +1336,10 @@ static void hwsim_send_ps_poll(void *dat, u8 *mac, struct ieee80211_vif *vif)
	memcpy(pspoll->ta, mac, ETH_ALEN);

	/* wmediumd mode check */
	_pid = ACCESS_ONCE(wmediumd_pid);
	_portid = ACCESS_ONCE(wmediumd_portid);

	if (_pid)
		return mac80211_hwsim_tx_frame_nl(data->hw, skb, _pid);
	if (_portid)
		return mac80211_hwsim_tx_frame_nl(data->hw, skb, _portid);

	if (!mac80211_hwsim_tx_frame_no_nl(data->hw, skb))
		printk(KERN_DEBUG "%s: PS-poll frame not ack'ed\n", __func__);
@@ -1353,7 +1353,7 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac,
	struct hwsim_vif_priv *vp = (void *)vif->drv_priv;
	struct sk_buff *skb;
	struct ieee80211_hdr *hdr;
	u32 _pid;
	u32 _portid;

	if (!vp->assoc)
		return;
@@ -1375,10 +1375,10 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac,
	memcpy(hdr->addr3, vp->bssid, ETH_ALEN);

	/* wmediumd mode check */
	_pid = ACCESS_ONCE(wmediumd_pid);
	_portid = ACCESS_ONCE(wmediumd_portid);

	if (_pid)
		return mac80211_hwsim_tx_frame_nl(data->hw, skb, _pid);
	if (_portid)
		return mac80211_hwsim_tx_frame_nl(data->hw, skb, _portid);

	if (!mac80211_hwsim_tx_frame_no_nl(data->hw, skb))
		printk(KERN_DEBUG "%s: nullfunc frame not ack'ed\n", __func__);
@@ -1632,10 +1632,10 @@ static int hwsim_register_received_nl(struct sk_buff *skb_2,
	if (info == NULL)
		goto out;

	wmediumd_pid = info->snd_pid;
	wmediumd_portid = info->snd_portid;

	printk(KERN_DEBUG "mac80211_hwsim: received a REGISTER, "
	       "switching to wmediumd mode with pid %d\n", info->snd_pid);
	       "switching to wmediumd mode with pid %d\n", info->snd_portid);

	return 0;
out:
@@ -1672,10 +1672,10 @@ static int mac80211_hwsim_netlink_notify(struct notifier_block *nb,
	if (state != NETLINK_URELEASE)
		return NOTIFY_DONE;

	if (notify->pid == wmediumd_pid) {
	if (notify->portid == wmediumd_portid) {
		printk(KERN_INFO "mac80211_hwsim: wmediumd released netlink"
		       " socket, switching to perfect channel medium\n");
		wmediumd_pid = 0;
		wmediumd_portid = 0;
	}
	return NOTIFY_DONE;

+2 −2
Original line number Diff line number Diff line
@@ -2119,7 +2119,7 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, uint32_t *group)
	switch (nlh->nlmsg_type) {
	case ISCSI_UEVENT_CREATE_SESSION:
		err = iscsi_if_create_session(priv, ep, ev,
					      NETLINK_CB(skb).pid,
					      NETLINK_CB(skb).portid,
					      ev->u.c_session.initial_cmdsn,
					      ev->u.c_session.cmds_max,
					      ev->u.c_session.queue_depth);
@@ -2132,7 +2132,7 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, uint32_t *group)
		}

		err = iscsi_if_create_session(priv, ep, ev,
					NETLINK_CB(skb).pid,
					NETLINK_CB(skb).portid,
					ev->u.c_bound_session.initial_cmdsn,
					ev->u.c_bound_session.cmds_max,
					ev->u.c_bound_session.queue_depth);
+1 −1
Original line number Diff line number Diff line
@@ -135,7 +135,7 @@ int netlink_send(struct sock *sock, int group, u16 type, void *msg, int len)
	}
	memcpy(nlmsg_data(nlh), msg, len);

	NETLINK_CB(skb).pid = 0;
	NETLINK_CB(skb).portid = 0;
	NETLINK_CB(skb).dst_group = 0;

	ret = netlink_broadcast(sock, skb, 0, group+1, GFP_ATOMIC);
Loading