diff options
| author | John W. Linville <linville@tuxdriver.com> | 2008-09-30 20:59:05 -0400 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2008-10-31 19:00:50 -0400 | 
| commit | 9387b7caf3049168fc97a8a9111af8fe2143af18 (patch) | |
| tree | 6a19e5477d6a6badf19788536a9d3e1913ae48e1 | |
| parent | 2819f8ad6da1e24b5dd94a221978e61f2a9c972a (diff) | |
| download | olio-linux-3.10-9387b7caf3049168fc97a8a9111af8fe2143af18.tar.xz olio-linux-3.10-9387b7caf3049168fc97a8a9111af8fe2143af18.zip  | |
wireless: use individual buffers for printing ssid values
Also change escape_ssid to print_ssid to match print_mac semantics.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
| -rw-r--r-- | drivers/net/wireless/ipw2100.c | 20 | ||||
| -rw-r--r-- | drivers/net/wireless/ipw2200.c | 153 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-scan.c | 7 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 9 | ||||
| -rw-r--r-- | drivers/net/wireless/libertas/assoc.c | 17 | ||||
| -rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 3 | ||||
| -rw-r--r-- | drivers/net/wireless/libertas/debugfs.c | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/libertas/scan.c | 12 | ||||
| -rw-r--r-- | drivers/net/wireless/libertas/wext.c | 3 | ||||
| -rw-r--r-- | include/linux/ieee80211.h | 6 | ||||
| -rw-r--r-- | include/net/lib80211.h | 5 | ||||
| -rw-r--r-- | net/ieee80211/ieee80211_rx.c | 19 | ||||
| -rw-r--r-- | net/ieee80211/ieee80211_wx.c | 7 | ||||
| -rw-r--r-- | net/wireless/lib80211.c | 9 | 
14 files changed, 168 insertions, 106 deletions
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c index 223914e3e07..062c9f28030 100644 --- a/drivers/net/wireless/ipw2100.c +++ b/drivers/net/wireless/ipw2100.c @@ -163,6 +163,8 @@ that only one external action is invoked at a time.  #include <linux/ctype.h>  #include <linux/pm_qos_params.h> +#include <net/lib80211.h> +  #include "ipw2100.h"  #define IPW2100_VERSION "git-1.2.2" @@ -1914,6 +1916,7 @@ static void isr_indicate_associated(struct ipw2100_priv *priv, u32 status)  	u32 chan;  	char *txratename;  	u8 bssid[ETH_ALEN]; +	DECLARE_SSID_BUF(ssid);  	/*  	 * TBD: BSSID is usually 00:00:00:00:00:00 here and not @@ -1975,7 +1978,7 @@ static void isr_indicate_associated(struct ipw2100_priv *priv, u32 status)  	}  	IPW_DEBUG_INFO("%s: Associated with '%s' at %s, channel %d (BSSID=%pM)\n", -		       priv->net_dev->name, escape_ssid(essid, essid_len), +		       priv->net_dev->name, print_ssid(ssid, essid, essid_len),  		       txratename, chan, bssid);  	/* now we copy read ssid into dev */ @@ -2002,8 +2005,9 @@ static int ipw2100_set_essid(struct ipw2100_priv *priv, char *essid,  		.host_command_length = ssid_len  	};  	int err; +	DECLARE_SSID_BUF(ssid); -	IPW_DEBUG_HC("SSID: '%s'\n", escape_ssid(essid, ssid_len)); +	IPW_DEBUG_HC("SSID: '%s'\n", print_ssid(ssid, essid, ssid_len));  	if (ssid_len)  		memcpy(cmd.host_command_parameters, essid, ssid_len); @@ -2044,9 +2048,11 @@ static int ipw2100_set_essid(struct ipw2100_priv *priv, char *essid,  static void isr_indicate_association_lost(struct ipw2100_priv *priv, u32 status)  { +	DECLARE_SSID_BUF(ssid); +  	IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | IPW_DL_ASSOC,  		  "disassociated: '%s' %pM \n", -		  escape_ssid(priv->essid, priv->essid_len), +		  print_ssid(ssid, priv->essid, priv->essid_len),  		  priv->bssid);  	priv->status &= ~(STATUS_ASSOCIATED | STATUS_ASSOCIATING); @@ -6958,6 +6964,7 @@ static int ipw2100_wx_set_essid(struct net_device *dev,  	char *essid = "";	/* ANY */  	int length = 0;  	int err = 0; +	DECLARE_SSID_BUF(ssid);  	mutex_lock(&priv->action_mutex);  	if (!(priv->status & STATUS_INITIALIZED)) { @@ -6987,8 +6994,8 @@ static int ipw2100_wx_set_essid(struct net_device *dev,  		goto done;  	} -	IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", escape_ssid(essid, length), -		     length); +	IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", +		     print_ssid(ssid, essid, length), length);  	priv->essid_len = length;  	memcpy(priv->essid, essid, priv->essid_len); @@ -7009,12 +7016,13 @@ static int ipw2100_wx_get_essid(struct net_device *dev,  	 */  	struct ipw2100_priv *priv = ieee80211_priv(dev); +	DECLARE_SSID_BUF(ssid);  	/* If we are associated, trying to associate, or have a statically  	 * configured ESSID then return that; otherwise return ANY */  	if (priv->config & CFG_STATIC_ESSID || priv->status & STATUS_ASSOCIATED) {  		IPW_DEBUG_WX("Getting essid: '%s'\n", -			     escape_ssid(priv->essid, priv->essid_len)); +			     print_ssid(ssid, priv->essid, priv->essid_len));  		memcpy(extra, priv->essid, priv->essid_len);  		wrqu->essid.length = priv->essid_len;  		wrqu->essid.flags = 1;	/* active */ diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index 6e0c55c64e1..2b9d96a5c10 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c @@ -4395,6 +4395,7 @@ static void handle_scan_event(struct ipw_priv *priv)  static void ipw_rx_notification(struct ipw_priv *priv,  				       struct ipw_rx_notification *notif)  { +	DECLARE_SSID_BUF(ssid);  	u16 size = le16_to_cpu(notif->size);  	notif->size = le16_to_cpu(notif->size); @@ -4409,8 +4410,8 @@ static void ipw_rx_notification(struct ipw_priv *priv,  					IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE |  						  IPW_DL_ASSOC,  						  "associated: '%s' %pM \n", -						  escape_ssid(priv->essid, -							      priv->essid_len), +						  print_ssid(ssid, priv->essid, +							     priv->essid_len),  						  priv->bssid);  					switch (priv->ieee->iw_mode) { @@ -4490,10 +4491,11 @@ static void ipw_rx_notification(struct ipw_priv *priv,  							  "deauthenticated: '%s' "  							  "%pM"  							  ": (0x%04X) - %s \n", -							  escape_ssid(priv-> -								      essid, -								      priv-> -								      essid_len), +							  print_ssid(ssid, +								     priv-> +								     essid, +								     priv-> +								     essid_len),  							  priv->bssid,  							  le16_to_cpu(auth->status),  							  ipw_get_status_code @@ -4512,8 +4514,8 @@ static void ipw_rx_notification(struct ipw_priv *priv,  					IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE |  						  IPW_DL_ASSOC,  						  "authenticated: '%s' %pM\n", -						  escape_ssid(priv->essid, -							       priv->essid_len), +						  print_ssid(ssid, priv->essid, +							     priv->essid_len),  						  priv->bssid);  					break;  				} @@ -4540,8 +4542,8 @@ static void ipw_rx_notification(struct ipw_priv *priv,  					IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE |  						  IPW_DL_ASSOC,  						  "disassociated: '%s' %pM \n", -						  escape_ssid(priv->essid, -							       priv->essid_len), +						  print_ssid(ssid, priv->essid, +							     priv->essid_len),  						  priv->bssid);  					priv->status &= @@ -4578,8 +4580,8 @@ static void ipw_rx_notification(struct ipw_priv *priv,  			case CMAS_AUTHENTICATED:  				IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE,  					  "authenticated: '%s' %pM \n", -					  escape_ssid(priv->essid, -						       priv->essid_len), +					  print_ssid(ssid, priv->essid, +						     priv->essid_len),  					  priv->bssid);  				priv->status |= STATUS_AUTH;  				break; @@ -4597,8 +4599,8 @@ static void ipw_rx_notification(struct ipw_priv *priv,  				IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE |  					  IPW_DL_ASSOC,  					  "deauthenticated: '%s' %pM\n", -					  escape_ssid(priv->essid, -						      priv->essid_len), +					  print_ssid(ssid, priv->essid, +						     priv->essid_len),  					  priv->bssid);  				priv->status &= ~(STATUS_ASSOCIATING | @@ -5423,6 +5425,7 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  				  int roaming)  {  	struct ipw_supported_rates rates; +	DECLARE_SSID_BUF(ssid);  	/* Verify that this network's capability is compatible with the  	 * current mode (AdHoc or Infrastructure) */ @@ -5430,7 +5433,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  	     !(network->capability & WLAN_CAPABILITY_IBSS))) {  		IPW_DEBUG_MERGE("Network '%s (%pM)' excluded due to "  				"capability mismatch.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5443,8 +5447,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  			   network->ssid_len)) {  			IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  					"because of non-network ESSID.\n", -					escape_ssid(network->ssid, -						    network->ssid_len), +					print_ssid(ssid, network->ssid, +						   network->ssid_len),  					network->bssid);  			return 0;  		} @@ -5458,13 +5462,14 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  			char escaped[IW_ESSID_MAX_SIZE * 2 + 1];  			strncpy(escaped, -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				sizeof(escaped));  			IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  					"because of ESSID mismatch: '%s'.\n",  					escaped, network->bssid, -					escape_ssid(priv->essid, -						    priv->essid_len)); +					print_ssid(ssid, priv->essid, +						   priv->essid_len));  			return 0;  		}  	} @@ -5475,14 +5480,14 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  	if (network->time_stamp[0] < match->network->time_stamp[0]) {  		IPW_DEBUG_MERGE("Network '%s excluded because newer than "  				"current network.\n", -				escape_ssid(match->network->ssid, -					    match->network->ssid_len)); +				print_ssid(ssid, match->network->ssid, +					   match->network->ssid_len));  		return 0;  	} else if (network->time_stamp[1] < match->network->time_stamp[1]) {  		IPW_DEBUG_MERGE("Network '%s excluded because newer than "  				"current network.\n", -				escape_ssid(match->network->ssid, -					    match->network->ssid_len)); +				print_ssid(ssid, match->network->ssid, +					   match->network->ssid_len));  		return 0;  	} @@ -5491,7 +5496,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  	    time_after(jiffies, network->last_scanned + priv->ieee->scan_age)) {  		IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  				"because of age: %ums.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid,  				jiffies_to_msecs(jiffies -  						 network->last_scanned)); @@ -5502,7 +5508,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  	    (network->channel != priv->channel)) {  		IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  				"because of channel mismatch: %d != %d.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid,  				network->channel, priv->channel);  		return 0; @@ -5513,7 +5520,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  	    ((network->capability & WLAN_CAPABILITY_PRIVACY) ? 1 : 0)) {  		IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  				"because of privacy mismatch: %s != %s.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid,  				priv->  				capability & CAP_PRIVACY_ON ? "on" : "off", @@ -5526,8 +5534,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  	if (!memcmp(network->bssid, priv->bssid, ETH_ALEN)) {  		IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  				"because of the same BSSID match: %pM" -				".\n", escape_ssid(network->ssid, -						   network->ssid_len), +				".\n", print_ssid(ssid, network->ssid, +						  network->ssid_len),  				network->bssid,  				priv->bssid);  		return 0; @@ -5538,7 +5546,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  		IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  				"because of invalid frequency/mode "  				"combination.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5549,7 +5558,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  		IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  				"because configured rate mask excludes "  				"AP mandatory rate.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5557,7 +5567,8 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  	if (rates.num_rates == 0) {  		IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "  				"because of no compatible rates.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5570,7 +5581,7 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  	ipw_copy_rates(&match->rates, &rates);  	match->network = network;  	IPW_DEBUG_MERGE("Network '%s (%pM)' is a viable match.\n", -			escape_ssid(network->ssid, network->ssid_len), +			print_ssid(ssid, network->ssid, network->ssid_len),  			network->bssid);  	return 1; @@ -5578,6 +5589,7 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,  static void ipw_merge_adhoc_network(struct work_struct *work)  { +	DECLARE_SSID_BUF(ssid);  	struct ipw_priv *priv =  		container_of(work, struct ipw_priv, merge_networks);  	struct ieee80211_network *network = NULL; @@ -5608,8 +5620,8 @@ static void ipw_merge_adhoc_network(struct work_struct *work)  		mutex_lock(&priv->mutex);  		if ((priv->ieee->iw_mode == IW_MODE_ADHOC)) {  			IPW_DEBUG_MERGE("remove network %s\n", -					escape_ssid(priv->essid, -						    priv->essid_len)); +					print_ssid(ssid, priv->essid, +						   priv->essid_len));  			ipw_remove_current_network(priv);  		} @@ -5625,6 +5637,7 @@ static int ipw_best_network(struct ipw_priv *priv,  			    struct ieee80211_network *network, int roaming)  {  	struct ipw_supported_rates rates; +	DECLARE_SSID_BUF(ssid);  	/* Verify that this network's capability is compatible with the  	 * current mode (AdHoc or Infrastructure) */ @@ -5634,7 +5647,8 @@ static int ipw_best_network(struct ipw_priv *priv,  	     !(network->capability & WLAN_CAPABILITY_IBSS))) {  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded due to "  				"capability mismatch.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5647,8 +5661,8 @@ static int ipw_best_network(struct ipw_priv *priv,  			   network->ssid_len)) {  			IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  					"because of non-network ESSID.\n", -					escape_ssid(network->ssid, -						     network->ssid_len), +					print_ssid(ssid, network->ssid, +						   network->ssid_len),  					network->bssid);  			return 0;  		} @@ -5661,13 +5675,14 @@ static int ipw_best_network(struct ipw_priv *priv,  			    min(network->ssid_len, priv->essid_len)))) {  			char escaped[IW_ESSID_MAX_SIZE * 2 + 1];  			strncpy(escaped, -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				sizeof(escaped));  			IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  					"because of ESSID mismatch: '%s'.\n",  					escaped, network->bssid, -					escape_ssid(priv->essid, -						    priv->essid_len)); +					print_ssid(ssid, priv->essid, +						   priv->essid_len));  			return 0;  		}  	} @@ -5677,13 +5692,13 @@ static int ipw_best_network(struct ipw_priv *priv,  	if (match->network && match->network->stats.rssi > network->stats.rssi) {  		char escaped[IW_ESSID_MAX_SIZE * 2 + 1];  		strncpy(escaped, -			escape_ssid(network->ssid, network->ssid_len), +			print_ssid(ssid, network->ssid, network->ssid_len),  			sizeof(escaped));  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded because "  				"'%s (%pM)' has a stronger signal.\n",  				escaped, network->bssid, -				escape_ssid(match->network->ssid, -					    match->network->ssid_len), +				print_ssid(ssid, match->network->ssid, +					   match->network->ssid_len),  				match->network->bssid);  		return 0;  	} @@ -5695,7 +5710,8 @@ static int ipw_best_network(struct ipw_priv *priv,  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because of storming (%ums since last "  				"assoc attempt).\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid,  				jiffies_to_msecs(jiffies -  						 network->last_associate)); @@ -5707,7 +5723,8 @@ static int ipw_best_network(struct ipw_priv *priv,  	    time_after(jiffies, network->last_scanned + priv->ieee->scan_age)) {  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because of age: %ums.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid,  				jiffies_to_msecs(jiffies -  						 network->last_scanned)); @@ -5718,7 +5735,8 @@ static int ipw_best_network(struct ipw_priv *priv,  	    (network->channel != priv->channel)) {  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because of channel mismatch: %d != %d.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid,  				network->channel, priv->channel);  		return 0; @@ -5729,7 +5747,8 @@ static int ipw_best_network(struct ipw_priv *priv,  	    ((network->capability & WLAN_CAPABILITY_PRIVACY) ? 1 : 0)) {  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because of privacy mismatch: %s != %s.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid,  				priv->capability & CAP_PRIVACY_ON ? "on" :  				"off", @@ -5742,7 +5761,8 @@ static int ipw_best_network(struct ipw_priv *priv,  	    memcmp(network->bssid, priv->bssid, ETH_ALEN)) {  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because of BSSID mismatch: %pM.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid, priv->bssid);  		return 0;  	} @@ -5752,7 +5772,8 @@ static int ipw_best_network(struct ipw_priv *priv,  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because of invalid frequency/mode "  				"combination.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5761,7 +5782,8 @@ static int ipw_best_network(struct ipw_priv *priv,  	if (!ieee80211_is_valid_channel(priv->ieee, network->channel)) {  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because of invalid channel in current GEO\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5772,7 +5794,8 @@ static int ipw_best_network(struct ipw_priv *priv,  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because configured rate mask excludes "  				"AP mandatory rate.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5780,7 +5803,8 @@ static int ipw_best_network(struct ipw_priv *priv,  	if (rates.num_rates == 0) {  		IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "  				"because of no compatible rates.\n", -				escape_ssid(network->ssid, network->ssid_len), +				print_ssid(ssid, network->ssid, +					   network->ssid_len),  				network->bssid);  		return 0;  	} @@ -5794,7 +5818,7 @@ static int ipw_best_network(struct ipw_priv *priv,  	match->network = network;  	IPW_DEBUG_ASSOC("Network '%s (%pM)' is a viable match.\n", -			escape_ssid(network->ssid, network->ssid_len), +			print_ssid(ssid, network->ssid, network->ssid_len),  			network->bssid);  	return 1; @@ -6037,6 +6061,7 @@ static void ipw_bg_adhoc_check(struct work_struct *work)  static void ipw_debug_config(struct ipw_priv *priv)  { +	DECLARE_SSID_BUF(ssid);  	IPW_DEBUG_INFO("Scan completed, no valid APs matched "  		       "[CFG 0x%08X]\n", priv->config);  	if (priv->config & CFG_STATIC_CHANNEL) @@ -6045,7 +6070,7 @@ static void ipw_debug_config(struct ipw_priv *priv)  		IPW_DEBUG_INFO("Channel unlocked.\n");  	if (priv->config & CFG_STATIC_ESSID)  		IPW_DEBUG_INFO("ESSID locked to '%s'\n", -			       escape_ssid(priv->essid, priv->essid_len)); +			       print_ssid(ssid, priv->essid, priv->essid_len));  	else  		IPW_DEBUG_INFO("ESSID unlocked.\n");  	if (priv->config & CFG_STATIC_BSSID) @@ -7263,6 +7288,7 @@ static int ipw_associate_network(struct ipw_priv *priv,  				 struct ipw_supported_rates *rates, int roaming)  {  	int err; +	DECLARE_SSID_BUF(ssid);  	if (priv->config & CFG_FIXED_RATE)  		ipw_set_fixed_rate(priv, network->mode); @@ -7331,7 +7357,7 @@ static int ipw_associate_network(struct ipw_priv *priv,  	IPW_DEBUG_ASSOC("%sssocation attempt: '%s', channel %d, "  			"802.11%c [%d], %s[:%s], enc=%s%s%s%c%c\n",  			roaming ? "Rea" : "A", -			escape_ssid(priv->essid, priv->essid_len), +			print_ssid(ssid, priv->essid, priv->essid_len),  			network->channel,  			ipw_modes[priv->assoc_request.ieee_mode],  			rates->num_rates, @@ -7431,7 +7457,7 @@ static int ipw_associate_network(struct ipw_priv *priv,  	}  	IPW_DEBUG(IPW_DL_STATE, "associating: '%s' %pM \n", -		  escape_ssid(priv->essid, priv->essid_len), +		  print_ssid(ssid, priv->essid, priv->essid_len),  		  priv->bssid);  	return 0; @@ -7522,6 +7548,7 @@ static int ipw_associate(void *data)  	struct ipw_supported_rates *rates;  	struct list_head *element;  	unsigned long flags; +	DECLARE_SSID_BUF(ssid);  	if (priv->ieee->iw_mode == IW_MODE_MONITOR) {  		IPW_DEBUG_ASSOC("Not attempting association (monitor mode)\n"); @@ -7583,8 +7610,8 @@ static int ipw_associate(void *data)  			target = oldest;  			IPW_DEBUG_ASSOC("Expired '%s' (%pM) from "  					"network list.\n", -					escape_ssid(target->ssid, -						    target->ssid_len), +					print_ssid(ssid, target->ssid, +						   target->ssid_len),  					target->bssid);  			list_add_tail(&target->list,  				      &priv->ieee->network_free_list); @@ -9012,6 +9039,7 @@ static int ipw_wx_set_essid(struct net_device *dev,  {  	struct ipw_priv *priv = ieee80211_priv(dev);          int length; +	DECLARE_SSID_BUF(ssid);          mutex_lock(&priv->mutex); @@ -9036,8 +9064,8 @@ static int ipw_wx_set_essid(struct net_device *dev,  		return 0;  	} -	IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", escape_ssid(extra, length), -		     length); +	IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", +		     print_ssid(ssid, extra, length), length);  	priv->essid_len = length;  	memcpy(priv->essid, extra, priv->essid_len); @@ -9056,6 +9084,7 @@ static int ipw_wx_get_essid(struct net_device *dev,  			    union iwreq_data *wrqu, char *extra)  {  	struct ipw_priv *priv = ieee80211_priv(dev); +	DECLARE_SSID_BUF(ssid);  	/* If we are associated, trying to associate, or have a statically  	 * configured ESSID then return that; otherwise return ANY */ @@ -9063,7 +9092,7 @@ static int ipw_wx_get_essid(struct net_device *dev,  	if (priv->config & CFG_STATIC_ESSID ||  	    priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING)) {  		IPW_DEBUG_WX("Getting essid: '%s'\n", -			     escape_ssid(priv->essid, priv->essid_len)); +			     print_ssid(ssid, priv->essid, priv->essid_len));  		memcpy(extra, priv->essid, priv->essid_len);  		wrqu->essid.length = priv->essid_len;  		wrqu->essid.flags = 1;	/* active */ diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c index 1cc8aa59282..3379b41fb5e 100644 --- a/drivers/net/wireless/iwlwifi/iwl-scan.c +++ b/drivers/net/wireless/iwlwifi/iwl-scan.c @@ -643,6 +643,7 @@ static void iwl_bg_request_scan(struct work_struct *data)  	u8 n_probes = 2;  	u8 rx_chain = priv->hw_params.valid_rx_ant;  	u8 rate; +	DECLARE_SSID_BUF(ssid);  	conf = ieee80211_get_hw_conf(priv->hw); @@ -735,8 +736,8 @@ static void iwl_bg_request_scan(struct work_struct *data)  	/* We should add the ability for user to lock to PASSIVE ONLY */  	if (priv->one_direct_scan) {  		IWL_DEBUG_SCAN("Start direct scan for '%s'\n", -				escape_ssid(priv->direct_ssid, -					    priv->direct_ssid_len)); +				print_ssid(ssid, priv->direct_ssid, +					   priv->direct_ssid_len));  		scan->direct_scan[0].id = WLAN_EID_SSID;  		scan->direct_scan[0].len = priv->direct_ssid_len;  		memcpy(scan->direct_scan[0].ssid, @@ -744,7 +745,7 @@ static void iwl_bg_request_scan(struct work_struct *data)  		n_probes++;  	} else if (!iwl_is_associated(priv) && priv->essid_len) {  		IWL_DEBUG_SCAN("Start direct scan for '%s' (not associated)\n", -				escape_ssid(priv->essid, priv->essid_len)); +				print_ssid(ssid, priv->essid, priv->essid_len));  		scan->direct_scan[0].id = WLAN_EID_SSID;  		scan->direct_scan[0].len = priv->essid_len;  		memcpy(scan->direct_scan[0].ssid, priv->essid, priv->essid_len); diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 370cc46b488..8009094503e 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c @@ -6054,6 +6054,7 @@ static void iwl3945_bg_request_scan(struct work_struct *data)  	struct ieee80211_conf *conf = NULL;  	u8 n_probes = 2;  	enum ieee80211_band band; +	DECLARE_SSID_BUF(ssid);  	conf = ieee80211_get_hw_conf(priv->hw); @@ -6154,7 +6155,8 @@ static void iwl3945_bg_request_scan(struct work_struct *data)  	if (priv->one_direct_scan) {  		IWL_DEBUG_SCAN  		    ("Kicking off one direct scan for '%s'\n", -		     escape_ssid(priv->direct_ssid, priv->direct_ssid_len)); +		     print_ssid(ssid, priv->direct_ssid, +				priv->direct_ssid_len));  		scan->direct_scan[0].id = WLAN_EID_SSID;  		scan->direct_scan[0].len = priv->direct_ssid_len;  		memcpy(scan->direct_scan[0].ssid, @@ -6163,7 +6165,7 @@ static void iwl3945_bg_request_scan(struct work_struct *data)  	} else if (!iwl3945_is_associated(priv) && priv->essid_len) {  		IWL_DEBUG_SCAN  		  ("Kicking off one direct scan for '%s' when not associated\n", -		   escape_ssid(priv->essid, priv->essid_len)); +		   print_ssid(ssid, priv->essid, priv->essid_len));  		scan->direct_scan[0].id = WLAN_EID_SSID;  		scan->direct_scan[0].len = priv->essid_len;  		memcpy(scan->direct_scan[0].ssid, priv->essid, priv->essid_len); @@ -6945,6 +6947,7 @@ static int iwl3945_mac_hw_scan(struct ieee80211_hw *hw, u8 *ssid, size_t len)  	int rc = 0;  	unsigned long flags;  	struct iwl3945_priv *priv = hw->priv; +	DECLARE_SSID_BUF(ssid_buf);  	IWL_DEBUG_MAC80211("enter\n"); @@ -6978,7 +6981,7 @@ static int iwl3945_mac_hw_scan(struct ieee80211_hw *hw, u8 *ssid, size_t len)  	}  	if (len) {  		IWL_DEBUG_SCAN("direct scan for %s [%d]\n ", -			       escape_ssid(ssid, len), (int)len); +			       print_ssid(ssid_buf, ssid, len), (int)len);  		priv->one_direct_scan = 1;  		priv->direct_ssid_len = (u8) diff --git a/drivers/net/wireless/libertas/assoc.c b/drivers/net/wireless/libertas/assoc.c index 3492e89d1dd..92863780286 100644 --- a/drivers/net/wireless/libertas/assoc.c +++ b/drivers/net/wireless/libertas/assoc.c @@ -153,17 +153,18 @@ static int lbs_adhoc_join(struct lbs_private *priv,  	struct cmd_ds_802_11_ad_hoc_join cmd;  	struct bss_descriptor *bss = &assoc_req->bss;  	u8 preamble = RADIO_PREAMBLE_LONG; +	DECLARE_SSID_BUF(ssid);  	u16 ratesize = 0;  	int ret = 0;  	lbs_deb_enter(LBS_DEB_ASSOC);  	lbs_deb_join("current SSID '%s', ssid length %u\n", -		escape_ssid(priv->curbssparams.ssid, +		print_ssid(ssid, priv->curbssparams.ssid,  		priv->curbssparams.ssid_len),  		priv->curbssparams.ssid_len);  	lbs_deb_join("requested ssid '%s', ssid length %u\n", -		escape_ssid(bss->ssid, bss->ssid_len), +		print_ssid(ssid, bss->ssid, bss->ssid_len),  		bss->ssid_len);  	/* check if the requested SSID is already joined */ @@ -308,6 +309,7 @@ static int lbs_adhoc_start(struct lbs_private *priv,  	size_t ratesize = 0;  	u16 tmpcap = 0;  	int ret = 0; +	DECLARE_SSID_BUF(ssid);  	lbs_deb_enter(LBS_DEB_ASSOC); @@ -327,7 +329,7 @@ static int lbs_adhoc_start(struct lbs_private *priv,  	memcpy(cmd.ssid, assoc_req->ssid, assoc_req->ssid_len);  	lbs_deb_join("ADHOC_START: SSID '%s', ssid length %u\n", -		escape_ssid(assoc_req->ssid, assoc_req->ssid_len), +		print_ssid(ssid, assoc_req->ssid, assoc_req->ssid_len),  		assoc_req->ssid_len);  	cmd.bsstype = CMD_BSS_TYPE_IBSS; @@ -695,6 +697,7 @@ static int assoc_helper_essid(struct lbs_private *priv,  	int ret = 0;  	struct bss_descriptor * bss;  	int channel = -1; +	DECLARE_SSID_BUF(ssid);  	lbs_deb_enter(LBS_DEB_ASSOC); @@ -706,7 +709,7 @@ static int assoc_helper_essid(struct lbs_private *priv,  		channel = assoc_req->channel;  	lbs_deb_assoc("SSID '%s' requested\n", -	              escape_ssid(assoc_req->ssid, assoc_req->ssid_len)); +	              print_ssid(ssid, assoc_req->ssid, assoc_req->ssid_len));  	if (assoc_req->mode == IW_MODE_INFRA) {  		lbs_send_specific_ssid_scan(priv, assoc_req->ssid,  			assoc_req->ssid_len); @@ -1207,6 +1210,7 @@ void lbs_association_worker(struct work_struct *work)  	struct assoc_request * assoc_req = NULL;  	int ret = 0;  	int find_any_ssid = 0; +	DECLARE_SSID_BUF(ssid);  	lbs_deb_enter(LBS_DEB_ASSOC); @@ -1230,7 +1234,7 @@ void lbs_association_worker(struct work_struct *work)  		"    secinfo:  %s%s%s\n"  		"    auth_mode: %d\n",  		assoc_req->flags, -		escape_ssid(assoc_req->ssid, assoc_req->ssid_len), +		print_ssid(ssid, assoc_req->ssid, assoc_req->ssid_len),  		assoc_req->channel, assoc_req->band, assoc_req->mode,  		assoc_req->bssid,  		assoc_req->secinfo.WPAenabled ? " WPA" : "", @@ -1767,6 +1771,7 @@ static int lbs_adhoc_post(struct lbs_private *priv, struct cmd_header *resp)  	struct cmd_ds_802_11_ad_hoc_result *adhoc_resp;  	union iwreq_data wrqu;  	struct bss_descriptor *bss; +	DECLARE_SSID_BUF(ssid);  	lbs_deb_enter(LBS_DEB_JOIN); @@ -1816,7 +1821,7 @@ static int lbs_adhoc_post(struct lbs_private *priv, struct cmd_header *resp)  	wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);  	lbs_deb_join("ADHOC_RESP: Joined/started '%s', BSSID %pM, channel %d\n", -		     escape_ssid(bss->ssid, bss->ssid_len), +		     print_ssid(ssid, bss->ssid, bss->ssid_len),  		     priv->curbssparams.bssid,  		     priv->curbssparams.channel); diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 52feab69ee4..38843c8b919 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c @@ -1063,6 +1063,7 @@ int lbs_mesh_config(struct lbs_private *priv, uint16_t action, uint16_t chan)  {  	struct cmd_ds_mesh_config cmd;  	struct mrvl_meshie *ie; +	DECLARE_SSID_BUF(ssid);  	memset(&cmd, 0, sizeof(cmd));  	cmd.channel = cpu_to_le16(chan); @@ -1093,7 +1094,7 @@ int lbs_mesh_config(struct lbs_private *priv, uint16_t action, uint16_t chan)  	}  	lbs_deb_cmd("mesh config action %d type %x channel %d SSID %s\n",  		    action, priv->mesh_tlv, chan, -		    escape_ssid(priv->mesh_ssid, priv->mesh_ssid_len)); +		    print_ssid(ssid, priv->mesh_ssid, priv->mesh_ssid_len));  	return __lbs_mesh_config_send(priv, &cmd, action, priv->mesh_tlv);  } diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c index 84933203be7..ec4efd7ff3c 100644 --- a/drivers/net/wireless/libertas/debugfs.c +++ b/drivers/net/wireless/libertas/debugfs.c @@ -66,6 +66,7 @@ static ssize_t lbs_getscantable(struct file *file, char __user *userbuf,  	int numscansdone = 0, res;  	unsigned long addr = get_zeroed_page(GFP_KERNEL);  	char *buf = (char *)addr; +	DECLARE_SSID_BUF(ssid);  	struct bss_descriptor * iter_bss;  	pos += snprintf(buf+pos, len-pos, @@ -86,7 +87,8 @@ static ssize_t lbs_getscantable(struct file *file, char __user *userbuf,  				spectrum_mgmt ? 'S' : ' ');  		pos += snprintf(buf+pos, len-pos, " %04d |", SCAN_RSSI(iter_bss->rssi));  		pos += snprintf(buf+pos, len-pos, " %s\n", -		                escape_ssid(iter_bss->ssid, iter_bss->ssid_len)); +		                print_ssid(ssid, iter_bss->ssid, +					   iter_bss->ssid_len));  		numscansdone++;  	} diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c index 7881890a4e9..5c34ac58818 100644 --- a/drivers/net/wireless/libertas/scan.c +++ b/drivers/net/wireless/libertas/scan.c @@ -362,6 +362,7 @@ int lbs_scan_networks(struct lbs_private *priv, int full_scan)  #ifdef CONFIG_LIBERTAS_DEBUG  	struct bss_descriptor *iter;  	int i = 0; +	DECLARE_SSID_BUF(ssid);  #endif  	lbs_deb_enter_args(LBS_DEB_SCAN, "full_scan %d", full_scan); @@ -455,7 +456,7 @@ int lbs_scan_networks(struct lbs_private *priv, int full_scan)  	list_for_each_entry(iter, &priv->network_list, list)  		lbs_deb_scan("%02d: BSSID %pM, RSSI %d, SSID '%s'\n",  			     i++, iter->bssid, iter->rssi, -			     escape_ssid(iter->ssid, iter->ssid_len)); +			     print_ssid(ssid, iter->ssid, iter->ssid_len));  	mutex_unlock(&priv->lock);  #endif @@ -514,6 +515,7 @@ static int lbs_process_bss(struct bss_descriptor *bss,  	struct ieeetypes_dsparamset *pDS;  	struct ieeetypes_cfparamset *pCF;  	struct ieeetypes_ibssparamset *pibss; +	DECLARE_SSID_BUF(ssid);  	struct ieeetypes_countryinfoset *pcountryinfo;  	uint8_t *pos, *end, *p;  	uint8_t n_ex_rates = 0, got_basic_rates = 0, n_basic_rates = 0; @@ -602,7 +604,7 @@ static int lbs_process_bss(struct bss_descriptor *bss,  			bss->ssid_len = min_t(int, 32, elem->len);  			memcpy(bss->ssid, elem->data, bss->ssid_len);  			lbs_deb_scan("got SSID IE: '%s', len %u\n", -			             escape_ssid(bss->ssid, bss->ssid_len), +			             print_ssid(ssid, bss->ssid, bss->ssid_len),  			             bss->ssid_len);  			break; @@ -742,10 +744,11 @@ done:  int lbs_send_specific_ssid_scan(struct lbs_private *priv, uint8_t *ssid,  				uint8_t ssid_len)  { +	DECLARE_SSID_BUF(ssid_buf);  	int ret = 0;  	lbs_deb_enter_args(LBS_DEB_SCAN, "SSID '%s'\n", -			   escape_ssid(ssid, ssid_len)); +			   print_ssid(ssid_buf, ssid, ssid_len));  	if (!ssid_len)  		goto out; @@ -940,6 +943,7 @@ out:  int lbs_set_scan(struct net_device *dev, struct iw_request_info *info,  		 union iwreq_data *wrqu, char *extra)  { +	DECLARE_SSID_BUF(ssid);  	struct lbs_private *priv = dev->priv;  	int ret = 0; @@ -969,7 +973,7 @@ int lbs_set_scan(struct net_device *dev, struct iw_request_info *info,  		priv->scan_ssid_len = req->essid_len;  		memcpy(priv->scan_ssid, req->essid, priv->scan_ssid_len);  		lbs_deb_wext("set_scan, essid '%s'\n", -			escape_ssid(priv->scan_ssid, priv->scan_ssid_len)); +			print_ssid(ssid, priv->scan_ssid, priv->scan_ssid_len));  	} else {  		priv->scan_ssid_len = 0;  	} diff --git a/drivers/net/wireless/libertas/wext.c b/drivers/net/wireless/libertas/wext.c index 24757995185..d4c6a659b56 100644 --- a/drivers/net/wireless/libertas/wext.c +++ b/drivers/net/wireless/libertas/wext.c @@ -1978,6 +1978,7 @@ static int lbs_set_essid(struct net_device *dev, struct iw_request_info *info,  	u8 ssid_len = 0;  	struct assoc_request * assoc_req;  	int in_ssid_len = dwrq->length; +	DECLARE_SSID_BUF(ssid_buf);  	lbs_deb_enter(LBS_DEB_WEXT); @@ -2006,7 +2007,7 @@ static int lbs_set_essid(struct net_device *dev, struct iw_request_info *info,  		lbs_deb_wext("requested any SSID\n");  	} else {  		lbs_deb_wext("requested SSID '%s'\n", -		             escape_ssid(ssid, ssid_len)); +		             print_ssid(ssid_buf, ssid, ssid_len));  	}  out: diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 64a4abce6d9..b0726e2079b 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h @@ -12,8 +12,8 @@   * published by the Free Software Foundation.   */ -#ifndef IEEE80211_H -#define IEEE80211_H +#ifndef LINUX_IEEE80211_H +#define LINUX_IEEE80211_H  #include <linux/types.h>  #include <asm/byteorder.h> @@ -1114,4 +1114,4 @@ static inline u8 *ieee80211_get_DA(struct ieee80211_hdr *hdr)  		return hdr->addr1;  } -#endif /* IEEE80211_H */ +#endif /* LINUX_IEEE80211_H */ diff --git a/include/net/lib80211.h b/include/net/lib80211.h index ce49a30033b..906d96f1b26 100644 --- a/include/net/lib80211.h +++ b/include/net/lib80211.h @@ -8,8 +8,9 @@  #ifndef LIB80211_H  #define LIB80211_H -/* escape_ssid() is intended to be used in debug (and possibly error) +/* print_ssid() is intended to be used in debug (and possibly error)   * messages. It should never be used for passing ssid to user space. */ -const char *escape_ssid(const char *ssid, u8 ssid_len); +const char *print_ssid(char *buf, const char *ssid, u8 ssid_len); +#define DECLARE_SSID_BUF(var) char var[32 * 4 + 1] __maybe_unused  #endif /* LIB80211_H */ diff --git a/net/ieee80211/ieee80211_rx.c b/net/ieee80211/ieee80211_rx.c index f15f82e7bbf..d19c8de6ef2 100644 --- a/net/ieee80211/ieee80211_rx.c +++ b/net/ieee80211/ieee80211_rx.c @@ -1124,6 +1124,7 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element  				      *info_element, u16 length,  				      struct ieee80211_network *network)  { +	DECLARE_SSID_BUF(ssid);  	u8 i;  #ifdef CONFIG_IEEE80211_DEBUG  	char rates_str[64]; @@ -1155,7 +1156,8 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element  				       IW_ESSID_MAX_SIZE - network->ssid_len);  			IEEE80211_DEBUG_MGMT("MFIE_TYPE_SSID: '%s' len=%d.\n", -					     escape_ssid(network->ssid), +					     print_ssid(ssid, network->ssid, +							network->ssid_len),  					     network->ssid_len);  			break; @@ -1401,6 +1403,8 @@ static int ieee80211_network_init(struct ieee80211_device *ieee, struct ieee8021  					 struct ieee80211_network *network,  					 struct ieee80211_rx_stats *stats)  { +	DECLARE_SSID_BUF(ssid); +  	network->qos_data.active = 0;  	network->qos_data.supported = 0;  	network->qos_data.param_count = 0; @@ -1449,7 +1453,7 @@ static int ieee80211_network_init(struct ieee80211_device *ieee, struct ieee8021  	if (network->mode == 0) {  		IEEE80211_DEBUG_SCAN("Filtered out '%s (%pM)' "  				     "network.\n", -				     escape_ssid(network->ssid, +				     print_ssid(ssid, network->ssid,  						 network->ssid_len),  				     network->bssid);  		return 1; @@ -1563,10 +1567,11 @@ static void ieee80211_process_probe_response(struct ieee80211_device  	struct ieee80211_info_element *info_element = beacon->info_element;  #endif  	unsigned long flags; +	DECLARE_SSID_BUF(ssid);  	IEEE80211_DEBUG_SCAN("'%s' (%pM"  		     "): %c%c%c%c %c%c%c%c-%c%c%c%c %c%c%c%c\n", -		     escape_ssid(info_element->data, info_element->len), +		     print_ssid(ssid, info_element->data, info_element->len),  		     beacon->header.addr3,  		     (beacon->capability & cpu_to_le16(1 << 0xf)) ? '1' : '0',  		     (beacon->capability & cpu_to_le16(1 << 0xe)) ? '1' : '0', @@ -1587,7 +1592,7 @@ static void ieee80211_process_probe_response(struct ieee80211_device  	if (ieee80211_network_init(ieee, beacon, &network, stats)) {  		IEEE80211_DEBUG_SCAN("Dropped '%s' (%pM) via %s.\n", -				     escape_ssid(info_element->data, +				     print_ssid(ssid, info_element->data,  						 info_element->len),  				     beacon->header.addr3,  				     is_beacon(beacon->header.frame_ctl) ? @@ -1625,7 +1630,7 @@ static void ieee80211_process_probe_response(struct ieee80211_device  			target = oldest;  			IEEE80211_DEBUG_SCAN("Expired '%s' (%pM) from "  					     "network list.\n", -					     escape_ssid(target->ssid, +					     print_ssid(ssid, target->ssid,  							 target->ssid_len),  					     target->bssid);  			ieee80211_network_reset(target); @@ -1638,7 +1643,7 @@ static void ieee80211_process_probe_response(struct ieee80211_device  #ifdef CONFIG_IEEE80211_DEBUG  		IEEE80211_DEBUG_SCAN("Adding '%s' (%pM) via %s.\n", -				     escape_ssid(network.ssid, +				     print_ssid(ssid, network.ssid,  						 network.ssid_len),  				     network.bssid,  				     is_beacon(beacon->header.frame_ctl) ? @@ -1649,7 +1654,7 @@ static void ieee80211_process_probe_response(struct ieee80211_device  		list_add_tail(&target->list, &ieee->network_list);  	} else {  		IEEE80211_DEBUG_SCAN("Updating '%s' (%pM) via %s.\n", -				     escape_ssid(target->ssid, +				     print_ssid(ssid, target->ssid,  						 target->ssid_len),  				     target->bssid,  				     is_beacon(beacon->header.frame_ctl) ? diff --git a/net/ieee80211/ieee80211_wx.c b/net/ieee80211/ieee80211_wx.c index 3025140ae72..29eb41695a8 100644 --- a/net/ieee80211/ieee80211_wx.c +++ b/net/ieee80211/ieee80211_wx.c @@ -34,6 +34,7 @@  #include <linux/module.h>  #include <linux/jiffies.h> +#include <net/lib80211.h>  #include <net/ieee80211.h>  #include <linux/wireless.h> @@ -258,6 +259,7 @@ int ieee80211_wx_get_scan(struct ieee80211_device *ieee,  	char *ev = extra;  	char *stop = ev + wrqu->data.length;  	int i = 0; +	DECLARE_SSID_BUF(ssid);  	IEEE80211_DEBUG_WX("Getting scan\n"); @@ -277,7 +279,7 @@ int ieee80211_wx_get_scan(struct ieee80211_device *ieee,  		else  			IEEE80211_DEBUG_SCAN("Not showing network '%s ("  					     "%pM)' due to age (%dms).\n", -					     escape_ssid(network->ssid, +					     print_ssid(ssid, network->ssid,  							 network->ssid_len),  					     network->bssid,  					     jiffies_to_msecs(jiffies - @@ -307,6 +309,7 @@ int ieee80211_wx_set_encode(struct ieee80211_device *ieee,  	int i, key, key_provided, len;  	struct ieee80211_crypt_data **crypt;  	int host_crypto = ieee->host_encrypt || ieee->host_decrypt || ieee->host_build_iv; +	DECLARE_SSID_BUF(ssid);  	IEEE80211_DEBUG_WX("SET_ENCODE\n"); @@ -402,7 +405,7 @@ int ieee80211_wx_set_encode(struct ieee80211_device *ieee,  			memset(sec.keys[key] + erq->length, 0,  			       len - erq->length);  		IEEE80211_DEBUG_WX("Setting key %d to '%s' (%d:%d bytes)\n", -				   key, escape_ssid(sec.keys[key], len), +				   key, print_ssid(ssid, sec.keys[key], len),  				   erq->length, len);  		sec.key_sizes[key] = len;  		if (*crypt) diff --git a/net/wireless/lib80211.c b/net/wireless/lib80211.c index b8e34d31e75..e71f7d08562 100644 --- a/net/wireless/lib80211.c +++ b/net/wireless/lib80211.c @@ -19,11 +19,10 @@ MODULE_DESCRIPTION(DRV_DESCRIPTION);  MODULE_AUTHOR("John W. Linville <linville@tuxdriver.com>");  MODULE_LICENSE("GPL"); -const char *escape_ssid(const char *ssid, u8 ssid_len) +const char *print_ssid(char *buf, const char *ssid, u8 ssid_len)  { -	static char escaped[IEEE80211_MAX_SSID_LEN * 4 + 1];  	const char *s = ssid; -	char *d = escaped; +	char *d = buf;  	ssid_len = min_t(u8, ssid_len, IEEE80211_MAX_SSID_LEN);  	while (ssid_len--) { @@ -48,9 +47,9 @@ const char *escape_ssid(const char *ssid, u8 ssid_len)  		s++;  	}  	*d = '\0'; -	return escaped; +	return buf;  } -EXPORT_SYMBOL(escape_ssid); +EXPORT_SYMBOL(print_ssid);  static int __init ieee80211_init(void)  {  |