diff options
Diffstat (limited to 'drivers/net/wireless/mac80211_hwsim.c')
| -rw-r--r-- | drivers/net/wireless/mac80211_hwsim.c | 203 | 
1 files changed, 103 insertions, 100 deletions
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 6467ffac9811..10b075a46b26 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -396,7 +396,7 @@ static int mac80211_hwsim_vendor_cmd_test(struct wiphy *wiphy,  	if (!tb[QCA_WLAN_VENDOR_ATTR_TEST])  		return -EINVAL;  	val = nla_get_u32(tb[QCA_WLAN_VENDOR_ATTR_TEST]); -	wiphy_debug(wiphy, "%s: test=%u\n", __func__, val); +	wiphy_dbg(wiphy, "%s: test=%u\n", __func__, val);  	/* Send a vendor event as a test. Note that this would not normally be  	 * done within a command handler, but rather, based on some other @@ -643,9 +643,9 @@ static void hwsim_send_ps_poll(void *dat, u8 *mac, struct ieee80211_vif *vif)  	if (!vp->assoc)  		return; -	wiphy_debug(data->hw->wiphy, -		    "%s: send PS-Poll to %pM for aid %d\n", -		    __func__, vp->bssid, vp->aid); +	wiphy_dbg(data->hw->wiphy, +		  "%s: send PS-Poll to %pM for aid %d\n", +		  __func__, vp->bssid, vp->aid);  	skb = dev_alloc_skb(sizeof(*pspoll));  	if (!skb) @@ -674,9 +674,9 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac,  	if (!vp->assoc)  		return; -	wiphy_debug(data->hw->wiphy, -		    "%s: send data::nullfunc to %pM ps=%d\n", -		    __func__, vp->bssid, ps); +	wiphy_dbg(data->hw->wiphy, +		  "%s: send data::nullfunc to %pM ps=%d\n", +		  __func__, vp->bssid, ps);  	skb = dev_alloc_skb(sizeof(*hdr));  	if (!skb) @@ -1034,7 +1034,7 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw,  	msg_head = genlmsg_put(skb, 0, 0, &hwsim_genl_family, 0,  			       HWSIM_CMD_FRAME);  	if (msg_head == NULL) { -		printk(KERN_DEBUG "mac80211_hwsim: problem with msg_head\n"); +		pr_debug("mac80211_hwsim: problem with msg_head\n");  		goto nla_put_failure;  	} @@ -1093,7 +1093,7 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw,  nla_put_failure:  	nlmsg_free(skb);  err_free_txskb: -	printk(KERN_DEBUG "mac80211_hwsim: error occurred in %s\n", __func__); +	pr_debug("mac80211_hwsim: error occurred in %s\n", __func__);  	ieee80211_free_txskb(hw, my_skb);  	data->tx_failed++;  } @@ -1347,7 +1347,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw,  	}  	if (data->idle && !data->tmp_chan) { -		wiphy_debug(hw->wiphy, "Trying to TX when idle - reject\n"); +		wiphy_dbg(hw->wiphy, "Trying to TX when idle - reject\n");  		ieee80211_free_txskb(hw, skb);  		return;  	} @@ -1380,7 +1380,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw,  	mac80211_hwsim_monitor_rx(hw, skb, channel);  	/* wmediumd mode check */ -	_portid = ACCESS_ONCE(data->wmediumd); +	_portid = READ_ONCE(data->wmediumd);  	if (_portid)  		return mac80211_hwsim_tx_frame_nl(hw, skb, _portid); @@ -1408,7 +1408,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw,  static int mac80211_hwsim_start(struct ieee80211_hw *hw)  {  	struct mac80211_hwsim_data *data = hw->priv; -	wiphy_debug(hw->wiphy, "%s\n", __func__); +	wiphy_dbg(hw->wiphy, "%s\n", __func__);  	data->started = true;  	return 0;  } @@ -1419,16 +1419,16 @@ static void mac80211_hwsim_stop(struct ieee80211_hw *hw)  	struct mac80211_hwsim_data *data = hw->priv;  	data->started = false;  	tasklet_hrtimer_cancel(&data->beacon_timer); -	wiphy_debug(hw->wiphy, "%s\n", __func__); +	wiphy_dbg(hw->wiphy, "%s\n", __func__);  }  static int mac80211_hwsim_add_interface(struct ieee80211_hw *hw,  					struct ieee80211_vif *vif)  { -	wiphy_debug(hw->wiphy, "%s (type=%d mac_addr=%pM)\n", -		    __func__, ieee80211_vif_type_p2p(vif), -		    vif->addr); +	wiphy_dbg(hw->wiphy, "%s (type=%d mac_addr=%pM)\n", +		  __func__, ieee80211_vif_type_p2p(vif), +		  vif->addr);  	hwsim_set_magic(vif);  	vif->cab_queue = 0; @@ -1447,9 +1447,9 @@ static int mac80211_hwsim_change_interface(struct ieee80211_hw *hw,  					   bool newp2p)  {  	newtype = ieee80211_iftype_p2p(newtype, newp2p); -	wiphy_debug(hw->wiphy, -		    "%s (old type=%d, new type=%d, mac_addr=%pM)\n", -		    __func__, ieee80211_vif_type_p2p(vif), +	wiphy_dbg(hw->wiphy, +		  "%s (old type=%d, new type=%d, mac_addr=%pM)\n", +		  __func__, ieee80211_vif_type_p2p(vif),  		    newtype, vif->addr);  	hwsim_check_magic(vif); @@ -1465,9 +1465,9 @@ static int mac80211_hwsim_change_interface(struct ieee80211_hw *hw,  static void mac80211_hwsim_remove_interface(  	struct ieee80211_hw *hw, struct ieee80211_vif *vif)  { -	wiphy_debug(hw->wiphy, "%s (type=%d mac_addr=%pM)\n", -		    __func__, ieee80211_vif_type_p2p(vif), -		    vif->addr); +	wiphy_dbg(hw->wiphy, "%s (type=%d mac_addr=%pM)\n", +		  __func__, ieee80211_vif_type_p2p(vif), +		  vif->addr);  	hwsim_check_magic(vif);  	hwsim_clear_magic(vif);  } @@ -1477,7 +1477,7 @@ static void mac80211_hwsim_tx_frame(struct ieee80211_hw *hw,  				    struct ieee80211_channel *chan)  {  	struct mac80211_hwsim_data *data = hw->priv; -	u32 _pid = ACCESS_ONCE(data->wmediumd); +	u32 _pid = READ_ONCE(data->wmediumd);  	if (ieee80211_hw_check(hw, SUPPORTS_RC_TABLE)) {  		struct ieee80211_tx_info *txi = IEEE80211_SKB_CB(skb); @@ -1589,23 +1589,23 @@ static int mac80211_hwsim_config(struct ieee80211_hw *hw, u32 changed)  	int idx;  	if (conf->chandef.chan) -		wiphy_debug(hw->wiphy, -			    "%s (freq=%d(%d - %d)/%s idle=%d ps=%d smps=%s)\n", -			    __func__, -			    conf->chandef.chan->center_freq, -			    conf->chandef.center_freq1, -			    conf->chandef.center_freq2, -			    hwsim_chanwidths[conf->chandef.width], -			    !!(conf->flags & IEEE80211_CONF_IDLE), -			    !!(conf->flags & IEEE80211_CONF_PS), -			    smps_modes[conf->smps_mode]); +		wiphy_dbg(hw->wiphy, +			  "%s (freq=%d(%d - %d)/%s idle=%d ps=%d smps=%s)\n", +			  __func__, +			  conf->chandef.chan->center_freq, +			  conf->chandef.center_freq1, +			  conf->chandef.center_freq2, +			  hwsim_chanwidths[conf->chandef.width], +			  !!(conf->flags & IEEE80211_CONF_IDLE), +			  !!(conf->flags & IEEE80211_CONF_PS), +			  smps_modes[conf->smps_mode]);  	else -		wiphy_debug(hw->wiphy, -			    "%s (freq=0 idle=%d ps=%d smps=%s)\n", -			    __func__, -			    !!(conf->flags & IEEE80211_CONF_IDLE), -			    !!(conf->flags & IEEE80211_CONF_PS), -			    smps_modes[conf->smps_mode]); +		wiphy_dbg(hw->wiphy, +			  "%s (freq=0 idle=%d ps=%d smps=%s)\n", +			  __func__, +			  !!(conf->flags & IEEE80211_CONF_IDLE), +			  !!(conf->flags & IEEE80211_CONF_PS), +			  smps_modes[conf->smps_mode]);  	data->idle = !!(conf->flags & IEEE80211_CONF_IDLE); @@ -1659,7 +1659,7 @@ static void mac80211_hwsim_configure_filter(struct ieee80211_hw *hw,  {  	struct mac80211_hwsim_data *data = hw->priv; -	wiphy_debug(hw->wiphy, "%s\n", __func__); +	wiphy_dbg(hw->wiphy, "%s\n", __func__);  	data->rx_filter = 0;  	if (*total_flags & FIF_ALLMULTI) @@ -1688,25 +1688,25 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,  	hwsim_check_magic(vif); -	wiphy_debug(hw->wiphy, "%s(changed=0x%x vif->addr=%pM)\n", -		    __func__, changed, vif->addr); +	wiphy_dbg(hw->wiphy, "%s(changed=0x%x vif->addr=%pM)\n", +		  __func__, changed, vif->addr);  	if (changed & BSS_CHANGED_BSSID) { -		wiphy_debug(hw->wiphy, "%s: BSSID changed: %pM\n", -			    __func__, info->bssid); +		wiphy_dbg(hw->wiphy, "%s: BSSID changed: %pM\n", +			  __func__, info->bssid);  		memcpy(vp->bssid, info->bssid, ETH_ALEN);  	}  	if (changed & BSS_CHANGED_ASSOC) { -		wiphy_debug(hw->wiphy, "  ASSOC: assoc=%d aid=%d\n", -			    info->assoc, info->aid); +		wiphy_dbg(hw->wiphy, "  ASSOC: assoc=%d aid=%d\n", +			  info->assoc, info->aid);  		vp->assoc = info->assoc;  		vp->aid = info->aid;  	}  	if (changed & BSS_CHANGED_BEACON_ENABLED) { -		wiphy_debug(hw->wiphy, "  BCN EN: %d (BI=%u)\n", -			    info->enable_beacon, info->beacon_int); +		wiphy_dbg(hw->wiphy, "  BCN EN: %d (BI=%u)\n", +			  info->enable_beacon, info->beacon_int);  		vp->bcn_en = info->enable_beacon;  		if (data->started &&  		    !hrtimer_is_queued(&data->beacon_timer.timer) && @@ -1725,8 +1725,8 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,  			ieee80211_iterate_active_interfaces_atomic(  				data->hw, IEEE80211_IFACE_ITER_NORMAL,  				mac80211_hwsim_bcn_en_iter, &count); -			wiphy_debug(hw->wiphy, "  beaconing vifs remaining: %u", -				    count); +			wiphy_dbg(hw->wiphy, "  beaconing vifs remaining: %u", +				  count);  			if (count == 0) {  				tasklet_hrtimer_cancel(&data->beacon_timer);  				data->beacon_int = 0; @@ -1735,31 +1735,31 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,  	}  	if (changed & BSS_CHANGED_ERP_CTS_PROT) { -		wiphy_debug(hw->wiphy, "  ERP_CTS_PROT: %d\n", -			    info->use_cts_prot); +		wiphy_dbg(hw->wiphy, "  ERP_CTS_PROT: %d\n", +			  info->use_cts_prot);  	}  	if (changed & BSS_CHANGED_ERP_PREAMBLE) { -		wiphy_debug(hw->wiphy, "  ERP_PREAMBLE: %d\n", -			    info->use_short_preamble); +		wiphy_dbg(hw->wiphy, "  ERP_PREAMBLE: %d\n", +			  info->use_short_preamble);  	}  	if (changed & BSS_CHANGED_ERP_SLOT) { -		wiphy_debug(hw->wiphy, "  ERP_SLOT: %d\n", info->use_short_slot); +		wiphy_dbg(hw->wiphy, "  ERP_SLOT: %d\n", info->use_short_slot);  	}  	if (changed & BSS_CHANGED_HT) { -		wiphy_debug(hw->wiphy, "  HT: op_mode=0x%x\n", -			    info->ht_operation_mode); +		wiphy_dbg(hw->wiphy, "  HT: op_mode=0x%x\n", +			  info->ht_operation_mode);  	}  	if (changed & BSS_CHANGED_BASIC_RATES) { -		wiphy_debug(hw->wiphy, "  BASIC_RATES: 0x%llx\n", -			    (unsigned long long) info->basic_rates); +		wiphy_dbg(hw->wiphy, "  BASIC_RATES: 0x%llx\n", +			  (unsigned long long) info->basic_rates);  	}  	if (changed & BSS_CHANGED_TXPOWER) -		wiphy_debug(hw->wiphy, "  TX Power: %d dBm\n", info->txpower); +		wiphy_dbg(hw->wiphy, "  TX Power: %d dBm\n", info->txpower);  }  static int mac80211_hwsim_sta_add(struct ieee80211_hw *hw, @@ -1813,11 +1813,11 @@ static int mac80211_hwsim_conf_tx(  	struct ieee80211_vif *vif, u16 queue,  	const struct ieee80211_tx_queue_params *params)  { -	wiphy_debug(hw->wiphy, -		    "%s (queue=%d txop=%d cw_min=%d cw_max=%d aifs=%d)\n", -		    __func__, queue, -		    params->txop, params->cw_min, -		    params->cw_max, params->aifs); +	wiphy_dbg(hw->wiphy, +		  "%s (queue=%d txop=%d cw_min=%d cw_max=%d aifs=%d)\n", +		  __func__, queue, +		  params->txop, params->cw_min, +		  params->cw_max, params->aifs);  	return 0;  } @@ -1981,7 +1981,7 @@ static void hw_scan_work(struct work_struct *work)  			.aborted = false,  		}; -		wiphy_debug(hwsim->hw->wiphy, "hw scan complete\n"); +		wiphy_dbg(hwsim->hw->wiphy, "hw scan complete\n");  		ieee80211_scan_completed(hwsim->hw, &info);  		hwsim->hw_scan_request = NULL;  		hwsim->hw_scan_vif = NULL; @@ -1990,8 +1990,8 @@ static void hw_scan_work(struct work_struct *work)  		return;  	} -	wiphy_debug(hwsim->hw->wiphy, "hw scan %d MHz\n", -		    req->channels[hwsim->scan_chan_idx]->center_freq); +	wiphy_dbg(hwsim->hw->wiphy, "hw scan %d MHz\n", +		  req->channels[hwsim->scan_chan_idx]->center_freq);  	hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx];  	if (hwsim->tmp_chan->flags & (IEEE80211_CHAN_NO_IR | @@ -2060,7 +2060,7 @@ static int mac80211_hwsim_hw_scan(struct ieee80211_hw *hw,  	memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data));  	mutex_unlock(&hwsim->mutex); -	wiphy_debug(hw->wiphy, "hwsim hw_scan request\n"); +	wiphy_dbg(hw->wiphy, "hwsim hw_scan request\n");  	ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan, 0); @@ -2075,7 +2075,7 @@ static void mac80211_hwsim_cancel_hw_scan(struct ieee80211_hw *hw,  		.aborted = true,  	}; -	wiphy_debug(hw->wiphy, "hwsim cancel_hw_scan\n"); +	wiphy_dbg(hw->wiphy, "hwsim cancel_hw_scan\n");  	cancel_delayed_work_sync(&hwsim->hw_scan); @@ -2096,11 +2096,11 @@ static void mac80211_hwsim_sw_scan(struct ieee80211_hw *hw,  	mutex_lock(&hwsim->mutex);  	if (hwsim->scanning) { -		printk(KERN_DEBUG "two hwsim sw_scans detected!\n"); +		pr_debug("two hwsim sw_scans detected!\n");  		goto out;  	} -	printk(KERN_DEBUG "hwsim sw_scan request, prepping stuff\n"); +	pr_debug("hwsim sw_scan request, prepping stuff\n");  	memcpy(hwsim->scan_addr, mac_addr, ETH_ALEN);  	hwsim->scanning = true; @@ -2117,7 +2117,7 @@ static void mac80211_hwsim_sw_scan_complete(struct ieee80211_hw *hw,  	mutex_lock(&hwsim->mutex); -	printk(KERN_DEBUG "hwsim sw_scan_complete\n"); +	pr_debug("hwsim sw_scan_complete\n");  	hwsim->scanning = false;  	eth_zero_addr(hwsim->scan_addr); @@ -2131,7 +2131,7 @@ static void hw_roc_start(struct work_struct *work)  	mutex_lock(&hwsim->mutex); -	wiphy_debug(hwsim->hw->wiphy, "hwsim ROC begins\n"); +	wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC begins\n");  	hwsim->tmp_chan = hwsim->roc_chan;  	ieee80211_ready_on_channel(hwsim->hw); @@ -2151,7 +2151,7 @@ static void hw_roc_done(struct work_struct *work)  	hwsim->tmp_chan = NULL;  	mutex_unlock(&hwsim->mutex); -	wiphy_debug(hwsim->hw->wiphy, "hwsim ROC expired\n"); +	wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC expired\n");  }  static int mac80211_hwsim_roc(struct ieee80211_hw *hw, @@ -2172,8 +2172,8 @@ static int mac80211_hwsim_roc(struct ieee80211_hw *hw,  	hwsim->roc_duration = duration;  	mutex_unlock(&hwsim->mutex); -	wiphy_debug(hw->wiphy, "hwsim ROC (%d MHz, %d ms)\n", -		    chan->center_freq, duration); +	wiphy_dbg(hw->wiphy, "hwsim ROC (%d MHz, %d ms)\n", +		  chan->center_freq, duration);  	ieee80211_queue_delayed_work(hw, &hwsim->roc_start, HZ/50);  	return 0; @@ -2190,7 +2190,7 @@ static int mac80211_hwsim_croc(struct ieee80211_hw *hw)  	hwsim->tmp_chan = NULL;  	mutex_unlock(&hwsim->mutex); -	wiphy_debug(hw->wiphy, "hwsim ROC canceled\n"); +	wiphy_dbg(hw->wiphy, "hwsim ROC canceled\n");  	return 0;  } @@ -2199,20 +2199,20 @@ static int mac80211_hwsim_add_chanctx(struct ieee80211_hw *hw,  				      struct ieee80211_chanctx_conf *ctx)  {  	hwsim_set_chanctx_magic(ctx); -	wiphy_debug(hw->wiphy, -		    "add channel context control: %d MHz/width: %d/cfreqs:%d/%d MHz\n", -		    ctx->def.chan->center_freq, ctx->def.width, -		    ctx->def.center_freq1, ctx->def.center_freq2); +	wiphy_dbg(hw->wiphy, +		  "add channel context control: %d MHz/width: %d/cfreqs:%d/%d MHz\n", +		  ctx->def.chan->center_freq, ctx->def.width, +		  ctx->def.center_freq1, ctx->def.center_freq2);  	return 0;  }  static void mac80211_hwsim_remove_chanctx(struct ieee80211_hw *hw,  					  struct ieee80211_chanctx_conf *ctx)  { -	wiphy_debug(hw->wiphy, -		    "remove channel context control: %d MHz/width: %d/cfreqs:%d/%d MHz\n", -		    ctx->def.chan->center_freq, ctx->def.width, -		    ctx->def.center_freq1, ctx->def.center_freq2); +	wiphy_dbg(hw->wiphy, +		  "remove channel context control: %d MHz/width: %d/cfreqs:%d/%d MHz\n", +		  ctx->def.chan->center_freq, ctx->def.width, +		  ctx->def.center_freq1, ctx->def.center_freq2);  	hwsim_check_chanctx_magic(ctx);  	hwsim_clear_chanctx_magic(ctx);  } @@ -2222,10 +2222,10 @@ static void mac80211_hwsim_change_chanctx(struct ieee80211_hw *hw,  					  u32 changed)  {  	hwsim_check_chanctx_magic(ctx); -	wiphy_debug(hw->wiphy, -		    "change channel context control: %d MHz/width: %d/cfreqs:%d/%d MHz\n", -		    ctx->def.chan->center_freq, ctx->def.width, -		    ctx->def.center_freq1, ctx->def.center_freq2); +	wiphy_dbg(hw->wiphy, +		  "change channel context control: %d MHz/width: %d/cfreqs:%d/%d MHz\n", +		  ctx->def.chan->center_freq, ctx->def.width, +		  ctx->def.center_freq1, ctx->def.center_freq2);  }  static int mac80211_hwsim_assign_vif_chanctx(struct ieee80211_hw *hw, @@ -2479,7 +2479,7 @@ static int mac80211_hwsim_new_radio(struct genl_info *info,  		ops = &mac80211_hwsim_mchan_ops;  	hw = ieee80211_alloc_hw_nm(sizeof(*data), ops, param->hwname);  	if (!hw) { -		printk(KERN_DEBUG "mac80211_hwsim: ieee80211_alloc_hw failed\n"); +		pr_debug("mac80211_hwsim: ieee80211_alloc_hw failed\n");  		err = -ENOMEM;  		goto failed;  	} @@ -2507,7 +2507,7 @@ static int mac80211_hwsim_new_radio(struct genl_info *info,  	data->dev->driver = &mac80211_hwsim_driver.driver;  	err = device_bind_driver(data->dev);  	if (err != 0) { -		printk(KERN_DEBUG "mac80211_hwsim: device_bind_driver failed (%d)\n", +		pr_debug("mac80211_hwsim: device_bind_driver failed (%d)\n",  		       err);  		goto failed_bind;  	} @@ -2698,12 +2698,12 @@ static int mac80211_hwsim_new_radio(struct genl_info *info,  	err = ieee80211_register_hw(hw);  	if (err < 0) { -		printk(KERN_DEBUG "mac80211_hwsim: ieee80211_register_hw failed (%d)\n", +		pr_debug("mac80211_hwsim: ieee80211_register_hw failed (%d)\n",  		       err);  		goto failed_hw;  	} -	wiphy_debug(hw->wiphy, "hwaddr %pM registered\n", hw->wiphy->perm_addr); +	wiphy_dbg(hw->wiphy, "hwaddr %pM registered\n", hw->wiphy->perm_addr);  	if (param->reg_alpha2) {  		data->alpha2[0] = param->reg_alpha2[0]; @@ -2805,7 +2805,7 @@ static int mac80211_hwsim_get_radio(struct sk_buff *skb,  		return -EMSGSIZE;  	if (cb) -		genl_dump_check_consistent(cb, hdr, &hwsim_genl_family); +		genl_dump_check_consistent(cb, hdr);  	if (data->alpha2[0] && data->alpha2[1])  		param.reg_alpha2 = data->alpha2; @@ -3067,7 +3067,7 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,  	return 0;  err: -	printk(KERN_DEBUG "mac80211_hwsim: error occurred in %s\n", __func__); +	pr_debug("mac80211_hwsim: error occurred in %s\n", __func__);  out:  	dev_kfree_skb(skb);  	return -EINVAL; @@ -3098,7 +3098,7 @@ static int hwsim_register_received_nl(struct sk_buff *skb_2,  	hwsim_register_wmediumd(net, info->snd_portid); -	printk(KERN_DEBUG "mac80211_hwsim: received a REGISTER, " +	pr_debug("mac80211_hwsim: received a REGISTER, "  	       "switching to wmediumd mode with pid %d\n", info->snd_portid);  	return 0; @@ -3108,6 +3108,7 @@ static int hwsim_new_radio_nl(struct sk_buff *msg, struct genl_info *info)  {  	struct hwsim_new_radio_params param = { 0 };  	const char *hwname = NULL; +	int ret;  	param.reg_strict = info->attrs[HWSIM_ATTR_REG_STRICT_REG];  	param.p2p_device = info->attrs[HWSIM_ATTR_SUPPORT_P2P_DEVICE]; @@ -3147,7 +3148,9 @@ static int hwsim_new_radio_nl(struct sk_buff *msg, struct genl_info *info)  		param.regd = hwsim_world_regdom_custom[idx];  	} -	return mac80211_hwsim_new_radio(info, ¶m); +	ret = mac80211_hwsim_new_radio(info, ¶m); +	kfree(hwname); +	return ret;  }  static int hwsim_del_radio_nl(struct sk_buff *msg, struct genl_info *info) @@ -3387,7 +3390,7 @@ static int __init hwsim_init_netlink(void)  	return 0;  failure: -	printk(KERN_DEBUG "mac80211_hwsim: error occurred in %s\n", __func__); +	pr_debug("mac80211_hwsim: error occurred in %s\n", __func__);  	return -EINVAL;  } @@ -3578,7 +3581,7 @@ module_init(init_mac80211_hwsim);  static void __exit exit_mac80211_hwsim(void)  { -	printk(KERN_DEBUG "mac80211_hwsim: unregister radios\n"); +	pr_debug("mac80211_hwsim: unregister radios\n");  	hwsim_exit_netlink();  | 

