Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-2.6-block.git] / drivers / net / wireless / marvell / mwifiex / scan.c
index e2786ab612cadcb244e39668611263fef6e47e03..0d6d41727037a737ed224ca84b6bd370dc0a5b7b 100644 (file)
@@ -1504,7 +1504,6 @@ int mwifiex_scan_networks(struct mwifiex_private *priv,
        u8 filtered_scan;
        u8 scan_current_chan_only;
        u8 max_chan_per_scan;
-       unsigned long flags;
 
        if (adapter->scan_processing) {
                mwifiex_dbg(adapter, WARN,
@@ -1525,9 +1524,9 @@ int mwifiex_scan_networks(struct mwifiex_private *priv,
                return -EFAULT;
        }
 
-       spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
+       spin_lock_bh(&adapter->mwifiex_cmd_lock);
        adapter->scan_processing = true;
-       spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
+       spin_unlock_bh(&adapter->mwifiex_cmd_lock);
 
        scan_cfg_out = kzalloc(sizeof(union mwifiex_scan_cmd_config_tlv),
                               GFP_KERNEL);
@@ -1555,13 +1554,12 @@ int mwifiex_scan_networks(struct mwifiex_private *priv,
 
        /* Get scan command from scan_pending_q and put to cmd_pending_q */
        if (!ret) {
-               spin_lock_irqsave(&adapter->scan_pending_q_lock, flags);
+               spin_lock_bh(&adapter->scan_pending_q_lock);
                if (!list_empty(&adapter->scan_pending_q)) {
                        cmd_node = list_first_entry(&adapter->scan_pending_q,
                                                    struct cmd_ctrl_node, list);
                        list_del(&cmd_node->list);
-                       spin_unlock_irqrestore(&adapter->scan_pending_q_lock,
-                                              flags);
+                       spin_unlock_bh(&adapter->scan_pending_q_lock);
                        mwifiex_insert_cmd_to_pending_q(adapter, cmd_node);
                        queue_work(adapter->workqueue, &adapter->main_work);
 
@@ -1572,8 +1570,7 @@ int mwifiex_scan_networks(struct mwifiex_private *priv,
                                mwifiex_wait_queue_complete(adapter, cmd_node);
                        }
                } else {
-                       spin_unlock_irqrestore(&adapter->scan_pending_q_lock,
-                                              flags);
+                       spin_unlock_bh(&adapter->scan_pending_q_lock);
                }
        }
 
@@ -1581,9 +1578,9 @@ int mwifiex_scan_networks(struct mwifiex_private *priv,
        kfree(scan_chan_list);
 done:
        if (ret) {
-               spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
+               spin_lock_bh(&adapter->mwifiex_cmd_lock);
                adapter->scan_processing = false;
-               spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
+               spin_unlock_bh(&adapter->mwifiex_cmd_lock);
        }
        return ret;
 }
@@ -1719,7 +1716,6 @@ static int mwifiex_update_curr_bss_params(struct mwifiex_private *priv,
 {
        struct mwifiex_bssdescriptor *bss_desc;
        int ret;
-       unsigned long flags;
 
        /* Allocate and fill new bss descriptor */
        bss_desc = kzalloc(sizeof(struct mwifiex_bssdescriptor), GFP_KERNEL);
@@ -1734,7 +1730,7 @@ static int mwifiex_update_curr_bss_params(struct mwifiex_private *priv,
        if (ret)
                goto done;
 
-       spin_lock_irqsave(&priv->curr_bcn_buf_lock, flags);
+       spin_lock_bh(&priv->curr_bcn_buf_lock);
        /* Make a copy of current BSSID descriptor */
        memcpy(&priv->curr_bss_params.bss_descriptor, bss_desc,
               sizeof(priv->curr_bss_params.bss_descriptor));
@@ -1743,7 +1739,7 @@ static int mwifiex_update_curr_bss_params(struct mwifiex_private *priv,
         * in mwifiex_save_curr_bcn()
         */
        mwifiex_save_curr_bcn(priv);
-       spin_unlock_irqrestore(&priv->curr_bcn_buf_lock, flags);
+       spin_unlock_bh(&priv->curr_bcn_buf_lock);
 
 done:
        /* beacon_ie buffer was allocated in function
@@ -1997,15 +1993,14 @@ static void mwifiex_check_next_scan_command(struct mwifiex_private *priv)
 {
        struct mwifiex_adapter *adapter = priv->adapter;
        struct cmd_ctrl_node *cmd_node;
-       unsigned long flags;
 
-       spin_lock_irqsave(&adapter->scan_pending_q_lock, flags);
+       spin_lock_bh(&adapter->scan_pending_q_lock);
        if (list_empty(&adapter->scan_pending_q)) {
-               spin_unlock_irqrestore(&adapter->scan_pending_q_lock, flags);
+               spin_unlock_bh(&adapter->scan_pending_q_lock);
 
-               spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
+               spin_lock_bh(&adapter->mwifiex_cmd_lock);
                adapter->scan_processing = false;
-               spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
+               spin_unlock_bh(&adapter->mwifiex_cmd_lock);
 
                mwifiex_active_scan_req_for_passive_chan(priv);
 
@@ -2029,13 +2024,13 @@ static void mwifiex_check_next_scan_command(struct mwifiex_private *priv)
                }
        } else if ((priv->scan_aborting && !priv->scan_request) ||
                   priv->scan_block) {
-               spin_unlock_irqrestore(&adapter->scan_pending_q_lock, flags);
+               spin_unlock_bh(&adapter->scan_pending_q_lock);
 
                mwifiex_cancel_pending_scan_cmd(adapter);
 
-               spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
+               spin_lock_bh(&adapter->mwifiex_cmd_lock);
                adapter->scan_processing = false;
-               spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
+               spin_unlock_bh(&adapter->mwifiex_cmd_lock);
 
                if (!adapter->active_scan_triggered) {
                        if (priv->scan_request) {
@@ -2061,7 +2056,7 @@ static void mwifiex_check_next_scan_command(struct mwifiex_private *priv)
                cmd_node = list_first_entry(&adapter->scan_pending_q,
                                            struct cmd_ctrl_node, list);
                list_del(&cmd_node->list);
-               spin_unlock_irqrestore(&adapter->scan_pending_q_lock, flags);
+               spin_unlock_bh(&adapter->scan_pending_q_lock);
                mwifiex_insert_cmd_to_pending_q(adapter, cmd_node);
        }
 
@@ -2071,15 +2066,14 @@ static void mwifiex_check_next_scan_command(struct mwifiex_private *priv)
 void mwifiex_cancel_scan(struct mwifiex_adapter *adapter)
 {
        struct mwifiex_private *priv;
-       unsigned long cmd_flags;
        int i;
 
        mwifiex_cancel_pending_scan_cmd(adapter);
 
        if (adapter->scan_processing) {
-               spin_lock_irqsave(&adapter->mwifiex_cmd_lock, cmd_flags);
+               spin_lock_bh(&adapter->mwifiex_cmd_lock);
                adapter->scan_processing = false;
-               spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, cmd_flags);
+               spin_unlock_bh(&adapter->mwifiex_cmd_lock);
                for (i = 0; i < adapter->priv_num; i++) {
                        priv = adapter->priv[i];
                        if (!priv)
@@ -2561,7 +2555,6 @@ int mwifiex_ret_802_11_scan_ext(struct mwifiex_private *priv,
 
        struct host_cmd_ds_command *cmd_ptr;
        struct cmd_ctrl_node *cmd_node;
-       unsigned long cmd_flags, scan_flags;
        bool complete_scan = false;
 
        mwifiex_dbg(adapter, INFO, "info: EXT scan returns successfully\n");
@@ -2596,8 +2589,8 @@ int mwifiex_ret_802_11_scan_ext(struct mwifiex_private *priv,
                               sizeof(struct mwifiex_ie_types_header));
        }
 
-       spin_lock_irqsave(&adapter->cmd_pending_q_lock, cmd_flags);
-       spin_lock_irqsave(&adapter->scan_pending_q_lock, scan_flags);
+       spin_lock_bh(&adapter->cmd_pending_q_lock);
+       spin_lock_bh(&adapter->scan_pending_q_lock);
        if (list_empty(&adapter->scan_pending_q)) {
                complete_scan = true;
                list_for_each_entry(cmd_node, &adapter->cmd_pending_q, list) {
@@ -2611,8 +2604,8 @@ int mwifiex_ret_802_11_scan_ext(struct mwifiex_private *priv,
                        }
                }
        }
-       spin_unlock_irqrestore(&adapter->scan_pending_q_lock, scan_flags);
-       spin_unlock_irqrestore(&adapter->cmd_pending_q_lock, cmd_flags);
+       spin_unlock_bh(&adapter->scan_pending_q_lock);
+       spin_unlock_bh(&adapter->cmd_pending_q_lock);
 
        if (complete_scan)
                mwifiex_complete_scan(priv);
@@ -2784,13 +2777,12 @@ mwifiex_queue_scan_cmd(struct mwifiex_private *priv,
                       struct cmd_ctrl_node *cmd_node)
 {
        struct mwifiex_adapter *adapter = priv->adapter;
-       unsigned long flags;
 
        cmd_node->wait_q_enabled = true;
        cmd_node->condition = &adapter->scan_wait_q_woken;
-       spin_lock_irqsave(&adapter->scan_pending_q_lock, flags);
+       spin_lock_bh(&adapter->scan_pending_q_lock);
        list_add_tail(&cmd_node->list, &adapter->scan_pending_q);
-       spin_unlock_irqrestore(&adapter->scan_pending_q_lock, flags);
+       spin_unlock_bh(&adapter->scan_pending_q_lock);
 }
 
 /*