rpms/kernel/F-7 git-iwlwifi.patch, 1.9, 1.10 kernel-2.6.spec, 1.3190, 1.3191 linux-2.6-mac80211-fixes.patch, 1.1, 1.2 linux-2.6-iwlwifi-irq_tasklet.patch, 1.2, NONE linux-2.6-iwlwifi-preferred_rate_control.patch, 1.1, NONE linux-2.6-mac80211-scan-optimizations.patch, 1.1, NONE

John W. Linville (linville) fedora-extras-commits at redhat.com
Wed May 23 19:43:13 UTC 2007


Author: linville

Update of /cvs/pkgs/rpms/kernel/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv5483

Modified Files:
	git-iwlwifi.patch kernel-2.6.spec 
	linux-2.6-mac80211-fixes.patch 
Removed Files:
	linux-2.6-iwlwifi-irq_tasklet.patch 
	linux-2.6-iwlwifi-preferred_rate_control.patch 
	linux-2.6-mac80211-scan-optimizations.patch 
Log Message:
update iwlwifi to 0.0.21

git-iwlwifi.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.9 -r 1.10 git-iwlwifi.patch
Index: git-iwlwifi.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/git-iwlwifi.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- git-iwlwifi.patch	8 May 2007 00:53:17 -0000	1.9
+++ git-iwlwifi.patch	23 May 2007 19:42:37 -0000	1.10
@@ -1,106 +1,285 @@
-rsync://www.intellinuxwireless.org/repos/iwlwifi.git
-
-commit 7e788a8559862f74c07054851beb9b99ba721b16
-
---- linux-2.6.21.noarch/drivers/net/wireless/mac80211/Makefile.orig	2007-05-07 20:17:13.000000000 -0400
-+++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/Makefile	2007-05-07 20:17:18.000000000 -0400
-@@ -4,3 +4,4 @@
+--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/Makefile.orig	2007-05-23 15:11:24.000000000 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/Makefile	2007-05-23 15:10:57.000000000 -0400
+@@ -4,3 +4,4 @@ obj-$(CONFIG_ADM8211)		+= adm8211/
  obj-$(CONFIG_P54_COMMON)	+= p54/
  obj-$(CONFIG_ZD1211RW_MAC80211)	+= zd1211rw/
  obj-$(CONFIG_RTL818X)		+= rtl818x/
 +obj-$(CONFIG_IWLWIFI)		+= iwlwifi/
---- linux-2.6.21.noarch/drivers/net/wireless/mac80211/Kconfig.orig	2007-05-07 20:17:13.000000000 -0400
-+++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/Kconfig	2007-05-07 20:17:18.000000000 -0400
-@@ -4,3 +4,4 @@
+--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/Kconfig.orig	2007-05-23 15:11:10.000000000 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/Kconfig	2007-05-23 15:11:06.000000000 -0400
+@@ -4,3 +4,4 @@ source "drivers/net/wireless/mac80211/ad
  source "drivers/net/wireless/mac80211/p54/Kconfig"
  source "drivers/net/wireless/mac80211/zd1211rw/Kconfig"
  source "drivers/net/wireless/mac80211/rtl818x/Kconfig"
 +source "drivers/net/wireless/mac80211/iwlwifi/Kconfig"
