diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/scan.c')
| -rw-r--r-- | drivers/net/wireless/mwifiex/scan.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c index dae8dbb24a0..8d3ab378662 100644 --- a/drivers/net/wireless/mwifiex/scan.c +++ b/drivers/net/wireless/mwifiex/scan.c @@ -819,8 +819,10 @@ mwifiex_scan_setup_scan_config(struct mwifiex_private *priv,  			wildcard_ssid_tlv->header.len = cpu_to_le16(  				(u16) (ssid_len + sizeof(wildcard_ssid_tlv->  							 max_ssid_length))); -			wildcard_ssid_tlv->max_ssid_length = -				user_scan_in->ssid_list[ssid_idx].max_len; + +			/* max_ssid_length = 0 tells firmware to perform +			   specific scan for the SSID filled */ +			wildcard_ssid_tlv->max_ssid_length = 0;  			memcpy(wildcard_ssid_tlv->ssid,  			       user_scan_in->ssid_list[ssid_idx].ssid, @@ -1469,7 +1471,7 @@ mwifiex_update_curr_bss_params(struct mwifiex_private *priv, u8 *bssid,  			       s32 rssi, const u8 *ie_buf, size_t ie_len,  			       u16 beacon_period, u16 cap_info_bitmap, u8 band)  { -	struct mwifiex_bssdescriptor *bss_desc = NULL; +	struct mwifiex_bssdescriptor *bss_desc;  	int ret;  	unsigned long flags;  	u8 *beacon_ie; @@ -1484,6 +1486,7 @@ mwifiex_update_curr_bss_params(struct mwifiex_private *priv, u8 *bssid,  	beacon_ie = kmemdup(ie_buf, ie_len, GFP_KERNEL);  	if (!beacon_ie) { +		kfree(bss_desc);  		dev_err(priv->adapter->dev, " failed to alloc beacon_ie\n");  		return -ENOMEM;  	}  |