rpms/kernel/devel config-generic, 1.71, 1.72 kernel.spec, 1.437, 1.438 linux-2.6-wireless-pending.patch, 1.29, 1.30 linux-2.6-wireless.patch, 1.22, 1.23 linux-2.6-ath5k-use-soft-wep.patch, 1.1, NONE

John W. Linville (linville) fedora-extras-commits at redhat.com
Mon Feb 18 20:03:22 UTC 2008


Author: linville

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

Modified Files:
	config-generic kernel.spec linux-2.6-wireless-pending.patch 
	linux-2.6-wireless.patch 
Removed Files:
	linux-2.6-ath5k-use-soft-wep.patch 
Log Message:
recent wireless updates


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -r1.71 -r1.72
--- config-generic	15 Feb 2008 20:40:46 -0000	1.71
+++ config-generic	18 Feb 2008 20:02:41 -0000	1.72
@@ -1264,6 +1264,7 @@
 
 CONFIG_ADM8211=m
 CONFIG_ATH5K=m
+CONFIG_ATH5K_DEBUG=y
 CONFIG_AIRO=m
 CONFIG_AIRO_CS=m
 CONFIG_ATMEL=m
@@ -1321,12 +1322,17 @@
 # CONFIG_RT2X00_DEBUG is not set
 CONFIG_RT2400PCI=m
 CONFIG_RT2400PCI_RFKILL=y
+CONFIG_RT2400PCI_LEDS=y
 CONFIG_RT2500PCI=m
 CONFIG_RT2500PCI_RFKILL=y
+CONFIG_RT2500PCI_LEDS=y
 CONFIG_RT61PCI=m
 CONFIG_RT61PCI_RFKILL=y
+CONFIG_RT61PCI_LEDS=y
 CONFIG_RT2500USB=m
+CONFIG_RT2500USB_LEDS=y
 CONFIG_RT73USB=m
+CONFIG_RT73USB_LEDS=y
 CONFIG_RTL8180=m
 CONFIG_RTL8187=m
 CONFIG_TMD_HERMES=m


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.437
retrieving revision 1.438
diff -u -r1.437 -r1.438
--- kernel.spec	18 Feb 2008 16:54:55 -0000	1.437
+++ kernel.spec	18 Feb 2008 20:02:41 -0000	1.438
@@ -608,7 +608,6 @@
 Patch680: linux-2.6-wireless.patch
 Patch681: linux-2.6-wireless-pending.patch
 Patch690: linux-2.6-at76.patch
-Patch692: linux-2.6-ath5k-use-soft-wep.patch
 
 Patch820: linux-2.6-compile-fixes.patch
 Patch821: linux-2.6-compile-fix-gcc-43.patch
@@ -1098,16 +1097,13 @@
 ApplyPatch linux-2.6-ata-quirk.patch
 
 # wireless patches headed for 2.6.25
-#ApplyPatch linux-2.6-wireless.patch
+ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.26
 ApplyPatch linux-2.6-wireless-pending.patch
 
 # Add misc wireless bits from upstream wireless tree
 ApplyPatch linux-2.6-at76.patch
 
-# Make ath5k use software WEP
-ApplyPatch linux-2.6-ath5k-use-soft-wep.patch
-
 # implement smarter atime updates support.
 ApplyPatch linux-2.6-smarter-relatime.patch
 