---- /dev/null	2007-05-07 18:42:05.734656575 -0400
-+++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/Makefile	2007-05-07 20:17:18.000000000 -0400
-@@ -0,0 +1,15 @@
+--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/iwl-channel.h.orig	2007-05-23 15:09:42.000000000 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/iwl-channel.h	2007-05-23 15:09:35.000000000 -0400
+@@ -0,0 +1,161 @@
++/******************************************************************************
++ *
++ * Copyright(c) 2005 - 2007 Intel Corporation. All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of version 2 of the GNU General Public License as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
++ * more details.
++ *
++ * You should have received a copy of the GNU General Public License along with
++ * this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
++ *
++ * The full GNU General Public License is included in this distribution in the
++ * file called LICENSE.
++ *
++ * Contact Information:
++ * James P. Ketrenos <ipw2100-admin at linux.intel.com>
++ * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
++ *
++ *****************************************************************************/
++#ifndef __iwl_channel_h__
++#define __iwl_channel_h__
++
++#define IWL_NUM_SCAN_RATES         (2)
++
++struct iwl_channel_tgd_info {
++	u8 type;
++	s8 max_power;
++};
++
++struct iwl_channel_tgh_info {
++	s64 last_radar_time;
++};
++
++/* current Tx power values to use, one for each rate for each channel.
++ * requested power is limited by:
++ * -- regulatory EEPROM limits for this channel
++ * -- hardware capabilities (clip-powers)
++ * -- spectrum management
++ * -- user preference (e.g. iwconfig)
++ * when requested power is set, base power index must also be set. */
++struct iwl_channel_power_info {
++	struct iwl_tx_power tpc;	/* actual radio and DSP gain settings */
++	s8 power_table_index;	/* actual (compenst'd) index into gain table */
++	s8 base_power_index;	/* gain index for power at factory temp. */
++	s8 requested_power;	/* power (dBm) requested for this chnl/rate */
++};
++
++/* current scan Tx power values to use, one for each scan rate for each
++ * channel. */
++struct iwl_scan_power_info {
++	struct iwl_tx_power tpc;	/* actual radio and DSP gain settings */
++	s8 power_table_index;	/* actual (compenst'd) index into gain table */
++	s8 requested_power;	/* scan pwr (dBm) requested for chnl/rate */
++};
++
++/* Channel unlock period is 15 seconds. If no beacon or probe response
++ * has been received within 15 seconds on a locked channel then the channel
++ * remains locked. */
++#define TX_UNLOCK_PERIOD 15
++
++/* CSA lock period is 15 seconds.  If a CSA has been received on a channel in
++ * the last 15 seconds, the channel is locked */
++#define CSA_LOCK_PERIOD 15
++/*
++ * One for each channel, holds all channel setup data
++ * Some of the fields (e.g. eeprom and flags/max_power_avg) are redundant
++ *     with one another!
++ */
++#define IWL4965_MAX_RATE (33)
++
++struct iwl_channel_info {
++	struct iwl_channel_tgd_info tgd;
++	struct iwl_channel_tgh_info tgh;
++	struct iwl_eeprom_channel eeprom;	/* EEPROM regulatory limit */
++	struct iwl_eeprom_channel fat_eeprom;	/* EEPROM regulatory limit for FAT channel */
++
++	u8 channel;		/* channel number */
++	u8 flags;		/* flags copied from EEPROM */
++	s8 max_power_avg;	/* (dBm) regul. eeprom, normal Tx, any rate */
++	s8 curr_txpow;		/* (dBm) regulatory/spectrum/user (not h/w) */
++	s8 min_power;		/* always 0 */
++	s8 scan_power;		/* (dBm) regul. eeprom, direct scans, any rate */
++
++	u8 group_index;		/* 0-4, maps channel to group1/2/3/4/5 */
++	u8 band_index;		/* 0-4, maps channel to band1/2/3/4/5 */
++	u8 phymode;		/* MODE_IEEE80211{A,B,G} */
++
++	/* Radio/DSP gain settings for each "normal" data Tx rate.
++	 * These include, in addition to RF and DSP gain, a few fields for
++	 *   remembering/modifying gain settings (indexes). */
++	struct iwl_channel_power_info power_info[IWL4965_MAX_RATE];
++
++#if IWL == 4965
++	/* FAT channel info */
++	s8 fat_max_power_avg;	/* (dBm) regul. eeprom, normal Tx, any rate */
++	s8 fat_curr_txpow;	/* (dBm) regulatory/spectrum/user (not h/w) */
++	s8 fat_min_power;	/* always 0 */
++	s8 fat_scan_power;	/* (dBm) eeprom, direct scans, any rate */
++	u8 fat_flags;		/* flags copied from EEPROM */
++	u8 fat_extension_channel;
++#endif
++
++	/* Radio/DSP gain settings for each scan rate, for directed scans. */
++	struct iwl_scan_power_info scan_pwr_info[IWL_NUM_SCAN_RATES];
++};
++
++struct iwl_clip_group {
++	/* maximum power level to prevent clipping for each rate, derived by
++	 *   us from this band's saturation power in EEPROM */
++	const s8 clip_powers[IWL_MAX_RATES];
++};
++
++static inline int is_channel_valid(const struct iwl_channel_info *ch_info)
++{
++	if (ch_info == NULL)
++		return 0;
++	return (ch_info->flags & EEPROM_CHANNEL_VALID) ? 1 : 0;
++}
++
++static inline int is_channel_narrow(const struct iwl_channel_info *ch_info)
++{
++	return (ch_info->flags & EEPROM_CHANNEL_NARROW) ? 1 : 0;
++}
++
++static inline int is_channel_radar(const struct iwl_channel_info *ch_info)
++{
++	return (ch_info->flags & EEPROM_CHANNEL_RADAR) ? 1 : 0;
++}
++
++static inline u8 is_channel_a_band(const struct iwl_channel_info *ch_info)
++{
++	return (ch_info->phymode == MODE_IEEE80211A) ? 1 : 0;
++}
++
++static inline u8 is_channel_bg_band(const struct iwl_channel_info *ch_info)
++{
++	return (ch_info->phymode == MODE_IEEE80211B ||
++		ch_info->phymode == MODE_IEEE80211G) ? 1 : 0;
++}
++
++static inline int is_channel_passive(const struct iwl_channel_info *ch)
++{
++	return (!(ch->flags & EEPROM_CHANNEL_ACTIVE)) ? 1 : 0;
++}
++
++static inline int is_channel_ibss(const struct iwl_channel_info *ch)
++{
++	return ((ch->flags & EEPROM_CHANNEL_IBSS)) ? 1 : 0;
++}
++
++extern const struct iwl_channel_info *iwl_get_channel_info(const struct iwl_priv
++							   *priv, int phymode,
++							   int channel);
++
++#endif
[...33540 lines suppressed...]
-+	struct ipw_priv *priv = (struct ipw_priv *)priv_rate;
++	struct iwl_priv *priv = (struct iwl_priv *)priv_rate;
 +
