@@ -2018,7 +2018,7 @@ static struct ieee80211_ops mac80211_hwsim_mchan_ops;
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 use_chanctx, char* hwname)
{
int err;
u8 addr[ETH_ALEN];
@@ -2230,6 +2230,12 @@ static int mac80211_hwsim_create_radio(int channels, const char *reg_alpha2,
goto failed_hw;
}
+ if (hwname)
+ /* If this fails, continue on anyway, treat it as request
+ * instead of command.
+ */
+ cfg80211_dev_rename_wiphy(hw->wiphy, hwname);
+
wiphy_debug(hw->wiphy, "hwaddr %pM registered\n", hw->wiphy->perm_addr);
if (reg_alpha2)
@@ -2508,10 +2514,14 @@ static int hwsim_create_radio_nl(struct sk_buff *msg, struct genl_info *info)
bool reg_strict = info->attrs[HWSIM_ATTR_REG_STRICT_REG];
bool p2p_device = info->attrs[HWSIM_ATTR_SUPPORT_P2P_DEVICE];
bool use_chanctx;
+ 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
@@ -2529,7 +2539,7 @@ 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);
+ p2p_device, use_chanctx, hwname);
}
static int hwsim_destroy_radio_nl(struct sk_buff *msg, struct genl_info *info)
@@ -2761,7 +2771,7 @@ static int __init init_mac80211_hwsim(void)
err = mac80211_hwsim_create_radio(channels, reg_alpha2,
regd, reg_strict,
support_p2p_device,
- channels > 1);
+ channels > 1, NULL);
if (err < 0)
goto out_free_radios;
}