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

Commit 7a919984 authored by Ben Greear's avatar Ben Greear Committed by Alistair Strachan
Browse files

UPSTREAM: mac80211-hwsim: support creating radios with specific name



Otherwise, it can be very difficult to know which is which
if you are trying to do detailed testing.

Signed-off-by: default avatarBen Greear <greearb@candelatech.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
(cherry picked from commit 5cd8926bbf47ee0eb51a266bd9614dd3f93c004f)
Bug: 70214720
Change-Id: I19bb7e53fe4ab58916f368d60c4b1adcbf11cc19
Signed-off-by: default avatarAlistair Strachan <astrachan@google.com>
parent 3a0284c2
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -1952,7 +1952,7 @@ static int mac80211_hwsim_create_radio(int channels, const char *reg_alpha2,
				       const struct ieee80211_regdomain *regd,
				       bool reg_strict, bool p2p_device,
				       bool use_chanctx, bool destroy_on_close,
				       u32 portid)
				       u32 portid, const char *hwname)
{
	int err;
	u8 addr[ETH_ALEN];
@@ -1971,7 +1971,7 @@ static int mac80211_hwsim_create_radio(int channels, const char *reg_alpha2,

	if (use_chanctx)
		ops = &mac80211_hwsim_mchan_ops;
	hw = ieee80211_alloc_hw(sizeof(*data), ops);
	hw = ieee80211_alloc_hw_nm(sizeof(*data), ops, hwname);
	if (!hw) {
		printk(KERN_DEBUG "mac80211_hwsim: ieee80211_alloc_hw failed\n");
		err = -ENOMEM;
@@ -2447,10 +2447,14 @@ static int hwsim_create_radio_nl(struct sk_buff *msg, struct genl_info *info)
	bool p2p_device = info->attrs[HWSIM_ATTR_SUPPORT_P2P_DEVICE];
	bool destroy_on_close = info->attrs[HWSIM_ATTR_DESTROY_RADIO_ON_CLOSE];
	bool use_chanctx;
	const char *hwname = NULL;

	if (info->attrs[HWSIM_ATTR_CHANNELS])
		chans = nla_get_u32(info->attrs[HWSIM_ATTR_CHANNELS]);

	if (info->attrs[HWSIM_ATTR_RADIO_NAME])
		hwname = nla_data(info->attrs[HWSIM_ATTR_RADIO_NAME]);

	if (info->attrs[HWSIM_ATTR_USE_CHANCTX])
		use_chanctx = true;
	else
@@ -2469,7 +2473,8 @@ static int hwsim_create_radio_nl(struct sk_buff *msg, struct genl_info *info)

	return mac80211_hwsim_create_radio(chans, alpha2, regd, reg_strict,
					   p2p_device, use_chanctx,
					   destroy_on_close, info->snd_portid);
					   destroy_on_close, info->snd_portid,
					   hwname);
}

static int hwsim_destroy_radio_nl(struct sk_buff *msg, struct genl_info *info)
@@ -2725,7 +2730,7 @@ static int __init init_mac80211_hwsim(void)
		err = mac80211_hwsim_create_radio(channels, reg_alpha2,
						  regd, reg_strict,
						  support_p2p_device,
						  channels > 1, false, 0);
						  channels > 1, false, 0, NULL);
		if (err < 0)
			goto out_free_radios;
	}