diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/cfg80211.c')
| -rw-r--r-- | drivers/net/wireless/mwifiex/cfg80211.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c index 0679458a1ba..780d3e16829 100644 --- a/drivers/net/wireless/mwifiex/cfg80211.c +++ b/drivers/net/wireless/mwifiex/cfg80211.c @@ -1825,8 +1825,6 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,  		return -EBUSY;  	} -	priv->scan_request = request; -  	priv->user_scan_cfg = kzalloc(sizeof(struct mwifiex_user_scan_cfg),  				      GFP_KERNEL);  	if (!priv->user_scan_cfg) { @@ -1834,6 +1832,8 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,  		return -ENOMEM;  	} +	priv->scan_request = request; +  	priv->user_scan_cfg->num_ssids = request->n_ssids;  	priv->user_scan_cfg->ssid_list = request->ssids; @@ -1870,6 +1870,9 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,  	ret = mwifiex_scan_networks(priv, priv->user_scan_cfg);  	if (ret) {  		dev_err(priv->adapter->dev, "scan failed: %d\n", ret); +		priv->scan_request = NULL; +		kfree(priv->user_scan_cfg); +		priv->user_scan_cfg = NULL;  		return ret;  	}  |