rpms/kernel/devel linux-2.6-iwlwifi-sw-scan-default.patch, NONE, 1.1 linux-2.6-mac80211-fixes.patch, NONE, 1.1 linux-2.6-mac80211-scan-optimizations.patch, NONE, 1.1 kernel-2.6.spec, 1.3168, 1.3169

John W. Linville (linville) fedora-extras-commits at redhat.com
Fri May 18 14:56:47 UTC 2007


Author: linville

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv29807

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-iwlwifi-sw-scan-default.patch 
	linux-2.6-mac80211-fixes.patch 
	linux-2.6-mac80211-scan-optimizations.patch 
Log Message:
mac80211 fixes, default iwl3945 to sw scan

linux-2.6-iwlwifi-sw-scan-default.patch:

--- NEW FILE linux-2.6-iwlwifi-sw-scan-default.patch ---
--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c.orig	2007-05-18 10:28:27.000000000 -0400
+++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c	2007-05-18 10:38:03.000000000 -0400
@@ -103,7 +103,7 @@ MODULE_LICENSE("GPL");
 u32 iwl_debug_level;
 #endif
 
-static int param_disable_hw_scan = 0;
+static int param_disable_hw_scan = 1;
 static int param_debug = 0;
 static int param_channel = 0;
 static int param_mode = 0;
@@ -11232,6 +11232,8 @@ static int ipw_pci_probe(struct pci_dev 
 	local->short_preamble = 1;
 
 	ieee->flags = IEEE80211_HW_WEP_INCLUDE_IV;
+	if (param_disable_hw_scan)
+		ieee->flags |= IEEE80211_HW_NO_PROBE_FILTERING;
 	ieee->queues = 4;
 
 	spin_lock_init(&priv->lock);
@@ -11685,7 +11687,7 @@ MODULE_PARM_DESC(debug, "debug output ma
 module_param_named(channel, param_channel, int, 0444);
 MODULE_PARM_DESC(channel, "channel to limit associate to (default 0 [ANY])");
 module_param_named(disable_hw_scan, param_disable_hw_scan, int, 0444);
-MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 0)");
+MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 1)");
 
 /* QoS */
 module_param_named(qos_enable, param_qos_enable, int, 0444);

linux-2.6-mac80211-fixes.patch:

--- NEW FILE linux-2.6-mac80211-fixes.patch ---
--- linux-2.6.21.noarch/net/mac80211/ieee80211.c.orig	2007-05-18 10:16:22.000000000 -0400
+++ linux-2.6.21.noarch/net/mac80211/ieee80211.c	2007-05-18 10:19:02.000000000 -0400
@@ -3406,8 +3406,10 @@ ieee80211_rx_h_defragment(struct ieee802
 			return TXRX_DROP;
 		}
 	}
-	while ((skb = __skb_dequeue(&entry->skb_list)))
+	while ((skb = __skb_dequeue(&entry->skb_list))) {
 		memcpy(skb_put(rx->skb, skb->len), skb->data, skb->len);
+		dev_kfree_skb(skb);
+	}
 
 	/* Complete frame has been reassembled - process it now */
 	rx->fragmented = 1;
--- linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c.orig	2007-05-18 10:16:20.000000000 -0400
+++ linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c	2007-05-18 10:19:02.000000000 -0400
@@ -1180,6 +1180,8 @@ static void ieee80211_rx_mgmt_assoc_resp
 	if (status_code != WLAN_STATUS_SUCCESS) {
 		printk(KERN_DEBUG "%s: AP denied association (code=%d)\n",
 		       dev->name, status_code);
+		if (status_code == WLAN_STATUS_REASSOC_NO_ASSOC)
+			ifsta->prev_bssid_set = 0;
 		return;
 	}
 

linux-2.6-mac80211-scan-optimizations.patch:

