From 7cb93f57126b23f8c4bba967ed47d59b63c06652 Mon Sep 17 00:00:00 2001 From: Tomasz Hliwiak Date: Wed, 29 Feb 2012 15:15:03 +0100 Subject: cw1200: Always update template on scan request. Send probe request template to FW before each scan. It corrects wrong destination address in probe requests after p2p_connect in sta mode. ST-Ericsson ID: 364811 ST-Ericsson FOSS-OUT ID: NA Signed-off-by: Tomasz Hliwiak Change-Id: I90cbba678a916390f035c5664e25ea13428541cf Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/39816 Tested-by: Tomasz HLIWIAK Reviewed-by: Bartosz MARKOWSKI --- drivers/staging/cw1200/main.c | 3 --- drivers/staging/cw1200/scan.c | 21 ++++----------------- drivers/staging/cw1200/scan.h | 2 -- 3 files changed, 4 insertions(+), 22 deletions(-) diff --git a/drivers/staging/cw1200/main.c b/drivers/staging/cw1200/main.c index 4ca98d2f777..7a2e12d23a7 100644 --- a/drivers/staging/cw1200/main.c +++ b/drivers/staging/cw1200/main.c @@ -443,9 +443,6 @@ void cw1200_unregister_common(struct ieee80211_hw *dev) wsm_buf_deinit(&priv->wsm_cmd_buf); - kfree(priv->scan.ie); - priv->scan.ie = NULL; - priv->scan.ie_len = 0; destroy_workqueue(priv->workqueue); priv->workqueue = NULL; diff --git a/drivers/staging/cw1200/scan.c b/drivers/staging/cw1200/scan.c index db4150fcd77..32faf2b1c3f 100644 --- a/drivers/staging/cw1200/scan.c +++ b/drivers/staging/cw1200/scan.c @@ -64,23 +64,10 @@ int cw1200_hw_scan(struct ieee80211_hw *hw, if (req->n_ssids > WSM_SCAN_MAX_NUM_OF_SSIDS) return -EINVAL; - if (req->ie_len != priv->scan.ie_len || - memcmp(req->ie, priv->scan.ie, req->ie_len)) { - frame.skb = ieee80211_probereq_get(hw, priv->vif, NULL, 0, - req->ie, req->ie_len); - if (!frame.skb) - return -ENOMEM; - kfree(priv->scan.ie); - priv->scan.ie = NULL; - priv->scan.ie_len = 0; - if (req->ie_len) { - priv->scan.ie = kmalloc(req->ie_len, GFP_KERNEL); - if (priv->scan.ie) { - memcpy(priv->scan.ie, req->ie, req->ie_len); - priv->scan.ie_len = req->ie_len; - } - } - } + frame.skb = ieee80211_probereq_get(hw, priv->vif, NULL, 0, + req->ie, req->ie_len); + if (!frame.skb) + return -ENOMEM; /* will be unlocked in cw1200_scan_work() */ down(&priv->scan.lock); diff --git a/drivers/staging/cw1200/scan.h b/drivers/staging/cw1200/scan.h index fd59123e742..abffd1d796f 100644 --- a/drivers/staging/cw1200/scan.h +++ b/drivers/staging/cw1200/scan.h @@ -30,8 +30,6 @@ struct cw1200_scan { struct ieee80211_channel **curr; struct ieee80211_channel **end; struct wsm_ssid ssids[WSM_SCAN_MAX_NUM_OF_SSIDS]; - u8 *ie; - size_t ie_len; int output_power; int n_ssids; int status; -- cgit v1.2.3