-+	IPW_DEBUG_RATE("enter\n");
++	IWL_DEBUG_RATE("enter\n");
 +
 +	memset(extra, 0, sizeof(*extra));
 +
 +	fc = le16_to_cpu(hdr->frame_control);
-+	if ((WLAN_FC_GET_TYPE(fc) != IEEE80211_FTYPE_DATA) ||
++	if (((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA) ||
 +	    (is_multicast_ether_addr(hdr->addr1))) {
 +		/* Send management frames and broadcast/multicast data using
 +		 * lowest rate. */
 +		/* TODO: this could probably be improved.. */
-+  		IPW_DEBUG_RATE("leave: lowest rate (not data or is "
++		IWL_DEBUG_RATE("leave: lowest rate (not data or is "
 +			       "multicast)\n");
-+		
-+		return ipw_get_lowest_rate(local);
++
++		return iwl_get_lowest_rate(local);
 +	}
-+	    
++
 +	sta = sta_info_get(local, hdr->addr1);
 +	if (!sta || !sta->rate_ctrl_priv) {
-+		IPW_DEBUG_RATE("leave: No STA priv data to update!\n");
++		IWL_DEBUG_RATE("leave: No STA priv data to update!\n");
 +		if (sta)
 +			sta_info_put(sta);
 +		return NULL;
 +	}
 +
 +	rate_mask = sta->supp_rates;
-+	index = min(sta->txrate & 0xffff, IPW_RATE_COUNT - 1);
-+	
++	index = min(sta->txrate & 0xffff, IWL_RATE_COUNT - 1);
++
 +	rs_priv = (void *)sta->rate_ctrl_priv;
 +
-+	spin_lock_irqsave(&rs_priv->lq_mngr.lock, flags);
++	spin_lock_irqsave(&rs_priv->lock, flags);
 +
-+	if (rs_priv->start_rate != IPW_RATE_INVALID) {
++	if (rs_priv->start_rate != IWL_RATE_INVALID) {
 +		index = rs_priv->start_rate;
-+		rs_priv->start_rate = IPW_RATE_INVALID;
++		rs_priv->start_rate = IWL_RATE_INVALID;
 +	}
 +
 +	window = &(rs_priv->win[index]);
 +
 +	fail_count = window->counter - window->success_counter;
 +
-+	if (((fail_count <= IPW_RATE_MIN_FAILURE_TH) &&
-+	     (window->success_counter < IPW_RATE_MIN_SUCCESS_TH))) {
-+		window->average_tpt = IPW_INVALID_VALUE;
-+		spin_unlock_irqrestore(&rs_priv->lq_mngr.lock, flags);
++	if (((fail_count <= IWL_RATE_MIN_FAILURE_TH) &&
++	     (window->success_counter < IWL_RATE_MIN_SUCCESS_TH))) {
++		window->average_tpt = IWL_INVALID_VALUE;
++		spin_unlock_irqrestore(&rs_priv->lock, flags);
 +
-+  		IPW_DEBUG_RATE("Invalid average_tpt on rate %d: "
++		IWL_DEBUG_RATE("Invalid average_tpt on rate %d: "
 +			       "counter: %d, success_counter: %d, "
-+			       "expected_tpt is %sNULL\n", 
++			       "expected_tpt is %sNULL\n",
 +			       index,
-+			       window->counter, 
++			       window->counter,
 +			       window->success_counter,
-+			       rs_priv->lq_mngr.expected_tpt ? "not " : "");
++			       rs_priv->expected_tpt ? "not " : "");
 +		goto out;
 +
-+	} 
++	}
 +
 +	window->average_tpt = ((window->success_ratio *
-+				rs_priv->lq_mngr.
-+				expected_tpt[index] + 64) / 128);
++				rs_priv->expected_tpt[index] + 64) / 128);
 +	current_tpt = window->average_tpt;
 +
-+	high_low = ipw_get_adjacent_rate(rs_priv, index, rate_mask, 
++	high_low = iwl_get_adjacent_rate(rs_priv, index, rate_mask,
 +					 local->hw.conf.phymode);
 +	low = high_low & 0xff;
 +	high = (high_low >> 8) & 0xff;
 +
-+	if (low  != IPW_RATE_INVALID) 
++	if (low != IWL_RATE_INVALID)
 +		low_tpt = rs_priv->win[low].average_tpt;
 +
-+	if (high != IPW_RATE_INVALID)
++	if (high != IWL_RATE_INVALID)
 +		high_tpt = rs_priv->win[high].average_tpt;
 +
-+	spin_unlock_irqrestore(&rs_priv->lq_mngr.lock, flags);
++	spin_unlock_irqrestore(&rs_priv->lock, flags);
 +
 +	scale_action = 1;
 +
-+	if ((window->success_ratio < IPW_RATE_DECREASE_TH) ||
-+	    !current_tpt) {
-+		IPW_DEBUG_RATE("decrease rate because of low success_ratio\n");
++	if ((window->success_ratio < IWL_RATE_DECREASE_TH) || !current_tpt) {
++		IWL_DEBUG_RATE("decrease rate because of low success_ratio\n");
 +		scale_action = -1;
-+	} else if ((low_tpt == IPW_INVALID_VALUE) &&
-+		   (high_tpt == IPW_INVALID_VALUE)) {
++	} else if ((low_tpt == IWL_INVALID_VALUE) &&
++		   (high_tpt == IWL_INVALID_VALUE)) {
 +		scale_action = 1;
-+	} else if ((low_tpt != IPW_INVALID_VALUE) &&
-+		   (high_tpt != IPW_INVALID_VALUE)
++	} else if ((low_tpt != IWL_INVALID_VALUE) &&
++		   (high_tpt != IWL_INVALID_VALUE)
 +		   && (low_tpt < current_tpt)
 +		   && (high_tpt < current_tpt)) {
-+		IPW_DEBUG_RATE("No action -- low [%d] & high [%d] < "
++		IWL_DEBUG_RATE("No action -- low [%d] & high [%d] < "
 +			       "current_tpt [%d]\n",
 +			       low_tpt, high_tpt, current_tpt);
 +		scale_action = 0;
 +	} else {
-+		if (high_tpt != IPW_INVALID_VALUE) {
++		if (high_tpt != IWL_INVALID_VALUE) {
 +			if (high_tpt > current_tpt)
 +				scale_action = 1;
 +			else {
-+				IPW_DEBUG_RATE
-+					("decrease rate because of high tpt\n");
++				IWL_DEBUG_RATE
++				    ("decrease rate because of high tpt\n");
 +				scale_action = -1;
 +			}
-+		} else if (low_tpt != IPW_INVALID_VALUE) {
++		} else if (low_tpt != IWL_INVALID_VALUE) {
 +			if (low_tpt > current_tpt) {
-+				IPW_DEBUG_RATE
-+					("decrease rate because of low tpt\n");
++				IWL_DEBUG_RATE
++				    ("decrease rate because of low tpt\n");
 +				scale_action = -1;
 +			} else
 +				scale_action = 1;
 +		}
 +	}
 +
-+	if ((window->success_ratio > IPW_RATE_HIGH_TH) ||
++	if ((window->success_ratio > IWL_RATE_HIGH_TH) ||
 +	    (current_tpt > window->average_tpt)) {
-+		IPW_DEBUG_RATE("No action -- success_ratio [%d] > HIGH_TH or "
++		IWL_DEBUG_RATE("No action -- success_ratio [%d] > HIGH_TH or "
 +			       "current_tpt [%d] > average_tpt [%d]\n",
 +			       window->success_ratio,
 +			       current_tpt, window->average_tpt);
@@ -17052,12 +21546,12 @@
 +
 +	switch (scale_action) {
 +	case -1:
-+		if (low != IPW_RATE_INVALID)
++		if (low != IWL_RATE_INVALID)
 +			index = low;
 +		break;
 +
 +	case 1:
-+		if (high != IPW_RATE_INVALID)
++		if (high != IWL_RATE_INVALID)
 +			index = high;
 +
 +		break;
@@ -17067,20 +21561,20 @@
 +		break;
 +	}
 +
-+	IPW_DEBUG_RATE("Selected %d (action %d) - low %d high %d\n",
++	IWL_DEBUG_RATE("Selected %d (action %d) - low %d high %d\n",
 +		       index, scale_action, low, high);
 +
 + out:
-+	    
++
 +	sta->last_txrate = index;
 +	sta->txrate = sta->last_txrate;
 +	sta_info_put(sta);
 +
-+	IPW_DEBUG_RATE("leave: %d\n", index);
++	IWL_DEBUG_RATE("leave: %d\n", index);
 +	return &priv->ieee_rates[index];
 +}
 +
-+extern void ipw_set_rate_scale_handlers(struct rate_control_ops *rs_ops)
++extern void iwl_set_rate_scale_handlers(struct rate_control_ops *rs_ops)
 +{
 +	rs_ops->module = NULL;
 +	rs_ops->name = rs_name;


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3190
retrieving revision 1.3191
diff -u -r1.3190 -r1.3191
--- kernel-2.6.spec	23 May 2007 01:35:11 -0000	1.3190
+++ kernel-2.6.spec	23 May 2007 19:42:37 -0000	1.3191
@@ -628,11 +628,8 @@
 Patch2301: git-wireless-dev.patch
 Patch2302: git-iwlwifi.patch
 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-mac80211-scan-optimizations.patch
-Patch2308: linux-2.6-bcm43xx-mac80211-fixes.patch
+Patch2304: linux-2.6-mac80211-fixes.patch
+Patch2305: linux-2.6-bcm43xx-mac80211-fixes.patch
 
 # Assorted dyntick/clock/timer fixes.
 Patch2402: linux-2.6-acpi-keep-tsc-stable-when-lapic-timer-c2-ok-is-set.patch
@@ -1420,16 +1417,10 @@
 %patch2302 -p1
 # avoid bcm43xx vs bcm43xx-mac80211 PCI ID conflicts
 %patch2303 -p1
-# let iwl3945 specify its preferred rate control algorithm
-%patch2304 -p1
-# kill iwl3945 irq_tasklet at module remove 
-%patch2305 -p1
 # some mac80211 bug fixes (defrag mem leak, reassoc failure handling)
-%patch2306 -p1
-# mac80211: improve scan performance
-%patch2307 -p1
+%patch2304 -p1
 # bcm43xx-mac80211: important phy and ssb bus fixes
-%patch2308 -p1
+%patch2305 -p1
 
 # Assorted dyntick/clock/timer fixes.
 %patch2402 -p1
@@ -2415,6 +2406,12 @@
 %endif
 
 %changelog
+* Wed May 23 2007 John W. Linville <linville at redhat.com>
+- Update git-iwlwifi.patch from Intel's tree (version 0.0.21)
+- Update linux-2.6-mac80211-fixes.patch w/ last minute fixes
+- Remove mac80211 scanning optimization patch
+- Remove obsolete iwlwifi patches
+
 * Tue May 22 2007 Kristian Høgsberg <krh at redhat.com>
 - Add missing byteswap in fw-ohci (#238606).
 

linux-2.6-mac80211-fixes.patch:

Index: linux-2.6-mac80211-fixes.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/linux-2.6-mac80211-fixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-mac80211-fixes.patch	18 May 2007 19:37:09 -0000	1.1
+++ linux-2.6-mac80211-fixes.patch	23 May 2007 19:42:37 -0000	1.2
@@ -1,6 +1,15 @@
---- 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
+--- linux-2.6.21.noarch/net/mac80211/ieee80211.c.orig	2007-05-23 15:33:04.000000000 -0400
++++ linux-2.6.21.noarch/net/mac80211/ieee80211.c	2007-05-23 15:36:42.000000000 -0400
+@@ -2470,6 +2470,8 @@ static int ieee80211_open(struct net_dev
+ 	if (sdata->type == IEEE80211_IF_TYPE_STA &&
+ 	    !local->user_space_mlme)
+ 		netif_carrier_off(dev);
++	else
++		netif_carrier_on(dev);
+ 
+ 	netif_start_queue(dev);
+ 	return 0;
+@@ -3406,8 +3408,10 @@ ieee80211_rx_h_defragment(struct ieee802
  			return TXRX_DROP;
  		}
  	}
@@ -12,8 +21,8 @@
  
  	/* 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
+--- linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c.orig	2007-05-23 15:33:04.000000000 -0400
++++ linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c	2007-05-23 15:36:42.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",
@@ -23,3 +32,12 @@
  		return;
  	}
  
+@@ -3152,7 +3154,7 @@ struct sta_info * ieee80211_ibss_add_sta
+ {
+ 	struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
+ 	struct sta_info *sta;
+-	struct ieee80211_sub_if_data *sdata = NULL;
++	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+ 
+ 	/* TODO: Could consider removing the least recently used entry and
+ 	 * allow new one to be added. */


--- linux-2.6-iwlwifi-irq_tasklet.patch DELETED ---


--- linux-2.6-iwlwifi-preferred_rate_control.patch DELETED ---


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




More information about the fedora-extras-commits mailing list