Changeset 35819


Ignore:
Timestamp:
2013-02-26T22:52:59+01:00 (5 years ago)
Author:
nbd
Message:

mac80211: fix sending probe requests in client mode, fixes connecting to hidden networks (#13056)

Location:
trunk/package/mac80211/patches
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/patches/300-pending_work.patch

    r35806 r35819  
    358358--- a/net/mac80211/tx.c 
    359359+++ b/net/mac80211/tx.c 
    360 @@ -1848,9 +1848,24 @@ netdev_tx_t ieee80211_subif_start_xmit(s 
     360@@ -1231,34 +1231,40 @@ static bool ieee80211_tx_frags(struct ie 
     361                if (local->queue_stop_reasons[q] || 
     362                    (!txpending && !skb_queue_empty(&local->pending[q]))) { 
     363                        if (unlikely(info->flags & 
     364-                                       IEEE80211_TX_INTFL_OFFCHAN_TX_OK && 
     365-                                    local->queue_stop_reasons[q] & 
     366-                                       ~BIT(IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL))) { 
     367+                                    IEEE80211_TX_INTFL_OFFCHAN_TX_OK)) { 
     368+                               if (local->queue_stop_reasons[q] & 
     369+                                   ~BIT(IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL)) { 
     370+                                       /* 
     371+                                        * Drop off-channel frames if queues 
     372+                                        * are stopped for any reason other 
     373+                                        * than off-channel operation. Never 
     374+                                        * queue them. 
     375+                                        */ 
     376+                                       spin_unlock_irqrestore( 
     377+                                               &local->queue_stop_reason_lock, 
     378+                                               flags); 
     379+                                       ieee80211_purge_tx_queue(&local->hw, 
     380+                                                                skbs); 
     381+                                       return true; 
     382+                               } 
     383+                       } else { 
     384+ 
     385                                /* 
     386-                                * Drop off-channel frames if queues are stopped 
     387-                                * for any reason other than off-channel 
     388-                                * operation. Never queue them. 
     389+                                * Since queue is stopped, queue up frames for 
     390+                                * later transmission from the tx-pending 
     391+                                * tasklet when the queue is woken again. 
     392                                 */ 
     393-                               spin_unlock_irqrestore( 
     394-                                       &local->queue_stop_reason_lock, flags); 
     395-                               ieee80211_purge_tx_queue(&local->hw, skbs); 
     396-                               return true; 
     397+                               if (txpending) 
     398+                                       skb_queue_splice_init(skbs, 
     399+                                                             &local->pending[q]); 
     400+                               else 
     401+                                       skb_queue_splice_tail_init(skbs, 
     402+                                                                  &local->pending[q]); 
     403+ 
     404+                               spin_unlock_irqrestore(&local->queue_stop_reason_lock, 
     405+                                                      flags); 
     406+                               return false; 
     407                        } 
     408- 
     409-                       /* 
     410-                        * Since queue is stopped, queue up frames for later 
     411-                        * transmission from the tx-pending tasklet when the 
     412-                        * queue is woken again. 
     413-                        */ 
     414-                       if (txpending) 
     415-                               skb_queue_splice_init(skbs, &local->pending[q]); 
     416-                       else 
     417-                               skb_queue_splice_tail_init(skbs, 
     418-                                                          &local->pending[q]); 
     419- 
     420-                       spin_unlock_irqrestore(&local->queue_stop_reason_lock, 
     421-                                              flags); 
     422-                       return false; 
     423                } 
     424                spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); 
     425  
     426@@ -1848,9 +1854,24 @@ netdev_tx_t ieee80211_subif_start_xmit(s 
    361427                } 
    362428  
  • trunk/package/mac80211/patches/540-mac80211_optimize_mcs_rate_mask.patch

    r35753 r35819  
    7070                    tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT || 
    7171                    tx->sdata->vif.type == NL80211_IFTYPE_ADHOC); 
    72 @@ -2505,8 +2507,6 @@ struct sk_buff *ieee80211_beacon_get_tim 
     72@@ -2511,8 +2513,6 @@ struct sk_buff *ieee80211_beacon_get_tim 
    7373                txrc.max_rate_idx = -1; 
    7474        else 
Note: See TracChangeset for help on using the changeset viewer.