Skip to content

Commit

Permalink
mwifiex: minor cleanup and a fix in scan semaphore usage
Browse files Browse the repository at this point in the history
mwifiex_request_scan() takes care of synchronous internal scan
performed by driver during association.
Currently the semaphore acquired for the scan is unnecessarily
released at the end of different paths. Also, failure paths
returning error code other than "-1" are not considered.

We will release it at the end of routine to fix above issues.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Amitkumar Karwar authored and John W. Linville committed Oct 29, 2012
1 parent f162cac commit b0e70c2
Show file tree
Hide file tree
Showing 5 changed files with 1 addition and 20 deletions.
1 change: 0 additions & 1 deletion drivers/net/wireless/mwifiex/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -2119,7 +2119,6 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
}

sema_init(&priv->async_sem, 1);
priv->scan_pending_on_block = false;

dev_dbg(adapter->dev, "info: %s: Marvell 802.11 Adapter\n", dev->name);

Expand Down
5 changes: 0 additions & 5 deletions drivers/net/wireless/mwifiex/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,6 @@ static void scan_delay_timer_fn(unsigned long data)
kfree(priv->user_scan_cfg);
priv->user_scan_cfg = NULL;
}

if (priv->scan_pending_on_block) {
priv->scan_pending_on_block = false;
up(&priv->async_sem);
}
goto done;
}

Expand Down
1 change: 0 additions & 1 deletion drivers/net/wireless/mwifiex/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,6 @@ struct mwifiex_private {
u8 nick_name[16];
u16 current_key_index;
struct semaphore async_sem;
u8 scan_pending_on_block;
u8 report_scan_result;
struct cfg80211_scan_request *scan_request;
struct mwifiex_user_scan_cfg *user_scan_cfg;
Expand Down
10 changes: 1 addition & 9 deletions drivers/net/wireless/mwifiex/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -1762,10 +1762,6 @@ int mwifiex_ret_802_11_scan(struct mwifiex_private *priv,
}
if (priv->report_scan_result)
priv->report_scan_result = false;
if (priv->scan_pending_on_block) {
priv->scan_pending_on_block = false;
up(&priv->async_sem);
}

if (priv->user_scan_cfg) {
if (priv->scan_request) {
Expand Down Expand Up @@ -1914,7 +1910,6 @@ int mwifiex_request_scan(struct mwifiex_private *priv,
__func__);
return -1;
}
priv->scan_pending_on_block = true;

priv->adapter->scan_wait_q_woken = false;

Expand All @@ -1928,10 +1923,7 @@ int mwifiex_request_scan(struct mwifiex_private *priv,
if (!ret)
ret = mwifiex_wait_queue_complete(priv->adapter);

if (ret == -1) {
priv->scan_pending_on_block = false;
up(&priv->async_sem);
}
up(&priv->async_sem);

return ret;
}
Expand Down
4 changes: 0 additions & 4 deletions drivers/net/wireless/mwifiex/sta_cmdresp.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,6 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
if (priv->report_scan_result)
priv->report_scan_result = false;
if (priv->scan_pending_on_block) {
priv->scan_pending_on_block = false;
up(&priv->async_sem);
}
break;

case HostCmd_CMD_MAC_CONTROL:
Expand Down

0 comments on commit b0e70c2

Please sign in to comment.