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: Ben Greear <greearb@candelatech.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
ad28757eef
commit
5cd8926bbf
@ -2023,7 +2023,7 @@ static int mac80211_hwsim_create_radio(int channels, const char *reg_alpha2,
|
|||||||
const struct ieee80211_regdomain *regd,
|
const struct ieee80211_regdomain *regd,
|
||||||
bool reg_strict, bool p2p_device,
|
bool reg_strict, bool p2p_device,
|
||||||
bool use_chanctx, bool destroy_on_close,
|
bool use_chanctx, bool destroy_on_close,
|
||||||
u32 portid)
|
u32 portid, const char *hwname)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 addr[ETH_ALEN];
|
u8 addr[ETH_ALEN];
|
||||||
@ -2042,7 +2042,7 @@ static int mac80211_hwsim_create_radio(int channels, const char *reg_alpha2,
|
|||||||
|
|
||||||
if (use_chanctx)
|
if (use_chanctx)
|
||||||
ops = &mac80211_hwsim_mchan_ops;
|
ops = &mac80211_hwsim_mchan_ops;
|
||||||
hw = ieee80211_alloc_hw(sizeof(*data), ops);
|
hw = ieee80211_alloc_hw_nm(sizeof(*data), ops, hwname);
|
||||||
if (!hw) {
|
if (!hw) {
|
||||||
printk(KERN_DEBUG "mac80211_hwsim: ieee80211_alloc_hw failed\n");
|
printk(KERN_DEBUG "mac80211_hwsim: ieee80211_alloc_hw failed\n");
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
@ -2516,10 +2516,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 p2p_device = info->attrs[HWSIM_ATTR_SUPPORT_P2P_DEVICE];
|
||||||
bool destroy_on_close = info->attrs[HWSIM_ATTR_DESTROY_RADIO_ON_CLOSE];
|
bool destroy_on_close = info->attrs[HWSIM_ATTR_DESTROY_RADIO_ON_CLOSE];
|
||||||
bool use_chanctx;
|
bool use_chanctx;
|
||||||
|
const char *hwname = NULL;
|
||||||
|
|
||||||
if (info->attrs[HWSIM_ATTR_CHANNELS])
|
if (info->attrs[HWSIM_ATTR_CHANNELS])
|
||||||
chans = nla_get_u32(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])
|
if (info->attrs[HWSIM_ATTR_USE_CHANCTX])
|
||||||
use_chanctx = true;
|
use_chanctx = true;
|
||||||
else
|
else
|
||||||
@ -2538,7 +2542,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,
|
return mac80211_hwsim_create_radio(chans, alpha2, regd, reg_strict,
|
||||||
p2p_device, use_chanctx,
|
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)
|
static int hwsim_destroy_radio_nl(struct sk_buff *msg, struct genl_info *info)
|
||||||
@ -2794,7 +2799,7 @@ static int __init init_mac80211_hwsim(void)
|
|||||||
err = mac80211_hwsim_create_radio(channels, reg_alpha2,
|
err = mac80211_hwsim_create_radio(channels, reg_alpha2,
|
||||||
regd, reg_strict,
|
regd, reg_strict,
|
||||||
support_p2p_device,
|
support_p2p_device,
|
||||||
channels > 1, false, 0);
|
channels > 1, false, 0, NULL);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out_free_radios;
|
goto out_free_radios;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user