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