mac80211-hwsim: support creating radios with specific name
authorBen Greear <greearb@candelatech.com>
Wed, 22 Oct 2014 19:23:02 +0000 (12:23 -0700)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 27 Oct 2014 07:48:32 +0000 (08:48 +0100)
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>
drivers/net/wireless/mac80211_hwsim.c

index e9f7c1e..23f184d 100644 (file)
@@ -2023,7 +2023,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];
@@ -2042,7 +2042,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;
@@ -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 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
@@ -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,
                                           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)
@@ -2794,7 +2799,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;
        }