]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
authorJohn W. Linville <linville@tuxdriver.com>
Mon, 31 Mar 2014 19:22:17 +0000 (15:22 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 31 Mar 2014 19:22:17 +0000 (15:22 -0400)
1  2 
drivers/net/wireless/mwifiex/main.c
drivers/net/wireless/mwifiex/scan.c

index 7b4502fefec388050d845df770550ae540acb0de,668a91cd115434703e896cd5a1d49495c77f70b9..77db0886c6e2e9fa764f2a0add8876b477972915
@@@ -38,7 -38,8 +38,8 @@@ static void scan_delay_timer_fn(unsigne
        if (adapter->surprise_removed)
                return;
  
-       if (adapter->scan_delay_cnt == MWIFIEX_MAX_SCAN_DELAY_CNT) {
+       if (adapter->scan_delay_cnt == MWIFIEX_MAX_SCAN_DELAY_CNT ||
+           !adapter->scan_processing) {
                /*
                 * Abort scan operation by cancelling all pending scan
                 * commands
@@@ -748,7 -749,7 +749,7 @@@ static struct net_device_stats *mwifiex
  
  static u16
  mwifiex_netdev_select_wmm_queue(struct net_device *dev, struct sk_buff *skb,
 -                              void *accel_priv)
 +                              void *accel_priv, select_queue_fallback_t fallback)
  {
        skb->priority = cfg80211_classify8021d(skb, NULL);
        return mwifiex_1d_to_wmm_queue[skb->priority];
index f13924447a2cd507496ffc26992243596839809e,e496497a7af04d5890a5eaea003f79c238509c44..7b3af3d29ded478ad658eed5a3836403d6dd7542
@@@ -591,10 -591,12 +591,12 @@@ mwifiex_scan_channel_list(struct mwifie
                          *chan_tlv_out,
                          struct mwifiex_chan_scan_param_set *scan_chan_list)
  {
+       struct mwifiex_adapter *adapter = priv->adapter;
        int ret = 0;
        struct mwifiex_chan_scan_param_set *tmp_chan_list;
        struct mwifiex_chan_scan_param_set *start_chan;
+       struct cmd_ctrl_node *cmd_node, *tmp_node;
+       unsigned long flags;
        u32 tlv_idx, rates_size, cmd_no;
        u32 total_scan_time;
        u32 done_early;
                scan_cfg_out->tlv_buf_len -=
                            sizeof(struct mwifiex_ie_types_header) + rates_size;
  
-               if (ret)
+               if (ret) {
+                       spin_lock_irqsave(&adapter->scan_pending_q_lock, flags);
+                       list_for_each_entry_safe(cmd_node, tmp_node,
+                                                &adapter->scan_pending_q,
+                                                list) {
+                               list_del(&cmd_node->list);
+                               cmd_node->wait_q_enabled = false;
+                               mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
+                       }
+                       spin_unlock_irqrestore(&adapter->scan_pending_q_lock,
+                                              flags);
                        break;
+               }
        }
  
        if (ret)
@@@ -1653,7 -1666,7 +1666,7 @@@ mwifiex_parse_single_response_buf(struc
        curr_bcn_bytes -= ETH_ALEN;
  
        if (!ext_scan) {
-               rssi = (s32) *(u8 *)current_ptr;
+               rssi = (s32) *current_ptr;
                rssi = (-rssi) * 100;           /* Convert dBm to mBm */
                current_ptr += sizeof(u8);
                curr_bcn_bytes -= sizeof(u8);
@@@ -2311,12 -2324,12 +2324,12 @@@ mwifiex_save_curr_bcn(struct mwifiex_pr
                         curr_bss->ht_info_offset);
  
        if (curr_bss->bcn_vht_cap)
 -              curr_bss->bcn_ht_cap = (void *)(curr_bss->beacon_buf +
 -                                              curr_bss->vht_cap_offset);
 +              curr_bss->bcn_vht_cap = (void *)(curr_bss->beacon_buf +
 +                                               curr_bss->vht_cap_offset);
  
        if (curr_bss->bcn_vht_oper)
 -              curr_bss->bcn_ht_oper = (void *)(curr_bss->beacon_buf +
 -                                               curr_bss->vht_info_offset);
 +              curr_bss->bcn_vht_oper = (void *)(curr_bss->beacon_buf +
 +                                                curr_bss->vht_info_offset);
  
        if (curr_bss->bcn_bss_co_2040)
                curr_bss->bcn_bss_co_2040 =