--- NEW FILE linux-2.6-mac80211-scan-optimizations.patch ---
--- linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c.orig	2007-05-18 10:20:33.000000000 -0400
+++ linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c	2007-05-18 10:41:01.000000000 -0400
@@ -45,9 +45,8 @@
 #define IEEE80211_SCAN_INTERVAL_SLOW (15 * HZ)
 #define IEEE80211_IBSS_JOIN_TIMEOUT (20 * HZ)
 
-#define IEEE80211_PROBE_DELAY (HZ / 33)
-#define IEEE80211_CHANNEL_TIME (HZ / 33)
-#define IEEE80211_PASSIVE_CHANNEL_TIME (HZ / 5)
+#define IEEE80211_CHANNEL_TIME (HZ / 50)
+#define IEEE80211_PASSIVE_CHANNEL_TIME (HZ / 9)
 #define IEEE80211_SCAN_RESULT_EXPIRE (10 * HZ)
 #define IEEE80211_IBSS_MERGE_INTERVAL (30 * HZ)
 #define IEEE80211_IBSS_INACTIVITY_LIMIT (60 * HZ)
@@ -2828,15 +2827,17 @@ void ieee80211_sta_scan_work(struct work
 		if (skip)
 			break;
 
-		next_delay = IEEE80211_PROBE_DELAY +
-			     usecs_to_jiffies(local->hw.channel_change_time);
+		next_delay = usecs_to_jiffies(local->hw.channel_change_time);
 		local->scan_state = SCAN_SEND_PROBE;
-		break;
+		if (local->hw.channel_change_time)
+			break;
 	case SCAN_SEND_PROBE:
 		if (local->scan_channel->flag & IEEE80211_CHAN_W_ACTIVE_SCAN) {
 			ieee80211_send_probe_req(dev, NULL, local->scan_ssid,
 						 local->scan_ssid_len);
 			next_delay = IEEE80211_CHANNEL_TIME;
+			if (local->scan_hw_mode->mode == MODE_IEEE80211A)
+				next_delay >>= 1;
 		} else
 			next_delay = IEEE80211_PASSIVE_CHANNEL_TIME;
 		local->scan_state = SCAN_SET_CHANNEL;


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.3168
retrieving revision 1.3169
diff -u -r1.3168 -r1.3169
--- kernel-2.6.spec	18 May 2007 00:37:42 -0000	1.3168
+++ kernel-2.6.spec	18 May 2007 14:56:42 -0000	1.3169
@@ -607,6 +607,9 @@
 Patch2303: linux-2.6-bcm43xx-pci-neuter.patch
 Patch2304: linux-2.6-iwlwifi-preferred_rate_control.patch
 Patch2305: linux-2.6-iwlwifi-irq_tasklet.patch
+Patch2306: linux-2.6-mac80211-fixes.patch
+Patch2307: linux-2.6-iwlwifi-sw-scan-default.patch
+Patch2308: linux-2.6-mac80211-scan-optimizations.patch
 
 # Assorted dyntick/clock/timer fixes.
 Patch2400: linux-2.6-highres-dyntick-avoid-xtime-lock-contention.patch
@@ -1377,6 +1380,12 @@
 %patch2304 -p1
 # kill iwl3945 irq_tasklet at module remove 
 %patch2305 -p1
+# some mac80211 bug fixes (defrag mem leak, reassoc failure handling)
+%patch2306 -p1
+# iwl3945: default to sw scan
+%patch2307 -p1
+# mac80211: improve scan performance
+%patch2308 -p1
 
 # Assorted dyntick/clock/timer fixes.
 %patch2400 -p1
@@ -2365,6 +2374,11 @@
 %endif
 
 %changelog
+* Fri May 18 2007 John W. Linville <linville at redhat.com>
+- upstream mac80211 bugfixes (defrag mem leak, reassoc failure handling)
+- make iwl3945 default to using software scan
+- improve mac80211 software scan performance
+
 * Thu May 17 2007 John W. Linville <linville at redhat.com>
 - iwl3945: kill irq_tasklet at module remove 
 




More information about the fedora-extras-commits mailing list