@@ -1737,6 +1733,58 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Mon Feb 18 2008 John W. Linville <linville at redhat.com>
+- ath5k: correct padding in tx descriptors
+- ipw2200: fix ucode assertion for RX queue overrun
+- iwlwifi: Don't send host commands on rfkill
+- rt2x00: Add new USB ID to rt2500usb
+- wavelan: mark hardware interfacing structures as packed
+- rndis_wlan: enable stall workaround by link quality instead of link speed
+- b43: Add driver load messages
+- b43: Add firmware information to modinfo
+- b43: Fix firmware load message level
+- mac80211: Fix initial hardware configuration
+- iwlwifi: earlier rx allocation
+- iwlwifi: do not clear GEO_CONFIGURED bit when calling _down
+- iwlwifi: only check for association id when associating with AP
+- b43legacy: fix DMA for 30/32-bit DMA engines
+- b43legacy: add firmware information to modinfo
+- b43legacy: fix firmware load message level
+- b43legacy: Add driver load messages
+- iwlwifi: reverting 'misc wireless annotations' patch for iwlwifi
+- wireless: Fix WARN_ON() with ieee802.11b
+- rt2x00: Rate structure overhaul
+- rt2x00: Remove HWMODE_{A,B,G}
+- rt2x00: Use ieee80211_channel_to_frequency()
+- rt2x00: Make use of MAC80211_LED_TRIGGERS
+- rt2x00: Enable LED class support for rt2500usb/rt73usb
+- rt2x00: Fix rate initialization
+- rt2x00: Release rt2x00 2.1.0
+- cfg80211 API for channels/bitrates, mac80211 and driver conversion
+- nl80211: export hardware bitrate/channel capabilities
+- mac80211: fix scan band off-by-one error
+- mac80211: remove port control enable switch, clean up sta flags
+- wireless: fix ERP rate flags
+- mac80211: split ieee80211_txrx_result
+- mac80211: split RX_DROP
+- mac80211: clean up some things in the RX path
+- mac80211: remove "dynamic" RX/TX handlers
+- mac80211: move some code into ieee80211_invoke_rx_handlers
+- ath5k: Port to new bitrate/channel API
+- ath5k: Cleanup after API changes
+- ath5k: ath5k_copy_channels() was not setting the channel band
+- ath5k: Use our own Kconfig file, we'll be expanding this shortly
+- ath5k: Port debug.c over to the new band API and enable as build option
+- ath5k: Use software encryption for now
+- ath5k/phy.c: fix negative array index
+- nl80211: Add monitor interface configuration flags
+- mac80211: Use monitor configuration flags
+- mac80211: Add cooked monitor mode support
+- iwlwifi: initialize ieee80211_channel->hw_value
+- iwlwifi: set rate_idx correctly from plcp
+- rc80211-pid: fix rate adjustment
+- iwlwifi: Fix HT compilation breakage caused by cfg80211 API for channels/bitrates patch
+
 * Mon Feb 18 2008 Dave Jones <davej at redhat.com>
 - More exec-shield cleanup.
 

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.29 -r 1.30 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- linux-2.6-wireless-pending.patch	12 Feb 2008 06:18:04 -0000	1.29
+++ linux-2.6-wireless-pending.patch	18 Feb 2008 20:02:41 -0000	1.30
@@ -1,7638 +1,21135 @@
-diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig
-index d1af938..9c3fe18 100644
---- a/drivers/net/wireless/iwlwifi/Kconfig
-+++ b/drivers/net/wireless/iwlwifi/Kconfig
-@@ -35,7 +35,6 @@ config IWL4965_HT
- 	bool "Enable 802.11n HT features in iwl4965 driver"
- 	depends on EXPERIMENTAL
- 	depends on IWL4965 && IWL4965_QOS
--	depends on n
- 	---help---
- 	  This option enables IEEE 802.11n High Throughput features
- 	  for the iwl4965 driver.
-diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-commands.h b/drivers/net/wireless/iwlwifi/iwl-4965-commands.h
-index f3470c8..9edd8ab 100644
---- a/drivers/net/wireless/iwlwifi/iwl-4965-commands.h
-+++ b/drivers/net/wireless/iwlwifi/iwl-4965-commands.h
-@@ -1300,6 +1300,25 @@ struct iwl4965_tx_resp {
- 	__le32 status;	/* TX status (for aggregation status of 1st frame) */
- } __attribute__ ((packed));
- 
-+struct agg_tx_status {
-+	__le16 status;
-+	__le16 sequence;
-+} __attribute__ ((packed));
-+
-+struct iwl4965_tx_resp_agg {
-+	u8 frame_count;         /* 1 no aggregation, >1 aggregation */
-+	u8 reserved1;
-+	u8 failure_rts;
-+	u8 failure_frame;
-+	__le32 rate_n_flags;
-+	__le16 wireless_media_time;
-+	__le16 reserved3;
-+	__le32 pa_power1;
-+	__le32 pa_power2;
-+	struct agg_tx_status status;    /* TX status (for aggregation status */
-+					/* of 1st frame) */
-+} __attribute__ ((packed));
-+
- /*
-  * REPLY_COMPRESSED_BA = 0xc5 (response only, not a command)
-  *
-@@ -1313,9 +1332,8 @@ struct iwl4965_compressed_ba_resp {
- 	/* Index of recipient (BA-sending) station in uCode's station table */
- 	u8 sta_id;
- 	u8 tid;
--	__le16 ba_seq_ctl;
--	__le32 ba_bitmap0;
--	__le32 ba_bitmap1;
-+	__le16 seq_ctl;
-+	__le64 bitmap;
- 	__le16 scd_flow;
- 	__le16 scd_ssn;
- } __attribute__ ((packed));
-diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
-index d064622..660671f 100644
---- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
-@@ -83,7 +83,7 @@ struct iwl4965_rate_scale_data {
- /**
-  * struct iwl4965_scale_tbl_info -- tx params and success history for all rates
+commit 5e6cb1b66a3047b48b0c335890e478e95e5dd20f
+Author: Michael Wu <flamingice at sourmilk.net>
+Date:   Thu Jan 31 19:48:27 2008 +0100
+
+    mac80211: Add cooked monitor mode support
+    
+    This adds "cooked" monitor mode to mac80211. A monitor interface
+    in "cooked" mode will see all frames that mac80211 has not used
+    internally.
+    
+    Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 5b0916ba933a872bf621c62830ada98bfe694cfd
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Jan 31 19:48:26 2008 +0100
+
+    mac80211: move some code into ieee80211_invoke_rx_handlers
+    
+    There is some duplicated code that sits in front of each function
+    call to ieee80211_invoke_rx_handlers() that can very well be part
+    of that function if it gets slightly different arguments.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0726201a20a9242ab67bdfc8673a95f93d251227
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Jan 31 19:48:25 2008 +0100
+
+    mac80211: remove "dynamic" RX/TX handlers
+    
+    It doesn't really make sense to have extra pointers to the RX/TX
+    handler arrays instead of just using the arrays directly, that
+    also allows us to make them static.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit bd4c55e4477d32c9f72f3cd3b19ed35bba383ec1
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Jan 31 19:48:24 2008 +0100
+
+    mac80211: clean up some things in the RX path
+    
+    Uninline ieee80211_invoke_rx_handlers to save .text space,
+    make the code more readable in some places and remove the
+    "optimisation" that is hit only very few times and unclear
+    to start with.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 9078446b31494114b234838323cc5bb923ba448e
+Author: Michael Wu <flamingice at sourmilk.net>
+Date:   Thu Jan 31 19:48:23 2008 +0100
+
+    mac80211: Use monitor configuration flags
+    
+    Take advantage of the monitor configuration flags now provided by cfg80211.
+    
+    Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1c35a228492e0a03f50d20182171fa007b960b73
+Author: Michael Wu <flamingice at sourmilk.net>
+Date:   Thu Jan 31 19:48:22 2008 +0100
+
+    nl80211: Add monitor interface configuration flags
+    
+    This allows precise control over what a monitor interface shows.
+    
+    Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 15a81dee0a7cce70fe80c137017c9a6c29ce1f73
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Jan 31 19:48:21 2008 +0100
+
+    mac80211: split RX_DROP
+    
+    Some instances of RX_DROP mean that the frame was useless,
+    others mean that the frame should be visible in userspace
+    on "cooked" monitor interfaces. This patch splits up RX_DROP
+    and changes each instance appropriately.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c88814a8c837f715cbbfb572fb69e673736d17e0
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Jan 31 19:48:20 2008 +0100
+
+    mac80211: split ieee80211_txrx_result
+    
+    The _DROP result will need to be split in the RX path but not
+    in the TX path, so for preparation split up the type into two
+    types, one for RX and one for TX. Also make sure (via sparse)
+    that they cannot be confused.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit da0f327448621d15408786f1b3b14e78e34f0220
+Author: Tomas Winkler <tomas.winkler at intel.com>
+Date:   Wed Feb 6 02:37:18 2008 +0200
+
+    iwlwifi: Fix HT compilation breakage caused by cfg80211 API for channels/bitrates patch
+    
+    This patch fixes compilation breakage caused by 'cfg80211 API for
+    channels/bitrates' patch.
+    however it doesn't fix the driver's functional problems caused by that
+    patch.
+    
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit eee6153f3b25acd64a6166276a75e37aa3864216
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Feb 3 15:56:02 2008 +0100
+
+    rt2x00: Release rt2x00 2.1.0
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 19af196155726979211c493ff5a49c03851dc163
[...37676 lines suppressed...]
+ 	struct ath5k_buf	*bufptr;	/* allocated buffer ptr */
+ 	struct ath5k_desc	*desc;		/* TX/RX descriptors */
+@@ -169,6 +176,7 @@ struct ath5k_softc {
+ 	unsigned int		nexttbtt;	/* next beacon time in TU */
+ 
+ 	struct timer_list	calib_tim;	/* calibration timer */
++	int 			power_level;	/* Requested tx power in dbm */
+ };
+ 
+ #define ath5k_hw_hasbssidmask(_ah) \
+diff -up linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c.orig linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c
+--- linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c.orig	2008-02-18 13:29:37.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c	2008-02-18 14:29:43.000000000 -0500
+@@ -78,8 +78,9 @@ static void max2820_rf_set_channel(struc
+ 				   struct ieee80211_conf *conf)
+ {
+ 	struct rtl8180_priv *priv = dev->priv;
+-	unsigned int chan_idx = conf ? conf->channel - 1 : 0;
+-	u32 txpw = priv->channels[chan_idx].val & 0xFF;
++	int channel = ieee80211_frequency_to_channel(conf->channel->center_freq);
++	unsigned int chan_idx = channel - 1;
++	u32 txpw = priv->channels[chan_idx].hw_value & 0xFF;
+ 	u32 chan = max2820_chan[chan_idx];
+ 
+ 	/* While philips SA2400 drive the PA bias from
+diff -up linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig linux-2.6.24.noarch/drivers/net/wireless/adm8211.c
+--- linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig	2008-02-18 13:29:36.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/adm8211.c	2008-02-18 14:29:43.000000000 -0500
+@@ -48,6 +48,32 @@ static struct pci_device_id adm8211_pci_
+ 	{ 0 }
+ };
+ 
++static struct ieee80211_rate adm8211_rates[] = {
++	{ .bitrate = 10, .flags = IEEE80211_RATE_SHORT_PREAMBLE },
++	{ .bitrate = 20, .flags = IEEE80211_RATE_SHORT_PREAMBLE },
++	{ .bitrate = 55, .flags = IEEE80211_RATE_SHORT_PREAMBLE },
++	{ .bitrate = 110, .flags = IEEE80211_RATE_SHORT_PREAMBLE },
++	{ .bitrate = 220, .flags = IEEE80211_RATE_SHORT_PREAMBLE }, /* XX ?? */
++};
++
++static const struct ieee80211_channel adm8211_channels[] = {
++	{ .center_freq = 2412},
++	{ .center_freq = 2417},
++	{ .center_freq = 2422},
++	{ .center_freq = 2427},
++	{ .center_freq = 2432},
++	{ .center_freq = 2437},
++	{ .center_freq = 2442},
++	{ .center_freq = 2447},
++	{ .center_freq = 2452},
++	{ .center_freq = 2457},
++	{ .center_freq = 2462},
++	{ .center_freq = 2467},
++	{ .center_freq = 2472},
++	{ .center_freq = 2484},
++};
++
++
+ static void adm8211_eeprom_register_read(struct eeprom_93cx6 *eeprom)
  {
- 	return 0;
- }
+ 	struct adm8211_priv *priv = eeprom->data;
+@@ -155,17 +181,17 @@ static int adm8211_read_eeprom(struct ie
+ 	printk(KERN_DEBUG "%s (adm8211): Channel range: %d - %d\n",
+ 	       pci_name(priv->pdev), (int)chan_range.min, (int)chan_range.max);
+ 
+-	priv->modes[0].num_channels = chan_range.max - chan_range.min + 1;
+-	priv->modes[0].channels = priv->channels;
++	BUILD_BUG_ON(sizeof(priv->channels) != sizeof(adm8211_channels));
+ 
+-	memcpy(priv->channels, adm8211_channels, sizeof(adm8211_channels));
++	memcpy(priv->channels, adm8211_channels, sizeof(priv->channels));
++	priv->band.channels = priv->channels;
++	priv->band.n_channels = ARRAY_SIZE(adm8211_channels);
++	priv->band.bitrates = adm8211_rates;
++	priv->band.n_bitrates = ARRAY_SIZE(adm8211_rates);
+ 
+ 	for (i = 1; i <= ARRAY_SIZE(adm8211_channels); i++)
+-		if (i >= chan_range.min && i <= chan_range.max)
+-			priv->channels[i - 1].flag =
+-				IEEE80211_CHAN_W_SCAN |
+-				IEEE80211_CHAN_W_ACTIVE_SCAN |
+-				IEEE80211_CHAN_W_IBSS;
++		if (i < chan_range.min || i > chan_range.max)
++			priv->channels[i - 1].flags |= IEEE80211_CHAN_DISABLED;
+ 
+ 	switch (priv->eeprom->specific_bbptype) {
+ 	case ADM8211_BBP_RFMD3000:
+@@ -347,7 +373,6 @@ static void adm8211_interrupt_rci(struct
+ 	unsigned int pktlen;
+ 	struct sk_buff *skb, *newskb;
+ 	unsigned int limit = priv->rx_ring_size;
+-	static const u8 rate_tbl[] = {10, 20, 55, 110, 220};
+ 	u8 rssi, rate;
+ 
+ 	while (!(priv->rx_ring[entry].status & cpu_to_le32(RDES0_STATUS_OWN))) {
+@@ -425,12 +450,10 @@ static void adm8211_interrupt_rci(struct
+ 			else
+ 				rx_status.ssi = 100 - rssi;
+ 
+-			if (rate <= 4)
+-				rx_status.rate = rate_tbl[rate];
++			rx_status.rate_idx = rate;
+ 
+-			rx_status.channel = priv->channel;
+-			rx_status.freq = adm8211_channels[priv->channel - 1].freq;
+-			rx_status.phymode = MODE_IEEE80211B;
++			rx_status.freq = adm8211_channels[priv->channel - 1].center_freq;
++			rx_status.band = IEEE80211_BAND_2GHZ;
+ 
+ 			ieee80211_rx_irqsafe(dev, skb, &rx_status);
+ 		}
+@@ -1054,7 +1077,7 @@ static int adm8211_set_rate(struct ieee8
+ 	if (priv->pdev->revision != ADM8211_REV_BA) {
+ 		rate_buf[0] = ARRAY_SIZE(adm8211_rates);
+ 		for (i = 0; i < ARRAY_SIZE(adm8211_rates); i++)
+-			rate_buf[i + 1] = (adm8211_rates[i].rate / 5) | 0x80;
++			rate_buf[i + 1] = (adm8211_rates[i].bitrate / 5) | 0x80;
+ 	} else {
+ 		/* workaround for rev BA specific bug */
+ 		rate_buf[0] = 0x04;
+@@ -1303,9 +1326,10 @@ static int adm8211_set_ssid(struct ieee8
+ static int adm8211_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
+ {
+ 	struct adm8211_priv *priv = dev->priv;
++	int channel = ieee80211_frequency_to_channel(conf->channel->center_freq);
+ 
+-	if (conf->channel != priv->channel) {
+-		priv->channel = conf->channel;
++	if (channel != priv->channel) {
++		priv->channel = channel;
+ 		adm8211_rf_set_channel(dev, priv->channel);
+ 	}
+ 
+@@ -1680,10 +1704,10 @@ static int adm8211_tx(struct ieee80211_h
+ 
+ 	if (control->tx_rate < 0) {
+ 		short_preamble = 1;
+-		plcp_signal = -control->tx_rate;
++		plcp_signal = -control->tx_rate->bitrate;
+ 	} else {
+ 		short_preamble = 0;
+-		plcp_signal = control->tx_rate;
++		plcp_signal = control->tx_rate->bitrate;
+ 	}
+ 
+ 	hdr = (struct ieee80211_hdr *)skb->data;
+@@ -1880,18 +1904,11 @@ static int __devinit adm8211_probe(struc
+ 	SET_IEEE80211_PERM_ADDR(dev, perm_addr);
+ 
+ 	dev->extra_tx_headroom = sizeof(struct adm8211_tx_hdr);
+-	dev->flags = IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED;
+-	/* IEEE80211_HW_RX_INCLUDES_FCS in promisc mode */
++	/* dev->flags = IEEE80211_HW_RX_INCLUDES_FCS in promisc mode */
+ 
+ 	dev->channel_change_time = 1000;
+ 	dev->max_rssi = 100;	/* FIXME: find better value */
+ 
+-	priv->modes[0].mode = MODE_IEEE80211B;
+-	/* channel info filled in by adm8211_read_eeprom */
+-	memcpy(priv->rates, adm8211_rates, sizeof(adm8211_rates));
+-	priv->modes[0].num_rates = ARRAY_SIZE(adm8211_rates);
+-	priv->modes[0].rates = priv->rates;
+-
+ 	dev->queues = 1; /* ADM8211C supports more, maybe ADM8211B too */
+ 
+ 	priv->retry_limit = 3;
+@@ -1917,14 +1934,7 @@ static int __devinit adm8211_probe(struc
+ 		goto err_free_desc;
+ 	}
+ 
+-	priv->channel = priv->modes[0].channels[0].chan;
 -
-+static inline int ieee80211_ht_agg_queue_add(struct ieee80211_local *local,
-+					     struct sta_info *sta, u16 tid)
-+{
-+	return -EAGAIN;
-+}
-+static inline void ieee80211_ht_agg_queue_remove(struct ieee80211_local *local,
-+						 struct sta_info *sta, u16 tid,
-+						 u8 requeue)
-+{
-+}
-+static inline void ieee80211_requeue(struct ieee80211_local *local, int queue)
-+{
-+}
- static inline int ieee80211_wme_register(void)
- {
- 	return 0;
+-	err = ieee80211_register_hwmode(dev, &priv->modes[0]);
+-	if (err) {
+-		printk(KERN_ERR "%s (adm8211): Can't register hwmode\n",
+-		       pci_name(pdev));
+-		goto err_free_desc;
+-	}
++	priv->channel = 1;
+ 
+ 	err = ieee80211_register_hw(dev);
+ 	if (err) {

linux-2.6-wireless.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.22 -r 1.23 linux-2.6-wireless.patch
Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless.patch,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- linux-2.6-wireless.patch	6 Feb 2008 15:58:27 -0000	1.22
+++ linux-2.6-wireless.patch	18 Feb 2008 20:02:42 -0000	1.23
@@ -1,128428 +1,1390 @@
-commit b79caa68c0d48477453a90d12be34b47cb75f3a8
-Author: Michael Buesch <mb at bu3sch.de>
-Date:   Tue Feb 5 12:50:41 2008 +0100
-
-    b43: Fix DMA for 30/32-bit DMA engines
-    
-    This checks if the DMA address is bigger than what the controller can manage.
-    It will reallocate the buffers in the GFP_DMA zone in that case.
-    
-    Signed-off-by: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 532031d7f426eb02f854d13184416cabcb01bdd5
-Author: Andrew Morton <akpm at linux-foundation.org>
-Date:   Mon Feb 4 23:58:42 2008 -0800
-
-    b43: fix build with CONFIG_SSB_PCIHOST=n
-    
-    m68k allmodconfig gives
-    
-    drivers/net/wireless/b43/main.c:251: error: implicit declaration of function 'mmiowb'
-    
-    because CONFIG_B43=m, CONFIG_SSB_PCIHOST=n.
-    
-    Might be Kconfig bustage, but this works...
-    
-    Cc: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 03ac7a8141e1613add92d42e389a35a126b1caf8
-Author: Michael Buesch <mb at bu3sch.de>
-Date:   Mon Feb 4 18:11:41 2008 +0100
-
-    mac80211: Is not EXPERIMENTAL anymore
-    
-    Remove the EXPERIMENTAL dependency, as the existing mac80211
-    features are stable.
-    
-    Signed-off-by: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 221c80cf03d77490b8e45184a273834d0259b9e0
-Author: Adrian Bunk <bunk at kernel.org>
-Date:   Sat Feb 2 23:19:01 2008 +0200
-
-    iwl3945-base.c: fix off-by-one errors
-    
-    This patch fixes two off-by-one errors resulting in array overflows
-    spotted by the Coverity checker.
-    
-    Signed-off-by: Adrian Bunk <bunk at kernel.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 8dd0100ce9511e52614ecd0a6587c13ce5769c8b
-Author: Stefano Brivio <stefano.brivio at polimi.it>
-Date:   Sat Feb 2 19:16:03 2008 +0100
-
-    b43legacy: fix DMA slot resource leakage
-    
-    This fixes four resource leakages.
-    In any error path we must deallocate the DMA frame slots we
-    previously allocated by request_slot().
-    This is done by storing the ring pointers before doing any ring
-    allocation and restoring the old pointers in case of an error.
-    
-    This patch by Michael Buesch has been ported to b43legacy.
-    
-    Cc: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 9eca9a8e81928685b4de00ecef83a7c13c340fc9
-Author: Stefano Brivio <stefano.brivio at polimi.it>
-Date:   Sat Feb 2 19:16:01 2008 +0100
-
-    b43legacy: drop packets we are not able to encrypt
-    
-    We must drop any packets we are not able to encrypt.
-    We must not send them unencrypted or with an all-zero-key (which
-    basically is the same as unencrypted, from a security point of view).
-    
-    This might only trigger shortly after resume before mac80211 reassociated
-    and reconfigured the keys.
-    
-    It is safe to drop these packets, as the association they belong to
-    is not guaranteed anymore anyway.
-    This is a security fix in the sense that it prevents information leakage.
-    
-    This patch by Michael Buesch has been ported to b43legacy.
-    
-    Cc: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit ada50731c0346bf900dc387edd3a6961297bf2d3
-Author: Stefano Brivio <stefano.brivio at polimi.it>
-Date:   Sat Feb 2 19:15:57 2008 +0100
-
-    b43legacy: fix suspend/resume
-    
-    This patch makes suspend/resume work with the b43legacy driver.
-    We must not overwrite the MAC addresses in the init function, as this
-    would also overwrite the MAC on resume. With an all-zero MAC the device
-    firmware is not able to ACK any received packets anymore.
-    Fix this by moving the initializion stuff that must be done on init but
-    not on resume to the start function.
-    Also zero out filter_flags to make sure we don't have some flags
-    from a previous instance for a tiny timeframe until mac80211 reconfigures
-    them.
-    
-    This patch by Michael Buesch has been ported to b43legacy.
-    
-    Cc: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 0cd67d48b519c3d8d89d238fab1cf68a5289638a
+commit 6fff1c64ffd899e0b70fbb0201c6603f078ea942
 Author: Stefano Brivio <stefano.brivio at polimi.it>
-Date:   Sat Feb 2 19:15:49 2008 +0100
+Date:   Sat Feb 9 07:20:43 2008 +0100
 
-    b43legacy: fix PIO crash
-    
-    Fix the crash reported below, which seems to happen on bcm4306 rev. 2 devices
-    only while using PIO:
+    b43legacy: Add driver load messages
     
-    Oops: 0000 [#1] PREEMPT
-    Modules linked in: b43(F) rfkill(F) led_class(F) input_polldev(F) arc4 b43legacy mac80211 cfg80211 i915 drm snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device ohci1394 ieee1394 ssb pcmcia snd_intel8x0m ehci_hcd uhci_hcd evdev
-    
-    Pid: 0, comm: swapper Tainted: GF	(2.6.24st3 #2)
-    EIP: 0060:[<f90f667b>] EFLAGS: 00010002 CPU: 0
-    EIP is at b43legacy_pio_handle_txstatus+0xbb/0x210 [b43legacy]
-    EAX: 0000049b EBX: f11f8044 ECX: 00000001 EDX: 00000000
-    ESI: f1ff8000 EDI: 00000000 EBP: f11f8040 ESP: c04f4ef4
-     DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
-    Process swapper (pid: 0, ti=c04f4000 task=c0488300 task.ti=c04b8000)
-    Stack: f90f2788 c05009f0 c0500900 000010f7 f1053823 c04f4f24 dfb8e800 00000003
-           f1368000 00000007 00000296 f90f1975 00001000 010c0800 01000000 00000007
-           f90f6391 f11f8000 00000082 c04f4f4a 00000000 00004fd0 10f70000 8c061000
-    Call Trace:
-     [<f90f2788>] b43legacy_debugfs_log_txstat+0x48/0xb0 [b43legacy]
-     [<f90f1975>] b43legacy_handle_hwtxstatus+0x75/0x80 [b43legacy]
-     [<f90f6391>] b43legacy_pio_rx+0x201/0x280 [b43legacy]
-     [<f90e4fa3>] b43legacy_interrupt_tasklet+0x2e3/0x870 [b43legacy]
-     [<c0123567>] tasklet_action+0x27/0x60
-     [<c01237b4>] __do_softirq+0x54/0xb0
-     [<c010686b>] do_softirq+0x7b/0xe0
-     [<c01457c0>] handle_level_irq+0x0/0x110
-     [<c01457c0>] handle_level_irq+0x0/0x110
-     [<c0123758>] irq_exit+0x38/0x40
-     [<c0106953>] do_IRQ+0x83/0xd0
-     [<c011812f>] __update_rq_clock+0x4f/0x180
-     [<c0104b4f>] common_interrupt+0x23/0x28
-     [<c011007b>] wakeup_code+0x7b/0xde
-     [<c02b1039>] acpi_processor_idle+0x24a/0x3c9
-     [<c01025c7>] cpu_idle+0x47/0x80
-     [<c04b9ad5>] start_kernel+0x205/0x290
-     [<c04b9360>] unknown_bootoption+0x0/0x1f0
-     =======================
-    Code: 0f 00 00 81 fb ff 00 00 00 0f 87 36 01 00 00 8d 04 db 85 ff 8d 6c c6 40 8d 5d 04 0f 85 ef 00 00 00 fe 4e 0e 0f b7 46 0c 8b 53 04 <8b> 4a 50 29 c8 83 e8 52 66 89 46 0c 8b 54 24 14 80 7a 0b 00 74
-    EIP: [<f90f667b>] b43legacy_pio_handle_txstatus+0xbb/0x210 [b43legacy] SS:ESP 0068:c04f4ef4
-    Kernel panic - not syncing: Fatal exception in interrupt
+    This adds printk messages with basic information about the driver being loaded.
+    This information includes a summary of the compiled-in features, which
+    simplifies bug-reporting and debugging a lot.
+    Also a firmware ID is printed. This is a unique identifier blob for a specific
+    version of the firmware. This ID is attached to a specific version of the firmware
+    blob in b43-fwcutter (see fwcutter git).
+    This helps users to select the right firmware for their device.
+    This also makes it possible to use automated scripts to fetch and extract the right
+    firmware for the driver. (The script will grep the .ko for the "Firmware-ID: xxx" string.)
+    While the driver might still support other versions of the firmware for backward
+    compatibility, this will always print out the officially supported version, which
+    people _should_ use.
     
     Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 04a9e451fdbbfb84d6b87042b991f729f1c14249
-Author: John W. Linville <linville at tuxdriver.com>
-Date:   Fri Feb 1 16:03:45 2008 -0500
-
-    ath5k: fix section mismatch warning
-    
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 3eadf5f4f635ed6a6cd921195c320d58b5f9a185
-Author: Johannes Berg <johannes at sipsolutions.net>
[...129189 lines suppressed...]
-+		/* check for rev 4 sprom - has special signature */
-+		if (buf[32] == 0x5372) {
-+			kfree(buf);
-+			buf = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16),
-+				      GFP_KERNEL);
-+			if (!buf)
-+				goto out;
-+			bus->sprom_size = SSB_SPROMSIZE_WORDS_R4;
-+			sprom_do_read(bus, buf);
-+			err = sprom_check_crc(buf, bus->sprom_size);
-+		}
-+		if (err)
-+			ssb_printk(KERN_WARNING PFX "WARNING: Invalid"
-+				   " SPROM CRC (corrupt SPROM)\n");
- 	}
--	err = sprom_extract(bus, sprom, buf);
-+	err = sprom_extract(bus, sprom, buf, bus->sprom_size);
+-	tx_desc->tx_control_0 = pkt_len & AR5K_2W_TX_DESC_CTL0_FRAME_LEN;
++	tx_desc->tx_control_0 = frame_len & AR5K_2W_TX_DESC_CTL0_FRAME_LEN;
  
- 	kfree(buf);
- out:
-@@ -581,29 +632,28 @@ const struct ssb_bus_ops ssb_pci_ops = {
- 	.write32	= ssb_pci_write32,
- };
+ 	/* Verify and set buffer length */
+-	buff_len = pkt_len - FCS_LEN;
  
--static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len)
-+static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len, u16 size)
- {
- 	int i, pos = 0;
+ 	/* NB: beacon's BufLen must be a multiple of 4 bytes */
+ 	if(type == AR5K_PKT_TYPE_BEACON)
+-		buff_len = roundup(buff_len, 4);
++		pkt_len = roundup(pkt_len, 4);
  
--	for (i = 0; i < SSB_SPROMSIZE_WORDS; i++) {
-+	for (i = 0; i < size; i++)
- 		pos += snprintf(buf + pos, buf_len - pos - 1,
- 				"%04X", swab16(sprom[i]) & 0xFFFF);
--	}
- 	pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
+-	if (buff_len & ~AR5K_2W_TX_DESC_CTL1_BUF_LEN)
++	if (pkt_len & ~AR5K_2W_TX_DESC_CTL1_BUF_LEN)
+ 		return -EINVAL;
  
- 	return pos + 1;
- }
+-	tx_desc->tx_control_1 = buff_len & AR5K_2W_TX_DESC_CTL1_BUF_LEN;
++	tx_desc->tx_control_1 = pkt_len & AR5K_2W_TX_DESC_CTL1_BUF_LEN;
  
--static int hex2sprom(u16 *sprom, const char *dump, size_t len)
-+static int hex2sprom(u16 *sprom, const char *dump, size_t len, u16 size)
+ 	/*
+ 	 * Verify and set header length
+@@ -3634,7 +3637,7 @@ static int ath5k_hw_setup_4word_tx_desc(
  {
- 	char tmp[5] = { 0 };
- 	int cnt = 0;
- 	unsigned long parsed;
+ 	struct ath5k_hw_4w_tx_desc *tx_desc;
+ 	struct ath5k_hw_tx_status *tx_status;
+-	unsigned int buff_len;
++	unsigned int frame_len;
+ 
+ 	ATH5K_TRACE(ah->ah_sc);
+ 	tx_desc = (struct ath5k_hw_4w_tx_desc *)&desc->ds_ctl0;
+@@ -3669,22 +3672,25 @@ static int ath5k_hw_setup_4word_tx_desc(
+ 	/* Setup control descriptor */
  
--	if (len < SSB_SPROMSIZE_BYTES * 2)
-+	if (len < size * 2)
+ 	/* Verify and set frame length */
+-	if (pkt_len & ~AR5K_4W_TX_DESC_CTL0_FRAME_LEN)
++
++	/* remove padding we might have added before */
++	frame_len = pkt_len - (hdr_len & 3) + FCS_LEN;
++
++	if (frame_len & ~AR5K_4W_TX_DESC_CTL0_FRAME_LEN)
  		return -EINVAL;
  
--	while (cnt < SSB_SPROMSIZE_WORDS) {
-+	while (cnt < size) {
- 		memcpy(tmp, dump, 4);
- 		dump += 4;
- 		parsed = simple_strtoul(tmp, NULL, 16);
-@@ -627,7 +677,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
- 	if (!bus)
- 		goto out;
- 	err = -ENOMEM;
--	sprom = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
-+	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
- 	if (!sprom)
- 		goto out;
+-	tx_desc->tx_control_0 = pkt_len & AR5K_4W_TX_DESC_CTL0_FRAME_LEN;
++	tx_desc->tx_control_0 = frame_len & AR5K_4W_TX_DESC_CTL0_FRAME_LEN;
  
-@@ -640,7 +690,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
- 	sprom_do_read(bus, sprom);
- 	mutex_unlock(&bus->pci_sprom_mutex);
+ 	/* Verify and set buffer length */
+-	buff_len = pkt_len - FCS_LEN;
  
--	count = sprom2hex(sprom, buf, PAGE_SIZE);
-+	count = sprom2hex(sprom, buf, PAGE_SIZE, bus->sprom_size);
- 	err = 0;
+ 	/* NB: beacon's BufLen must be a multiple of 4 bytes */
+ 	if(type == AR5K_PKT_TYPE_BEACON)
+-		buff_len = roundup(buff_len, 4);
++		pkt_len = roundup(pkt_len, 4);
  
- out_kfree:
-@@ -662,15 +712,15 @@ static ssize_t ssb_pci_attr_sprom_store(
- 	if (!bus)
- 		goto out;
- 	err = -ENOMEM;
--	sprom = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
-+	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
- 	if (!sprom)
- 		goto out;
--	err = hex2sprom(sprom, buf, count);
-+	err = hex2sprom(sprom, buf, count, bus->sprom_size);
- 	if (err) {
- 		err = -EINVAL;
- 		goto out_kfree;
+-	if (buff_len & ~AR5K_4W_TX_DESC_CTL1_BUF_LEN)
++	if (pkt_len & ~AR5K_4W_TX_DESC_CTL1_BUF_LEN)
+ 		return -EINVAL;
+ 
+-	tx_desc->tx_control_1 = buff_len & AR5K_4W_TX_DESC_CTL1_BUF_LEN;
++	tx_desc->tx_control_1 = pkt_len & AR5K_4W_TX_DESC_CTL1_BUF_LEN;
+ 
+ 	tx_desc->tx_control_0 |=
+ 		AR5K_REG_SM(tx_power, AR5K_4W_TX_DESC_CTL0_XMIT_POWER) |
+diff -up linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c.orig linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c
+--- linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-02-18 13:29:36.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c	2008-02-18 13:44:10.000000000 -0500
+@@ -1256,7 +1256,7 @@ ath5k_txbuf_setup(struct ath5k_softc *sc
+ 	if (ctl->flags & IEEE80211_TXCTL_NO_ACK)
+ 		flags |= AR5K_TXDESC_NOACK;
+ 
+-	pktlen = skb->len + FCS_LEN;
++	pktlen = skb->len;
+ 
+ 	if (!(ctl->flags & IEEE80211_TXCTL_DO_NOT_ENCRYPT)) {
+ 		keyidx = ctl->key_idx;
+@@ -1952,7 +1952,7 @@ ath5k_beacon_setup(struct ath5k_softc *s
  	}
--	err = sprom_check_crc(sprom);
-+	err = sprom_check_crc(sprom, bus->sprom_size);
- 	if (err) {
- 		err = -EINVAL;
- 		goto out_kfree;
-diff -up linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt
---- linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig	2008-01-24 17:58:37.000000000 -0500
-+++ linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt	2008-02-05 22:16:24.000000000 -0500
-@@ -332,4 +332,36 @@ Why:	This driver has been marked obsolet
- 	2.4 or later kernels, provides richer features and is more robust.
- Who:	Stephen Hemminger <shemminger at linux-foundation.org>
  
-+What:	bcm43xx wireless network driver
-+When:	2.6.26
-+Files:	drivers/net/wireless/bcm43xx
-+Why:	This driver's functionality has been replaced by the
-+	mac80211-based b43 and b43legacy drivers.
-+Who:	John W. Linville <linville at tuxdriver.com>
-+
-+---------------------------
-+
-+What:	ieee80211 softmac wireless networking component
-+When:	2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211)
-+Files:	net/ieee80211/softmac
-+Why:	No in-kernel drivers will depend on it any longer.
-+Who:	John W. Linville <linville at tuxdriver.com>
-+
- ---------------------------
-+
-+What:	rc80211-simple rate control algorithm for mac80211
-+When:	2.6.26
-+Files:	net/mac80211/rc80211-simple.c
-+Why:	This algorithm was provided for reference but always exhibited bad
-+	responsiveness and performance and has some serious flaws. It has been
-+	replaced by rc80211-pid.
-+Who:	Stefano Brivio <stefano.brivio at polimi.it>
-+
-+---------------------------
-+
-+What:	b43 support for firmware revision < 410
-+When:	July 2008
-+Why:	The support code for the old firmware hurts code readability/maintainability
-+	and slightly hurts runtime performance. Bugfixes for the old firmware
-+	are not provided by Broadcom anymore.
-+Who:	Michael Buesch <mb at bu3sch.de>
+ 	ds->ds_data = bf->skbaddr;
+-	ret = ah->ah_setup_tx_desc(ah, ds, skb->len + FCS_LEN,
++	ret = ah->ah_setup_tx_desc(ah, ds, skb->len,
+ 			ieee80211_get_hdrlen_from_skb(skb),
+ 			AR5K_PKT_TYPE_BEACON, (ctl->power_level * 2), ctl->tx_rate, 1,
+ 			AR5K_TXKEYIX_INVALID, antenna, flags, 0, 0);


--- linux-2.6-ath5k-use-soft-wep.patch DELETED ---




More information about the fedora-extras-commits mailing list