rpms/kernel/F-9 linux-2.6-wireless-fixups.patch, 1.2, 1.3 config-generic, 1.100, 1.101 kernel.spec, 1.643, 1.644 linux-2.6-at76.patch, 1.9, 1.10 linux-2.6-wireless-pending.patch, 1.45, 1.46 linux-2.6-wireless.patch, 1.34, 1.35 linux-2.6-rt2x00-configure_filter.patch, 1.1, NONE linux-2.6-wireless-pending-too.patch, 1.6, NONE
John W. Linville (linville)
fedora-extras-commits at redhat.com
Mon May 19 22:16:08 UTC 2008
Author: linville
Update of /cvs/pkgs/rpms/kernel/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28435
Modified Files:
config-generic kernel.spec linux-2.6-at76.patch
linux-2.6-wireless-pending.patch linux-2.6-wireless.patch
Added Files:
linux-2.6-wireless-fixups.patch
Removed Files:
linux-2.6-rt2x00-configure_filter.patch
linux-2.6-wireless-pending-too.patch
Log Message:
resync wireless bits with upstream
linux-2.6-wireless-fixups.patch:
Index: linux-2.6-wireless-fixups.patch
===================================================================
RCS file: linux-2.6-wireless-fixups.patch
diff -N linux-2.6-wireless-fixups.patch
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ linux-2.6-wireless-fixups.patch 19 May 2008 22:15:18 -0000 1.3
@@ -0,0 +1,1004 @@
+diff -up linux-2.6.25.noarch/net/mac80211/iface.c.orig linux-2.6.25.noarch/net/mac80211/iface.c
+--- linux-2.6.25.noarch/net/mac80211/iface.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/iface.c 2008-05-19 17:31:10.000000000 -0400
+@@ -53,15 +53,6 @@ int ieee80211_if_add(struct net_device *
+ if (!ndev)
+ return -ENOMEM;
+
+- ndev->needed_headroom = local->tx_headroom +
+- 4*6 /* four MAC addresses */
+- + 2 + 2 + 2 + 2 /* ctl, dur, seq, qos */
+- + 6 /* mesh */
+- + 8 /* rfc1042/bridge tunnel */
+- - ETH_HLEN /* ethernet hard_header_len */
+- + IEEE80211_ENCRYPT_HEADROOM;
+- ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
+-
+ ret = dev_alloc_name(ndev, ndev->name);
+ if (ret < 0)
+ goto fail;
+diff -up linux-2.6.25.noarch/net/mac80211/tkip.c.orig linux-2.6.25.noarch/net/mac80211/tkip.c
+--- linux-2.6.25.noarch/net/mac80211/tkip.c.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/tkip.c 2008-05-19 17:40:15.000000000 -0400
+@@ -8,22 +8,23 @@
+ */
+
+ #include <linux/kernel.h>
+-#include <linux/bitops.h>
+ #include <linux/types.h>
+ #include <linux/netdevice.h>
+-#include <asm/unaligned.h>
+
+ #include <net/mac80211.h>
+ #include "key.h"
+ #include "tkip.h"
+ #include "wep.h"
+
++
++/* TKIP key mixing functions */
++
++
+ #define PHASE1_LOOP_COUNT 8
+
+-/*
+- * 2-byte by 2-byte subset of the full AES S-box table; second part of this
+- * table is identical to first part but byte-swapped
+- */
++
++/* 2-byte by 2-byte subset of the full AES S-box table; second part of this
++ * table is identical to first part but byte-swapped */
+ static const u16 tkip_sbox[256] =
+ {
+ 0xC6A5, 0xF884, 0xEE99, 0xF68D, 0xFF0D, 0xD6BD, 0xDEB1, 0x9154,
+@@ -60,13 +61,53 @@ static const u16 tkip_sbox[256] =
+ 0x82C3, 0x29B0, 0x5A77, 0x1E11, 0x7BCB, 0xA8FC, 0x6DD6, 0x2C3A,
+ };
+
+-static u16 tkipS(u16 val)
++
++static inline u16 Mk16(u8 x, u8 y)
++{
++ return ((u16) x << 8) | (u16) y;
++}
++
++
++static inline u8 Hi8(u16 v)
++{
++ return v >> 8;
++}
++
++
++static inline u8 Lo8(u16 v)
++{
++ return v & 0xff;
++}
++
++
++static inline u16 Hi16(u32 v)
++{
++ return v >> 16;
++}
++
++
++static inline u16 Lo16(u32 v)
++{
++ return v & 0xffff;
++}
++
++
++static inline u16 RotR1(u16 v)
++{
++ return (v >> 1) | ((v & 0x0001) << 15);
++}
++
++
++static inline u16 tkip_S(u16 val)
+ {
+- return tkip_sbox[val & 0xff] ^ swab16(tkip_sbox[val >> 8]);
++ u16 a = tkip_sbox[Hi8(val)];
++
++ return tkip_sbox[Lo8(val)] ^ Hi8(a) ^ (Lo8(a) << 8);
+ }
+
+-/*
+- * P1K := Phase1(TA, TK, TSC)
++
++
++/* P1K := Phase1(TA, TK, TSC)
+ * TA = transmitter address (48 bits)
+ * TK = dot11DefaultKeyValue or dot11KeyMappingValue (128 bits)
+ * TSC = TKIP sequence counter (48 bits, only 32 msb bits used)
+@@ -77,22 +118,23 @@ static void tkip_mixing_phase1(const u8
+ {
+ int i, j;
+
+- p1k[0] = tsc_IV32 & 0xFFFF;
+- p1k[1] = tsc_IV32 >> 16;
+- p1k[2] = get_unaligned_le16(ta + 0);
+- p1k[3] = get_unaligned_le16(ta + 2);
+- p1k[4] = get_unaligned_le16(ta + 4);
++ p1k[0] = Lo16(tsc_IV32);
++ p1k[1] = Hi16(tsc_IV32);
++ p1k[2] = Mk16(ta[1], ta[0]);
++ p1k[3] = Mk16(ta[3], ta[2]);
++ p1k[4] = Mk16(ta[5], ta[4]);
+
+ for (i = 0; i < PHASE1_LOOP_COUNT; i++) {
+ j = 2 * (i & 1);
+- p1k[0] += tkipS(p1k[4] ^ get_unaligned_le16(tk + 0 + j));
+- p1k[1] += tkipS(p1k[0] ^ get_unaligned_le16(tk + 4 + j));
+- p1k[2] += tkipS(p1k[1] ^ get_unaligned_le16(tk + 8 + j));
+- p1k[3] += tkipS(p1k[2] ^ get_unaligned_le16(tk + 12 + j));
+- p1k[4] += tkipS(p1k[3] ^ get_unaligned_le16(tk + 0 + j)) + i;
++ p1k[0] += tkip_S(p1k[4] ^ Mk16(tk[ 1 + j], tk[ 0 + j]));
++ p1k[1] += tkip_S(p1k[0] ^ Mk16(tk[ 5 + j], tk[ 4 + j]));
++ p1k[2] += tkip_S(p1k[1] ^ Mk16(tk[ 9 + j], tk[ 8 + j]));
++ p1k[3] += tkip_S(p1k[2] ^ Mk16(tk[13 + j], tk[12 + j]));
++ p1k[4] += tkip_S(p1k[3] ^ Mk16(tk[ 1 + j], tk[ 0 + j])) + i;
+ }
+ }
+
++
+ static void tkip_mixing_phase2(const u16 *p1k, const u8 *tk, u16 tsc_IV16,
+ u8 *rc4key)
+ {
+@@ -106,29 +148,31 @@ static void tkip_mixing_phase2(const u16
+ ppk[4] = p1k[4];
+ ppk[5] = p1k[4] + tsc_IV16;
+
+- ppk[0] += tkipS(ppk[5] ^ get_unaligned_le16(tk + 0));
+- ppk[1] += tkipS(ppk[0] ^ get_unaligned_le16(tk + 2));
+- ppk[2] += tkipS(ppk[1] ^ get_unaligned_le16(tk + 4));
+- ppk[3] += tkipS(ppk[2] ^ get_unaligned_le16(tk + 6));
+- ppk[4] += tkipS(ppk[3] ^ get_unaligned_le16(tk + 8));
+- ppk[5] += tkipS(ppk[4] ^ get_unaligned_le16(tk + 10));
+- ppk[0] += ror16(ppk[5] ^ get_unaligned_le16(tk + 12), 1);
+- ppk[1] += ror16(ppk[0] ^ get_unaligned_le16(tk + 14), 1);
+- ppk[2] += ror16(ppk[1], 1);
+- ppk[3] += ror16(ppk[2], 1);
+- ppk[4] += ror16(ppk[3], 1);
+- ppk[5] += ror16(ppk[4], 1);
+-
+- rc4key[0] = tsc_IV16 >> 8;
+- rc4key[1] = ((tsc_IV16 >> 8) | 0x20) & 0x7f;
+- rc4key[2] = tsc_IV16 & 0xFF;
+- rc4key[3] = ((ppk[5] ^ get_unaligned_le16(tk)) >> 1) & 0xFF;
+-
+- rc4key += 4;
+- for (i = 0; i < 6; i++)
+- put_unaligned_le16(ppk[i], rc4key + 2 * i);
++ ppk[0] += tkip_S(ppk[5] ^ Mk16(tk[ 1], tk[ 0]));
++ ppk[1] += tkip_S(ppk[0] ^ Mk16(tk[ 3], tk[ 2]));
++ ppk[2] += tkip_S(ppk[1] ^ Mk16(tk[ 5], tk[ 4]));
++ ppk[3] += tkip_S(ppk[2] ^ Mk16(tk[ 7], tk[ 6]));
++ ppk[4] += tkip_S(ppk[3] ^ Mk16(tk[ 9], tk[ 8]));
++ ppk[5] += tkip_S(ppk[4] ^ Mk16(tk[11], tk[10]));
++ ppk[0] += RotR1(ppk[5] ^ Mk16(tk[13], tk[12]));
++ ppk[1] += RotR1(ppk[0] ^ Mk16(tk[15], tk[14]));
++ ppk[2] += RotR1(ppk[1]);
++ ppk[3] += RotR1(ppk[2]);
++ ppk[4] += RotR1(ppk[3]);
++ ppk[5] += RotR1(ppk[4]);
++
++ rc4key[0] = Hi8(tsc_IV16);
++ rc4key[1] = (Hi8(tsc_IV16) | 0x20) & 0x7f;
++ rc4key[2] = Lo8(tsc_IV16);
++ rc4key[3] = Lo8((ppk[5] ^ Mk16(tk[1], tk[0])) >> 1);
++
++ for (i = 0; i < 6; i++) {
++ rc4key[4 + 2 * i] = Lo8(ppk[i]);
++ rc4key[5 + 2 * i] = Hi8(ppk[i]);
++ }
+ }
+
++
+ /* Add TKIP IV and Ext. IV at @pos. @iv0, @iv1, and @iv2 are the first octets
+ * of the IV. Returns pointer to the octet following IVs (i.e., beginning of
+ * the packet payload). */
+@@ -139,10 +183,14 @@ u8 * ieee80211_tkip_add_iv(u8 *pos, stru
+ *pos++ = iv1;
+ *pos++ = iv2;
+ *pos++ = (key->conf.keyidx << 6) | (1 << 5) /* Ext IV */;
+- put_unaligned_le32(key->u.tkip.iv32, pos);
+- return pos + 4;
++ *pos++ = key->u.tkip.iv32 & 0xff;
++ *pos++ = (key->u.tkip.iv32 >> 8) & 0xff;
++ *pos++ = (key->u.tkip.iv32 >> 16) & 0xff;
++ *pos++ = (key->u.tkip.iv32 >> 24) & 0xff;
++ return pos;
+ }
+
++
+ void ieee80211_tkip_gen_phase1key(struct ieee80211_key *key, u8 *ta,
+ u16 *phase1key)
+ {
+@@ -180,8 +228,10 @@ void ieee80211_get_tkip_key(struct ieee8
+ u16 iv16;
+ u32 iv32;
+
+- iv16 = data[hdr_len + 2] | (data[hdr_len] << 8);
+- iv32 = get_unaligned_le32(data + hdr_len + 4);
++ iv16 = data[hdr_len] << 8;
++ iv16 += data[hdr_len + 2];
++ iv32 = data[hdr_len + 4] | (data[hdr_len + 5] << 8) |
++ (data[hdr_len + 6] << 16) | (data[hdr_len + 7] << 24);
+
+ #ifdef CONFIG_TKIP_DEBUG
+ printk(KERN_DEBUG "TKIP encrypt: iv16 = 0x%04x, iv32 = 0x%08x\n",
+@@ -231,6 +281,7 @@ void ieee80211_tkip_encrypt_data(struct
+ ieee80211_wep_encrypt_data(tfm, rc4key, 16, pos, payload_len);
+ }
+
++
+ /* Decrypt packet payload with TKIP using @key. @pos is a pointer to the
+ * beginning of the buffer containing IEEE 802.11 header payload, i.e.,
+ * including IV, Ext. IV, real data, Michael MIC, ICV. @payload_len is the
+@@ -251,7 +302,7 @@ int ieee80211_tkip_decrypt_data(struct c
+
+ iv16 = (pos[0] << 8) | pos[2];
+ keyid = pos[3];
+- iv32 = get_unaligned_le32(pos + 4);
++ iv32 = pos[4] | (pos[5] << 8) | (pos[6] << 16) | (pos[7] << 24);
+ pos += 8;
+ #ifdef CONFIG_TKIP_DEBUG
+ {
+@@ -358,3 +409,5 @@ int ieee80211_tkip_decrypt_data(struct c
+
+ return res;
+ }
++
++
+diff -up linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c.orig linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c
+--- linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c 2008-05-19 17:38:26.000000000 -0400
+@@ -26,7 +26,7 @@ static inline u32 u32_field_get(u8 *preq
+ {
+ if (ae)
+ offset += 6;
+- return get_unaligned_le32(preq_elem + offset);
++ return le32_to_cpu(get_unaligned((__le32 *) (preq_elem + offset)));
+ }
+
+ /* HWMP IE processing macros */
+diff -up linux-2.6.25.noarch/net/wireless/wext.c.orig linux-2.6.25.noarch/net/wireless/wext.c
+--- linux-2.6.25.noarch/net/wireless/wext.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/wext.c 2008-05-19 17:31:10.000000000 -0400
+@@ -1157,7 +1157,7 @@ static void rtmsg_iwinfo(struct net_devi
+ struct sk_buff *skb;
+ int err;
+
+- if (dev_net(dev) != &init_net)
++ if (dev->nd_net != &init_net)
+ return;
+
+ skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC);
+diff -up linux-2.6.25.noarch/net/wireless/radiotap.c.orig linux-2.6.25.noarch/net/wireless/radiotap.c
+--- linux-2.6.25.noarch/net/wireless/radiotap.c.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/radiotap.c 2008-05-19 17:38:26.000000000 -0400
+@@ -59,21 +59,23 @@ int ieee80211_radiotap_iterator_init(
+ return -EINVAL;
+
+ /* sanity check for allowed length and radiotap length field */
+- if (max_length < get_unaligned_le16(&radiotap_header->it_len))
++ if (max_length < le16_to_cpu(get_unaligned(&radiotap_header->it_len)))
+ return -EINVAL;
+
+ iterator->rtheader = radiotap_header;
+- iterator->max_length = get_unaligned_le16(&radiotap_header->it_len);
++ iterator->max_length = le16_to_cpu(get_unaligned(
++ &radiotap_header->it_len));
+ iterator->arg_index = 0;
+- iterator->bitmap_shifter = get_unaligned_le32(&radiotap_header->it_present);
++ iterator->bitmap_shifter = le32_to_cpu(get_unaligned(
++ &radiotap_header->it_present));
+ iterator->arg = (u8 *)radiotap_header + sizeof(*radiotap_header);
+ iterator->this_arg = NULL;
+
+ /* find payload start allowing for extended bitmap(s) */
+
+ if (unlikely(iterator->bitmap_shifter & (1<<IEEE80211_RADIOTAP_EXT))) {
+- while (get_unaligned_le32(iterator->arg) &
+- (1 << IEEE80211_RADIOTAP_EXT)) {
++ while (le32_to_cpu(get_unaligned((__le32 *)iterator->arg)) &
++ (1<<IEEE80211_RADIOTAP_EXT)) {
+ iterator->arg += sizeof(u32);
+
+ /*
+@@ -239,8 +241,8 @@ int ieee80211_radiotap_iterator_next(
+ if (iterator->bitmap_shifter & 1) {
+ /* b31 was set, there is more */
+ /* move to next u32 bitmap */
+- iterator->bitmap_shifter =
+- get_unaligned_le32(iterator->next_bitmap);
++ iterator->bitmap_shifter = le32_to_cpu(
++ get_unaligned(iterator->next_bitmap));
+ iterator->next_bitmap++;
+ } else
+ /* no more bitmaps: end */
+diff -up linux-2.6.25.noarch/net/wireless/core.c.orig linux-2.6.25.noarch/net/wireless/core.c
+--- linux-2.6.25.noarch/net/wireless/core.c.orig 2008-05-19 17:32:53.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/core.c 2008-05-19 17:37:18.000000000 -0400
+@@ -167,13 +167,13 @@ int cfg80211_dev_rename(struct cfg80211_
+
+ /* Ignore nop renames */
+ result = 0;
+- if (strcmp(newname, dev_name(&rdev->wiphy.dev)) == 0)
++ if (strcmp(newname, rdev->wiphy.dev.bus_id) == 0)
+ goto out_unlock;
+
+ /* Ensure another device does not already have this name. */
+ list_for_each_entry(drv, &cfg80211_drv_list, list) {
+ result = -EINVAL;
+- if (strcmp(newname, dev_name(&drv->wiphy.dev)) == 0)
++ if (strcmp(newname, drv->wiphy.dev.bus_id) == 0)
+ goto out_unlock;
+ }
+
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c 2008-05-19 17:42:19.000000000 -0400
+@@ -1400,7 +1400,7 @@ static void b43_phy_initg(struct b43_wld
+ * the value 0x7FFFFFFF here. I think that is some weird
+ * compiler optimization in the original driver.
+ * Essentially, what we do here is resetting all NRSSI LT
+- * entries to -32 (see the clamp_val() in nrssi_hw_update())
++ * entries to -32 (see the limit_value() in nrssi_hw_update())
+ */
+ b43_nrssi_hw_update(dev, 0xFFFF); //FIXME?
+ b43_calc_nrssi_threshold(dev);
+@@ -1462,13 +1462,13 @@ static s8 b43_phy_estimate_power_out(str
+ switch (phy->type) {
+ case B43_PHYTYPE_A:
+ tmp += 0x80;
+- tmp = clamp_val(tmp, 0x00, 0xFF);
++ tmp = limit_value(tmp, 0x00, 0xFF);
+ dbm = phy->tssi2dbm[tmp];
+ //TODO: There's a FIXME on the specs
+ break;
+ case B43_PHYTYPE_B:
+ case B43_PHYTYPE_G:
+- tmp = clamp_val(tmp, 0x00, 0x3F);
++ tmp = limit_value(tmp, 0x00, 0x3F);
+ dbm = phy->tssi2dbm[tmp];
+ break;
+ default:
+@@ -1527,8 +1527,8 @@ void b43_put_attenuation_into_ranges(str
+ break;
+ }
+
+- *_rfatt = clamp_val(rfatt, rf_min, rf_max);
+- *_bbatt = clamp_val(bbatt, bb_min, bb_max);
++ *_rfatt = limit_value(rfatt, rf_min, rf_max);
++ *_bbatt = limit_value(bbatt, bb_min, bb_max);
+ }
+
+ /* http://bcm-specs.sipsolutions.net/RecalculateTransmissionPower */
+@@ -1623,7 +1623,7 @@ void b43_phy_xmitpower(struct b43_wldev
+ /* Get desired power (in Q5.2) */
+ desired_pwr = INT_TO_Q52(phy->power_level);
+ /* And limit it. max_pwr already is Q5.2 */
+- desired_pwr = clamp_val(desired_pwr, 0, max_pwr);
++ desired_pwr = limit_value(desired_pwr, 0, max_pwr);
+ if (b43_debug(dev, B43_DBG_XMITPOWER)) {
+ b43dbg(dev->wl,
+ "Current TX power output: " Q52_FMT
+@@ -1733,7 +1733,7 @@ static inline
+ f = q;
+ i++;
+ } while (delta >= 2);
+- entry[index] = clamp_val(b43_tssi2dbm_ad(m1 * f, 8192), -127, 128);
++ entry[index] = limit_value(b43_tssi2dbm_ad(m1 * f, 8192), -127, 128);
+ return 0;
+ }
+
+@@ -2259,7 +2259,7 @@ void b43_nrssi_hw_update(struct b43_wlde
+ for (i = 0; i < 64; i++) {
+ tmp = b43_nrssi_hw_read(dev, i);
+ tmp -= val;
+- tmp = clamp_val(tmp, -32, 31);
++ tmp = limit_value(tmp, -32, 31);
+ b43_nrssi_hw_write(dev, i, tmp);
+ }
+ }
+@@ -2276,7 +2276,7 @@ void b43_nrssi_mem_update(struct b43_wld
+ tmp = (i - delta) * phy->nrssislope;
+ tmp /= 0x10000;
+ tmp += 0x3A;
+- tmp = clamp_val(tmp, 0, 0x3F);
++ tmp = limit_value(tmp, 0, 0x3F);
+ phy->nrssi_lt[i] = tmp;
+ }
+ }
+@@ -2713,7 +2713,7 @@ void b43_calc_nrssi_threshold(struct b43
+ } else
+ threshold = phy->nrssi[1] - 5;
+
+- threshold = clamp_val(threshold, 0, 0x3E);
++ threshold = limit_value(threshold, 0, 0x3E);
+ b43_phy_read(dev, 0x0020); /* dummy read */
+ b43_phy_write(dev, 0x0020,
+ (((u16) threshold) << 8) | 0x001C);
+@@ -2764,7 +2764,7 @@ void b43_calc_nrssi_threshold(struct b43
+ else
+ a += 32;
+ a = a >> 6;
+- a = clamp_val(a, -31, 31);
++ a = limit_value(a, -31, 31);
+
+ b = b * (phy->nrssi[1] - phy->nrssi[0]);
+ b += (phy->nrssi[0] << 6);
+@@ -2773,7 +2773,7 @@ void b43_calc_nrssi_threshold(struct b43
+ else
+ b += 32;
+ b = b >> 6;
+- b = clamp_val(b, -31, 31);
++ b = limit_value(b, -31, 31);
+
+ tmp_u16 = b43_phy_read(dev, 0x048A) & 0xF000;
+ tmp_u16 |= ((u32) b & 0x0000003F);
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c 2008-05-19 17:42:19.000000000 -0400
+@@ -199,7 +199,7 @@ static void lo_measure_txctl_values(stru
+ if (lb_gain > 10) {
+ radio_pctl_reg = 0;
+ pga = abs(10 - lb_gain) / 6;
+- pga = clamp_val(pga, 0, 15);
++ pga = limit_value(pga, 0, 15);
+ } else {
+ int cmp_val;
+ int tmp;
+@@ -321,7 +321,7 @@ static void lo_measure_gain_values(struc
+ phy->lna_lod_gain = 1;
+ trsw_rx_gain -= 8;
+ }
+- trsw_rx_gain = clamp_val(trsw_rx_gain, 0, 0x2D);
++ trsw_rx_gain = limit_value(trsw_rx_gain, 0, 0x2D);
+ phy->pga_gain = trsw_rx_gain / 3;
+ if (phy->pga_gain >= 5) {
+ phy->pga_gain -= 5;
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/main.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/main.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/main.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/main.c 2008-05-19 17:42:19.000000000 -0400
+@@ -1182,10 +1182,10 @@ static void handle_irq_noise(struct b43_
+ /* Get the noise samples. */
+ B43_WARN_ON(dev->noisecalc.nr_samples >= 8);
+ i = dev->noisecalc.nr_samples;
+- noise[0] = clamp_val(noise[0], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
+- noise[1] = clamp_val(noise[1], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
+- noise[2] = clamp_val(noise[2], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
+- noise[3] = clamp_val(noise[3], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
++ noise[0] = limit_value(noise[0], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
++ noise[1] = limit_value(noise[1], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
++ noise[2] = limit_value(noise[2], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
++ noise[3] = limit_value(noise[3], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
+ dev->noisecalc.samples[i][0] = phy->nrssi_lt[noise[0]];
+ dev->noisecalc.samples[i][1] = phy->nrssi_lt[noise[1]];
+ dev->noisecalc.samples[i][2] = phy->nrssi_lt[noise[2]];
+@@ -2178,7 +2178,7 @@ static int b43_write_initvals(struct b43
+ goto err_format;
+ array_size -= sizeof(iv->data.d32);
+
+- value = get_unaligned_be32(&iv->data.d32);
++ value = be32_to_cpu(get_unaligned(&iv->data.d32));
+ b43_write32(dev, offset, value);
+
+ iv = (const struct b43_iv *)((const uint8_t *)iv +
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h.orig linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h 2008-05-19 17:42:19.000000000 -0400
+@@ -939,6 +939,22 @@ static inline bool __b43_warn_on_dummy(b
+ # define B43_WARN_ON(x) __b43_warn_on_dummy(unlikely(!!(x)))
+ #endif
+
++/** Limit a value between two limits */
++#ifdef limit_value
++# undef limit_value
++#endif
++#define limit_value(value, min, max) \
++ ({ \
++ typeof(value) __value = (value); \
++ typeof(value) __min = (min); \
++ typeof(value) __max = (max); \
++ if (__value < __min) \
++ __value = __min; \
++ else if (__value > __max) \
++ __value = __max; \
++ __value; \
++ })
++
+ /* Convert an integer to a Q5.2 value */
+ #define INT_TO_Q52(i) ((i) << 2)
+ /* Convert a Q5.2 value to an integer (precision loss!) */
+diff -up linux-2.6.25.noarch/drivers/net/wireless/airo.c.orig linux-2.6.25.noarch/drivers/net/wireless/airo.c
+--- linux-2.6.25.noarch/drivers/net/wireless/airo.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/airo.c 2008-05-19 17:31:10.000000000 -0400
+@@ -3659,7 +3659,7 @@ void mpi_receive_802_11 (struct airo_inf
+ ptr += hdrlen;
+ if (hdrlen == 24)
+ ptr += 6;
+- gap = get_unaligned_le16(ptr);
++ gap = le16_to_cpu(get_unaligned((__le16 *)ptr));
+ ptr += sizeof(__le16);
+ if (gap) {
+ if (gap <= 8)
+@@ -4349,28 +4349,24 @@ static int proc_config_open( struct inod
+ static int proc_wepkey_open( struct inode *inode, struct file *file );
+
+ static const struct file_operations proc_statsdelta_ops = {
+- .owner = THIS_MODULE,
+ .read = proc_read,
+ .open = proc_statsdelta_open,
+ .release = proc_close
+ };
+
+ static const struct file_operations proc_stats_ops = {
+- .owner = THIS_MODULE,
+ .read = proc_read,
+ .open = proc_stats_open,
+ .release = proc_close
+ };
+
+ static const struct file_operations proc_status_ops = {
+- .owner = THIS_MODULE,
+ .read = proc_read,
+ .open = proc_status_open,
+ .release = proc_close
+ };
+
+ static const struct file_operations proc_SSID_ops = {
+- .owner = THIS_MODULE,
+ .read = proc_read,
+ .write = proc_write,
+ .open = proc_SSID_open,
+@@ -4378,7 +4374,6 @@ static const struct file_operations proc
+ };
+
+ static const struct file_operations proc_BSSList_ops = {
+- .owner = THIS_MODULE,
+ .read = proc_read,
+ .write = proc_write,
+ .open = proc_BSSList_open,
+@@ -4386,7 +4381,6 @@ static const struct file_operations proc
+ };
+
+ static const struct file_operations proc_APList_ops = {
+- .owner = THIS_MODULE,
+ .read = proc_read,
+ .write = proc_write,
+ .open = proc_APList_open,
+@@ -4394,7 +4388,6 @@ static const struct file_operations proc
+ };
+
+ static const struct file_operations proc_config_ops = {
+- .owner = THIS_MODULE,
+ .read = proc_read,
+ .write = proc_write,
+ .open = proc_config_open,
+@@ -4402,7 +4395,6 @@ static const struct file_operations proc
+ };
+
+ static const struct file_operations proc_wepkey_ops = {
+- .owner = THIS_MODULE,
+ .read = proc_read,
+ .write = proc_write,
+ .open = proc_wepkey_open,
+@@ -4421,6 +4413,10 @@ struct proc_data {
+ void (*on_close) (struct inode *, struct file *);
+ };
+
++#ifndef SETPROC_OPS
++#define SETPROC_OPS(entry, ops) (entry)->proc_fops = &(ops)
++#endif
++
+ static int setup_proc_entry( struct net_device *dev,
+ struct airo_info *apriv ) {
+ struct proc_dir_entry *entry;
+@@ -4436,76 +4432,100 @@ static int setup_proc_entry( struct net_
+ apriv->proc_entry->owner = THIS_MODULE;
+
+ /* Setup the StatsDelta */
+- entry = proc_create_data("StatsDelta",
+- S_IFREG | (S_IRUGO&proc_perm),
+- apriv->proc_entry, &proc_statsdelta_ops, dev);
++ entry = create_proc_entry("StatsDelta",
++ S_IFREG | (S_IRUGO&proc_perm),
++ apriv->proc_entry);
+ if (!entry)
+ goto fail_stats_delta;
+ entry->uid = proc_uid;
+ entry->gid = proc_gid;
++ entry->data = dev;
++ entry->owner = THIS_MODULE;
++ SETPROC_OPS(entry, proc_statsdelta_ops);
+
+ /* Setup the Stats */
+- entry = proc_create_data("Stats",
+- S_IFREG | (S_IRUGO&proc_perm),
+- apriv->proc_entry, &proc_stats_ops, dev);
++ entry = create_proc_entry("Stats",
++ S_IFREG | (S_IRUGO&proc_perm),
++ apriv->proc_entry);
+ if (!entry)
+ goto fail_stats;
+ entry->uid = proc_uid;
+ entry->gid = proc_gid;
++ entry->data = dev;
++ entry->owner = THIS_MODULE;
++ SETPROC_OPS(entry, proc_stats_ops);
+
+ /* Setup the Status */
+- entry = proc_create_data("Status",
+- S_IFREG | (S_IRUGO&proc_perm),
+- apriv->proc_entry, &proc_status_ops, dev);
++ entry = create_proc_entry("Status",
++ S_IFREG | (S_IRUGO&proc_perm),
++ apriv->proc_entry);
+ if (!entry)
+ goto fail_status;
+ entry->uid = proc_uid;
+ entry->gid = proc_gid;
++ entry->data = dev;
++ entry->owner = THIS_MODULE;
++ SETPROC_OPS(entry, proc_status_ops);
+
+ /* Setup the Config */
+- entry = proc_create_data("Config",
+- S_IFREG | proc_perm,
+- apriv->proc_entry, &proc_config_ops, dev);
++ entry = create_proc_entry("Config",
++ S_IFREG | proc_perm,
++ apriv->proc_entry);
+ if (!entry)
+ goto fail_config;
+ entry->uid = proc_uid;
+ entry->gid = proc_gid;
++ entry->data = dev;
++ entry->owner = THIS_MODULE;
++ SETPROC_OPS(entry, proc_config_ops);
+
+ /* Setup the SSID */
+- entry = proc_create_data("SSID",
+- S_IFREG | proc_perm,
+- apriv->proc_entry, &proc_SSID_ops, dev);
++ entry = create_proc_entry("SSID",
++ S_IFREG | proc_perm,
++ apriv->proc_entry);
+ if (!entry)
+ goto fail_ssid;
+ entry->uid = proc_uid;
+ entry->gid = proc_gid;
++ entry->data = dev;
++ entry->owner = THIS_MODULE;
++ SETPROC_OPS(entry, proc_SSID_ops);
+
+ /* Setup the APList */
+- entry = proc_create_data("APList",
+- S_IFREG | proc_perm,
+- apriv->proc_entry, &proc_APList_ops, dev);
++ entry = create_proc_entry("APList",
++ S_IFREG | proc_perm,
++ apriv->proc_entry);
+ if (!entry)
+ goto fail_aplist;
+ entry->uid = proc_uid;
+ entry->gid = proc_gid;
++ entry->data = dev;
++ entry->owner = THIS_MODULE;
++ SETPROC_OPS(entry, proc_APList_ops);
+
+ /* Setup the BSSList */
+- entry = proc_create_data("BSSList",
+- S_IFREG | proc_perm,
+- apriv->proc_entry, &proc_BSSList_ops, dev);
++ entry = create_proc_entry("BSSList",
++ S_IFREG | proc_perm,
++ apriv->proc_entry);
+ if (!entry)
+ goto fail_bsslist;
+ entry->uid = proc_uid;
+ entry->gid = proc_gid;
++ entry->data = dev;
++ entry->owner = THIS_MODULE;
++ SETPROC_OPS(entry, proc_BSSList_ops);
+
+ /* Setup the WepKey */
+- entry = proc_create_data("WepKey",
+- S_IFREG | proc_perm,
+- apriv->proc_entry, &proc_wepkey_ops, dev);
++ entry = create_proc_entry("WepKey",
++ S_IFREG | proc_perm,
++ apriv->proc_entry);
+ if (!entry)
+ goto fail_wepkey;
+ entry->uid = proc_uid;
+ entry->gid = proc_gid;
++ entry->data = dev;
++ entry->owner = THIS_MODULE;
++ SETPROC_OPS(entry, proc_wepkey_ops);
+
+ return 0;
+
+diff -up linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c.orig linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c
+--- linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c 2008-05-19 17:31:10.000000000 -0400
+@@ -545,11 +545,11 @@ static void handle_rx_packet(struct zd_u
+ * be padded. Unaligned access might also happen if the length_info
+ * structure is not present.
+ */
+- if (get_unaligned_le16(&length_info->tag) == RX_LENGTH_INFO_TAG)
++ if (get_unaligned(&length_info->tag) == cpu_to_le16(RX_LENGTH_INFO_TAG))
+ {
+ unsigned int l, k, n;
+ for (i = 0, l = 0;; i++) {
+- k = get_unaligned_le16(&length_info->length[i]);
++ k = le16_to_cpu(get_unaligned(&length_info->length[i]));
+ if (k == 0)
+ return;
+ n = l+k;
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c 2008-05-19 17:43:33.000000000 -0400
+@@ -1088,7 +1088,7 @@ static void b43legacy_phy_initg(struct b
+ * the value 0x7FFFFFFF here. I think that is some weird
+ * compiler optimization in the original driver.
+ * Essentially, what we do here is resetting all NRSSI LT
+- * entries to -32 (see the clamp_val() in nrssi_hw_update())
++ * entries to -32 (see the limit_value() in nrssi_hw_update())
+ */
+ b43legacy_nrssi_hw_update(dev, 0xFFFF);
+ b43legacy_calc_nrssi_threshold(dev);
+@@ -1756,7 +1756,7 @@ static s8 b43legacy_phy_estimate_power_o
+ switch (phy->type) {
+ case B43legacy_PHYTYPE_B:
+ case B43legacy_PHYTYPE_G:
+- tmp = clamp_val(tmp, 0x00, 0x3F);
++ tmp = limit_value(tmp, 0x00, 0x3F);
+ dbm = phy->tssi2dbm[tmp];
+ break;
+ default:
+@@ -1859,7 +1859,7 @@ void b43legacy_phy_xmitpower(struct b43l
+
+ /* find the desired power in Q5.2 - power_level is in dBm
+ * and limit it - max_pwr is already in Q5.2 */
+- desired_pwr = clamp_val(phy->power_level << 2, 0, max_pwr);
++ desired_pwr = limit_value(phy->power_level << 2, 0, max_pwr);
+ if (b43legacy_debug(dev, B43legacy_DBG_XMITPOWER))
+ b43legacydbg(dev->wl, "Current TX power output: " Q52_FMT
+ " dBm, Desired TX power output: " Q52_FMT
+@@ -1905,7 +1905,7 @@ void b43legacy_phy_xmitpower(struct b43l
+ radio_attenuation++;
+ }
+ }
+- baseband_attenuation = clamp_val(baseband_attenuation, 0, 11);
++ baseband_attenuation = limit_value(baseband_attenuation, 0, 11);
+
+ txpower = phy->txctl1;
+ if ((phy->radio_ver == 0x2050) && (phy->radio_rev == 2)) {
+@@ -1933,8 +1933,8 @@ void b43legacy_phy_xmitpower(struct b43l
+ }
+ /* Save the control values */
+ phy->txctl1 = txpower;
+- baseband_attenuation = clamp_val(baseband_attenuation, 0, 11);
+- radio_attenuation = clamp_val(radio_attenuation, 0, 9);
++ baseband_attenuation = limit_value(baseband_attenuation, 0, 11);
++ radio_attenuation = limit_value(radio_attenuation, 0, 9);
+ phy->rfatt = radio_attenuation;
+ phy->bbatt = baseband_attenuation;
+
+@@ -1979,7 +1979,7 @@ s8 b43legacy_tssi2dbm_entry(s8 entry [],
+ f = q;
+ i++;
+ } while (delta >= 2);
+- entry[index] = clamp_val(b43legacy_tssi2dbm_ad(m1 * f, 8192),
++ entry[index] = limit_value(b43legacy_tssi2dbm_ad(m1 * f, 8192),
+ -127, 128);
+ return 0;
+ }
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c 2008-05-19 17:43:33.000000000 -0400
+@@ -357,7 +357,7 @@ void b43legacy_nrssi_hw_update(struct b4
+ for (i = 0; i < 64; i++) {
+ tmp = b43legacy_nrssi_hw_read(dev, i);
+ tmp -= val;
+- tmp = clamp_val(tmp, -32, 31);
++ tmp = limit_value(tmp, -32, 31);
+ b43legacy_nrssi_hw_write(dev, i, tmp);
+ }
+ }
+@@ -375,7 +375,7 @@ void b43legacy_nrssi_mem_update(struct b
+ tmp = (i - delta) * phy->nrssislope;
+ tmp /= 0x10000;
+ tmp += 0x3A;
+- tmp = clamp_val(tmp, 0, 0x3F);
++ tmp = limit_value(tmp, 0, 0x3F);
+ phy->nrssi_lt[i] = tmp;
+ }
+ }
+@@ -839,7 +839,7 @@ void b43legacy_calc_nrssi_threshold(stru
+ } else
+ threshold = phy->nrssi[1] - 5;
+
+- threshold = clamp_val(threshold, 0, 0x3E);
++ threshold = limit_value(threshold, 0, 0x3E);
+ b43legacy_phy_read(dev, 0x0020); /* dummy read */
+ b43legacy_phy_write(dev, 0x0020, (((u16)threshold) << 8)
+ | 0x001C);
+@@ -892,7 +892,7 @@ void b43legacy_calc_nrssi_threshold(stru
+ else
+ a += 32;
+ a = a >> 6;
+- a = clamp_val(a, -31, 31);
++ a = limit_value(a, -31, 31);
+
+ b = b * (phy->nrssi[1] - phy->nrssi[0]);
+ b += (phy->nrssi[0] << 6);
+@@ -901,7 +901,7 @@ void b43legacy_calc_nrssi_threshold(stru
+ else
+ b += 32;
+ b = b >> 6;
+- b = clamp_val(b, -31, 31);
++ b = limit_value(b, -31, 31);
+
+ tmp_u16 = b43legacy_phy_read(dev, 0x048A) & 0xF000;
+ tmp_u16 |= ((u32)b & 0x0000003F);
+@@ -1905,7 +1905,7 @@ void b43legacy_radio_set_txpower_a(struc
+ u16 dac;
+ u16 ilt;
+
+- txpower = clamp_val(txpower, 0, 63);
++ txpower = limit_value(txpower, 0, 63);
+
+ pamp = b43legacy_get_txgain_freq_power_amp(txpower);
+ pamp <<= 5;
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c 2008-05-19 17:43:33.000000000 -0400
+@@ -846,10 +846,10 @@ static void handle_irq_noise(struct b43l
+ /* Get the noise samples. */
+ B43legacy_WARN_ON(dev->noisecalc.nr_samples >= 8);
+ i = dev->noisecalc.nr_samples;
+- noise[0] = clamp_val(noise[0], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
+- noise[1] = clamp_val(noise[1], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
+- noise[2] = clamp_val(noise[2], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
+- noise[3] = clamp_val(noise[3], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
++ noise[0] = limit_value(noise[0], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
++ noise[1] = limit_value(noise[1], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
++ noise[2] = limit_value(noise[2], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
++ noise[3] = limit_value(noise[3], 0, ARRAY_SIZE(phy->nrssi_lt) - 1);
+ dev->noisecalc.samples[i][0] = phy->nrssi_lt[noise[0]];
+ dev->noisecalc.samples[i][1] = phy->nrssi_lt[noise[1]];
+ dev->noisecalc.samples[i][2] = phy->nrssi_lt[noise[2]];
+@@ -1720,7 +1720,7 @@ static int b43legacy_write_initvals(stru
+ goto err_format;
+ array_size -= sizeof(iv->data.d32);
+
+- value = get_unaligned_be32(&iv->data.d32);
++ value = be32_to_cpu(get_unaligned(&iv->data.d32));
+ b43legacy_write32(dev, offset, value);
+
+ iv = (const struct b43legacy_iv *)((const uint8_t *)iv +
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h.orig 2008-05-19 17:29:38.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h 2008-05-19 17:43:33.000000000 -0400
+@@ -823,6 +823,23 @@ void b43legacydbg(struct b43legacy_wl *w
+ # define b43legacydbg(wl, fmt...) do { /* nothing */ } while (0)
+ #endif /* DEBUG */
+
++
++/** Limit a value between two limits */
++#ifdef limit_value
++# undef limit_value
++#endif
++#define limit_value(value, min, max) \
++ ({ \
++ typeof(value) __value = (value); \
++ typeof(value) __min = (min); \
++ typeof(value) __max = (max); \
++ if (__value < __min) \
++ __value = __min; \
++ else if (__value > __max) \
++ __value = __max; \
++ __value; \
++ })
++
+ /* Macros for printing a value in Q5.2 format */
+ #define Q52_FMT "%u.%u"
+ #define Q52_ARG(q52) ((q52) / 4), (((q52) & 3) * 100 / 4)
+diff -up linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c.orig linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c
+--- linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c 2008-05-19 17:31:10.000000000 -0400
+@@ -523,7 +523,7 @@ static int lbs_process_bss(struct bss_de
+
+ if (*bytesleft >= sizeof(beaconsize)) {
+ /* Extract & convert beacon size from the command buffer */
+- beaconsize = get_unaligned_le16(*pbeaconinfo);
++ beaconsize = le16_to_cpu(get_unaligned((__le16 *)*pbeaconinfo));
+ *bytesleft -= sizeof(beaconsize);
+ *pbeaconinfo += sizeof(beaconsize);
+ }
+diff -up linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c.orig linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c 2008-05-19 17:31:10.000000000 -0400
+@@ -554,36 +554,40 @@ static void iwl3945_add_radiotap(struct
+ iwl3945_rt->rt_hdr.it_pad = 0;
+
+ /* total header + data */
+- put_unaligned_le16(sizeof(*iwl3945_rt), &iwl3945_rt->rt_hdr.it_len);
++ put_unaligned(cpu_to_le16(sizeof(*iwl3945_rt)),
++ &iwl3945_rt->rt_hdr.it_len);
+
+ /* Indicate all the fields we add to the radiotap header */
+- put_unaligned_le32((1 << IEEE80211_RADIOTAP_TSFT) |
+- (1 << IEEE80211_RADIOTAP_FLAGS) |
+- (1 << IEEE80211_RADIOTAP_RATE) |
+- (1 << IEEE80211_RADIOTAP_CHANNEL) |
+- (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) |
+- (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE) |
+- (1 << IEEE80211_RADIOTAP_ANTENNA),
+- &iwl3945_rt->rt_hdr.it_present);
++ put_unaligned(cpu_to_le32((1 << IEEE80211_RADIOTAP_TSFT) |
++ (1 << IEEE80211_RADIOTAP_FLAGS) |
++ (1 << IEEE80211_RADIOTAP_RATE) |
++ (1 << IEEE80211_RADIOTAP_CHANNEL) |
++ (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) |
++ (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE) |
++ (1 << IEEE80211_RADIOTAP_ANTENNA)),
++ &iwl3945_rt->rt_hdr.it_present);
+
+ /* Zero the flags, we'll add to them as we go */
+ iwl3945_rt->rt_flags = 0;
+
+- put_unaligned_le64(tsf, &iwl3945_rt->rt_tsf);
++ put_unaligned(cpu_to_le64(tsf), &iwl3945_rt->rt_tsf);
+
+ iwl3945_rt->rt_dbmsignal = signal;
+ iwl3945_rt->rt_dbmnoise = noise;
+
+ /* Convert the channel frequency and set the flags */
+- put_unaligned_le16(stats->freq, &iwl3945_rt->rt_channelMHz);
++ put_unaligned(cpu_to_le16(stats->freq), &iwl3945_rt->rt_channelMHz);
+ if (!(phy_flags_hw & RX_RES_PHY_FLAGS_BAND_24_MSK))
+- put_unaligned_le16(IEEE80211_CHAN_OFDM | IEEE80211_CHAN_5GHZ,
++ put_unaligned(cpu_to_le16(IEEE80211_CHAN_OFDM |
++ IEEE80211_CHAN_5GHZ),
+ &iwl3945_rt->rt_chbitmask);
+ else if (phy_flags_hw & RX_RES_PHY_FLAGS_MOD_CCK_MSK)
+- put_unaligned_le16(IEEE80211_CHAN_CCK | IEEE80211_CHAN_2GHZ,
++ put_unaligned(cpu_to_le16(IEEE80211_CHAN_CCK |
++ IEEE80211_CHAN_2GHZ),
+ &iwl3945_rt->rt_chbitmask);
+ else /* 802.11g */
+- put_unaligned_le16(IEEE80211_CHAN_OFDM | IEEE80211_CHAN_2GHZ,
++ put_unaligned(cpu_to_le16(IEEE80211_CHAN_OFDM |
++ IEEE80211_CHAN_2GHZ),
+ &iwl3945_rt->rt_chbitmask);
+
+ if (rate == -1)
+diff -up linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c.orig linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c
+--- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c.orig 2008-05-19 17:31:02.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c 2008-05-19 17:31:10.000000000 -0400
+@@ -58,6 +58,10 @@
+ #include "reg.h"
+ #include "debug.h"
+
++/* unaligned little endian access */
++#define LE_READ_2(_p) (le16_to_cpu(get_unaligned((__le16 *)(_p))))
++#define LE_READ_4(_p) (le32_to_cpu(get_unaligned((__le32 *)(_p))))
++
+ enum {
+ ATH_LED_TX,
+ ATH_LED_RX,
+@@ -2894,9 +2898,9 @@ static void ath5k_configure_filter(struc
+ if (!mclist)
+ break;
+ /* calculate XOR of eight 6-bit values */
+- val = get_unaligned_le32(mclist->dmi_addr + 0);
++ val = LE_READ_4(mclist->dmi_addr + 0);
+ pos = (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val;
+- val = get_unaligned_le32(mclist->dmi_addr + 3);
++ val = LE_READ_4(mclist->dmi_addr + 3);
+ pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val;
+ pos &= 0x3f;
+ mfilt[pos / 32] |= (1 << (pos % 32));
Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/config-generic,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -r1.100 -r1.101
--- config-generic 19 May 2008 21:50:25 -0000 1.100
+++ config-generic 19 May 2008 22:15:18 -0000 1.101
@@ -1277,6 +1277,7 @@
CONFIG_B43=m
CONFIG_B43_PCMCIA=y
CONFIG_B43_DEBUG=y
+# CONFIG_B43_FORCE_PIO is not set
CONFIG_B43LEGACY=m
CONFIG_B43LEGACY_DEBUG=y
CONFIG_B43LEGACY_DMA=y
@@ -1301,15 +1302,19 @@
CONFIG_LIBERTAS_SDIO=m
CONFIG_LIBERTAS_DEBUG=y
CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLCORE_RFKILL=y
+CONFIG_IWLWIFI_RUN_TIME_CALIB=y
+CONFIG_IWLWIFI_RFKILL=y
CONFIG_IWL4965=m
CONFIG_IWLWIFI_DEBUG=y
CONFIG_IWLWIFI_DEBUGFS=y
CONFIG_IWL4965_SENSITIVITY=y
CONFIG_IWL4965_SPECTRUM_MEASUREMENT=y
+CONFIG_IWL4965_RUN_TIME_CALIB=y
CONFIG_IWL4965_QOS=y
CONFIG_IWL4965_HT=y
CONFIG_IWL4965_LEDS=y
+CONFIG_IWL5000=y
+CONFIG_IWL5000_RUN_TIME_CALIB=y
CONFIG_IWL3945=m
CONFIG_IWL3945_DEBUG=y
CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.643
retrieving revision 1.644
diff -u -r1.643 -r1.644
--- kernel.spec 19 May 2008 21:50:25 -0000 1.643
+++ kernel.spec 19 May 2008 22:15:18 -0000 1.644
@@ -619,8 +619,7 @@
Patch680: linux-2.6-wireless.patch
Patch681: linux-2.6-wireless-pending.patch
-Patch682: linux-2.6-wireless-pending-too.patch
-Patch683: linux-2.6-rt2x00-configure_filter.patch
+Patch682: linux-2.6-wireless-fixups.patch
Patch690: linux-2.6-at76.patch
Patch700: linux-2.6-nfs-client-mounts-hang.patch
@@ -1153,17 +1152,17 @@
# wake up links that have been put to sleep by BIOS (#436099)
ApplyPatch linux-2.6-libata-force-hardreset-in-sleep-mode.patch
-# wireless patches headed for 2.6.25
-#ApplyPatch linux-2.6-wireless.patch
# wireless patches headed for 2.6.26
+ApplyPatch linux-2.6-wireless.patch
+# wireless patches headed for 2.6.27
ApplyPatch linux-2.6-wireless-pending.patch
-ApplyPatch linux-2.6-wireless-pending-too.patch
-# rt2x00 configure_filter fix to avoid endless loop on insert for USB devices
-ApplyPatch linux-2.6-rt2x00-configure_filter.patch
# Add misc wireless bits from upstream wireless tree
ApplyPatch linux-2.6-at76.patch
+# fixups to make current wireless patches build on this kernel
+ApplyPatch linux-2.6-wireless-fixups.patch
+
# implement smarter atime updates support.
ApplyPatch linux-2.6-smarter-relatime.patch
@@ -1807,6 +1806,9 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
%changelog
+* Mon May 19 2008 John W. Linville <linville at redhat.com> 2.6.25.4-24
+- Re-sync wireless bits w/ current upstream
+
* Mon May 19 2008 Dave Jones <davej at redhat.com>
- Disable PATA_ISAPNP (it's busted).
linux-2.6-at76.patch:
Index: linux-2.6-at76.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/linux-2.6-at76.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- linux-2.6-at76.patch 28 Feb 2008 02:06:24 -0000 1.9
+++ linux-2.6-at76.patch 19 May 2008 22:15:18 -0000 1.10
@@ -1,4 +1,65 @@
-commit e141a848e24724c2d5534ff8152b0be4fe1b6f62
+commit 755a49a4b9d296651276ca8ca3ece49ded9ae621
+Author: Bruno Randolf <br1 at einfach.org>
+Date: Thu May 8 19:15:40 2008 +0200
+
+ at76: use hardware flags for signal/noise units
+
+ This is the at76_usb bits...
+
+ trying to clean up the signal/noise code. the previous code in mac80211 had
+ confusing names for the related variables, did not have much definition of
+ what units of signal and noise were provided and used implicit mechanisms from
+ the wireless extensions.
+
+ this patch introduces hardware capability flags to let the hardware specify
+ clearly if it can provide signal and noise level values and which units it can
+ provide. this also anticipates possible new units like RCPI in the future.
+
+ for signal:
+
+ IEEE80211_HW_SIGNAL_UNSPEC - unspecified, unknown, hw specific
+ IEEE80211_HW_SIGNAL_DB - dB difference to unspecified reference point
+ IEEE80211_HW_SIGNAL_DBM - dBm, difference to 1mW
+
+ for noise we currently only have dBm:
+
+ IEEE80211_HW_NOISE_DBM - dBm, difference to 1mW
+
+ if IEEE80211_HW_SIGNAL_UNSPEC or IEEE80211_HW_SIGNAL_DB is used the driver has
+ to provide the maximum value (max_signal) it reports in order for applications
+ to make sense of the signal values.
+
+ i tried my best to find out for each driver what it can provide and update it
+ but i'm not sure (?) for some of them and used the more conservative guess in
+ doubt. this can be fixed easily after this patch has been merged by changing
+ the hardware flags of the driver.
+
+ DRIVER SIGNAL MAX NOISE QUAL
+ -----------------------------------------------------------------
+ adm8211 unspec(?) 100 n/a missing
+ at76_usb unspec(?) (?) unused missing
+ ath5k dBm dBm percent rssi
+ b43legacy dBm dBm percent jssi(?)
+ b43 dBm dBm percent jssi(?)
+ iwl-3945 dBm dBm percent snr+more
+ iwl-4965 dBm dBm percent snr+more
+ p54 unspec 127 n/a missing
+ rt2x00 dBm n/a percent rssi+tx/rx frame success
+ rt2400 dBm n/a
+ rt2500pci dBm n/a
+ rt2500usb dBm n/a
+ rt61pci dBm n/a
+ rt73usb dBm n/a
+ rtl8180 unspec(?) 65 n/a (?)
+ rtl8187 unspec(?) 65 (?) noise(?)
+ zd1211 dB(?) 100 n/a percent
+
+ drivers/net/wireless/ath5k/base.c: Changes-licensed-under: 3-Clause-BSD
+
+ Signed-off-by: Bruno Randolf <br1 at einfach.org>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 644ef9df7c598e369ba1794f65610b1a1e643fca
Author: Pavel Roskin <proski at gnu.org>
Date: Fri Feb 22 00:01:07 2008 -0500
@@ -7,7 +68,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4891e7cb744d9e00dfe714c2827abcd32a02e405
+commit b226eae4c43640ed83cd8126c11602e230150a56
Author: Pavel Roskin <proski at gnu.org>
Date: Fri Feb 22 00:01:01 2008 -0500
@@ -16,7 +77,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit a5d909eecd7c57843395780d7bc3e9655093bd5e
+commit 9eccbe8447a68d649d3ca683193f34b3cb9c7c6c
Author: Pavel Roskin <proski at gnu.org>
Date: Fri Feb 22 00:00:55 2008 -0500
@@ -25,7 +86,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit e5d8694e15d0f20a5a3999ca6697278df9a66ca7
+commit 5a92d66e9642b3a0a8cee6eec7172b65d9c43548
Author: Pavel Roskin <proski at gnu.org>
Date: Fri Feb 22 00:00:50 2008 -0500
@@ -34,7 +95,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 781e1500cd246b9aeaa0fc7593f028d43c87dbc0
+commit 67c3d5b697774c6fe9a644fa302c82333e1d75e3
Author: Pavel Roskin <proski at gnu.org>
Date: Fri Feb 22 00:00:44 2008 -0500
@@ -45,7 +106,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4083ec919a7353cf7a9de6cf42aa13669b7e018e
+commit b0b7eb18c8233622d1ffdea33814548e286379dd
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:01:19 2008 +0200
@@ -56,7 +117,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit bae74e67b58fc0ecf930fc1b5f485d536b1eea5a
+commit 1416847d10d0f9ddee78264dfdf14eab5fff72aa
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:01:11 2008 +0200
@@ -67,7 +128,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit e31a31b44489b3535fcf7b02871458186ed43aa7
+commit 3483c0c0779a404e7aa9a5261978a083fbf3aac7
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:01:04 2008 +0200
@@ -81,7 +142,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 162d3ad6b55220940216d35dc1418e0c0ef9b98e
+commit 10a9088fa5d75ca48fbc74108a106430336ab615
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:00:56 2008 +0200
@@ -95,7 +156,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 779e36d16d4b79f30207da5d41d8cda9151f8e1f
+commit bc12541b59aa1a0b4c58a093195d7ade3ebbbe60
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:00:49 2008 +0200
@@ -108,7 +169,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 0e5a456201237a135d5970b755ade55c18565033
+commit b5415e12ce5552b0b640c83a40fdc806eb130149
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:00:41 2008 +0200
@@ -117,7 +178,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 88ba88d527a925f0b0a5162e64e026e33312648e
+commit 82d266cbe56da67064793e1747d12abfe705ffc5
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:00:34 2008 +0200
@@ -126,7 +187,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 798f4f8d71f221f0e74dbd1588ab6225c64efc45
+commit 4e9c1daf0d0b98af6e4c0b87c299855dd63dec06
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:00:26 2008 +0200
@@ -141,7 +202,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit ee5141d10332561306a48b216a1ae1ddfe318805
+commit 475d2454db1a8a21af2cd06da2e31896b987efe4
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:00:19 2008 +0200
@@ -150,7 +211,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 2009705e36ad0b50f0cdb0f9ef186f33057d17e8
+commit adad9eb5df49e8b3848a28d3b865d2e6424f3092
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:00:11 2008 +0200
@@ -159,7 +220,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit bd80e67cdc3286868f59cf809b63c5c021392fbd
+commit 62690875db04e240d99f88ff9b4f9dd3a58ce70c
Author: Kalle Valo <kalle.valo at iki.fi>
Date: Sun Feb 10 17:00:04 2008 +0200
@@ -168,7 +229,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit c53a0aa28992ba7f212effec5e29be990848b54f
+commit 2e7fcbf808efa2b6145bccad8fd34c4c6eda7472
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Feb 10 16:59:56 2008 +0200
@@ -185,7 +246,7 @@
Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 38ec6fbd236318179e28c71bc1b3dc94166e4be2
+commit 21c8fae765d1382da763f3d32156c4d3401a4136
Author: Pavel Roskin <proski at gnu.org>
Date: Mon Feb 4 00:05:19 2008 -0500
@@ -196,7 +257,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4ed58b00a2df9772cfa631f53af52c38207d78ac
+commit c0d59b16b5f8ac0c0350318e280a5422a01ae14a
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:41:25 2007 -0400
@@ -205,7 +266,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 3a39b0c26c19b4f26ab90f8cd170e68da3c8fb91
+commit f55a566e9a47c5260eda9287a44b890fe57ac601
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:41:18 2007 -0400
@@ -214,7 +275,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 69a965e9dde88c1dec49a0e840020bbdfc2263ad
+commit 3f1b51b7bdbc53ff409c3949a56fe9ff3c59d2eb
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:41:12 2007 -0400
@@ -226,7 +287,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit e007ed4c5328f857201d66c8564978bd4150a9a5
+commit 9608639caa2889d441c45c44f2a54857717eca90
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:41:06 2007 -0400
@@ -243,7 +304,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 84d9a4914d2f678728b0b9a4c4b360e93b2e2efa
+commit d531897dbecca5614ef099134ee9a674311b47ed
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:59 2007 -0400
@@ -259,7 +320,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 46e958f2e0334bfeb1436d8066e1797804212178
+commit b3c4d43a6f9c91b60e4e2a890ccbc67baf3e1c23
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:53 2007 -0400
@@ -278,7 +339,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit cbf56decc3dd24be59bdcd7af14ae6b6fc1d7265
+commit ac77f8ab8a2b9c53ac034edb5e68ffd474afcca7
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:47 2007 -0400
@@ -290,7 +351,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 73363e219953a6bcafa0087b415c0ce154a13940
+commit 2677d1fb37e29c2e37d50c795c2d29d6ee649116
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:40 2007 -0400
@@ -301,7 +362,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 65e5ad191757d5febb31e97a8a08dbd672d0662d
+commit c4212037d703306c7536f270435366d57ee1a006
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:34 2007 -0400
@@ -310,7 +371,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8f3811adf092d19f14111166af05f10cb2efa651
+commit 7a5225ceeb8c14a0741c3deac0a6efb710f11ffc
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:27 2007 -0400
@@ -322,7 +383,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 0048a3f2c0de2f6ba969731f51eaaa73b3e168e2
+commit 191ba1c8ba5df72128d23ec6008cd34893d8ccf7
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:21 2007 -0400
@@ -334,7 +395,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 20eab45fc567b85f8aaa131eceb8d53ac14d3fd6
+commit d5d6f820fe6fa48351dcba9debe4c65da8844757
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:15 2007 -0400
@@ -343,7 +404,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit b96c9fd4b3770d5b731ed3d207644b2ffec80313
+commit 7a7dbbae303b5c8624ceb82b77745fae509e062e
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:08 2007 -0400
@@ -352,7 +413,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 6abdf0d9679fb3cc0b2ed539e24cbba058f33043
+commit bd26b5446f3456c144d96edf8b7d13c3dde16a03
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:40:02 2007 -0400
@@ -364,7 +425,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 53c4d65cd1f4455b6d0c6ce605a6853e9108c6ae
+commit 6ec4858caee0b303a555fb44eafd5ee439f8b4ce
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:55 2007 -0400
@@ -375,7 +436,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 2a000a0fb3a21674791023759e24e1bdc3c197ef
+commit c86491d05421636e1fa706266b0f7ad2aee1a2bd
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:49 2007 -0400
@@ -387,7 +448,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 59268149e41b94bc2bd3554fcd12d238e01bdc07
+commit 3e63eb48e4c32f46296181356dc6a18987f5114e
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:42 2007 -0400
@@ -398,7 +459,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 206f30d4d21565358128aa8ca210d518797ba285
+commit 3326a622746fb6569613b88322dfb345154c88b7
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:36 2007 -0400
@@ -409,7 +470,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit afd74d244ce1d869e82758c650f49a867501762f
+commit 9514c2fcf98ff2f9fb6dd559a26e6d8f85ecaa76
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:30 2007 -0400
@@ -418,7 +479,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 2235301c13ec2c6367ef129477be8967631a436f
+commit db516e461cf2d51b7175c456418bea3555b467a4
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:23 2007 -0400
@@ -429,7 +490,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit a38e0e268f2219660c91a3813d11c1440cb75faf
+commit eb1488ce769156c9478116c90c004d433103c4ee
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:17 2007 -0400
@@ -441,7 +502,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 451c1cd7fcdad82175c80fb0e3e4a0568b41c17a
+commit c1bbdd6462b3c5f8477372766282c1d25f9a37d6
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:11 2007 -0400
@@ -453,7 +514,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 447c17aaf1833217f82b97be42b333c72b966db2
+commit ecfd0aeb3ffd5429a0761d63204ee0e1aa22bf80
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:39:04 2007 -0400
@@ -465,7 +526,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 951329488d45d11d25914b4da0ab93f94d72582d
+commit 515128d684f9fdd512d6e8779ea424cba713730a
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:38:58 2007 -0400
@@ -474,7 +535,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit ae5f9aab3f18f4dcb9a83e490996990711c53cb4
+commit 789875f9bb6e33a70a67ff9c1e52c23d5cddf55c
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:38:51 2007 -0400
@@ -485,7 +546,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 3086da15d597fb24b7254c4e638b380597e7f7c0
+commit 3901e25c5af3c3671a3a909de1b8ac7daff1bd74
Author: Pavel Roskin <proski at gnu.org>
Date: Sun Sep 30 14:38:45 2007 -0400
@@ -494,7 +555,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit f6ea5e4633ef565282f4fdfd6efb4fce47ba63e6
+commit 9616128c0fca961737eae21eb70d65ec5ae88f94
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:37:34 2007 -0400
@@ -505,7 +566,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 27147842aa12fb6f3628c8b7bfe0d1e9e41ee6b8
+commit ad1f189acfcf0fd7fcf9c3e4d3dd516634c834e4
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:37:29 2007 -0400
@@ -517,7 +578,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 14a38765e92afa44f94b78911cb5f1d4bc717a29
+commit 6f6c011d64487eedba946378e8fd996dabcc0b10
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:37:23 2007 -0400
@@ -528,7 +589,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit b72a145cc8352a033cffd36e7edd3afc5ab8c692
+commit 977a28d972491da99f2a13c2e2c37d8d5604f8e4
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:37:17 2007 -0400
@@ -537,7 +598,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 21b01509a7a669f557fd0ef822058624bcaac6a4
+commit 3f62d973c16e75f2d4120519779950a24d2a9c9a
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:37:11 2007 -0400
@@ -546,7 +607,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 798293c1bbfc815ed7acd6b5390226292bbad05c
+commit cc34a2af9be308c433c2ca6612f2752ce8467db9
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:37:06 2007 -0400
@@ -555,7 +616,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 99de835fbdf7d9987511a3ffef63685edeb256f8
+commit d2e491a0392069876c419f46ee1da2a3380e046b
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:37:00 2007 -0400
@@ -564,7 +625,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit dc15d751590deb46a8f1aee782bc4f66a811ba58
+commit 7a01e11163335053670163cbf0db4cc5e3511c89
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:54 2007 -0400
@@ -576,7 +637,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit ec943e753321c78047b5e70d846deed79e3d7e0d
+commit cb1a31d4c741f65ec00be46240abb67e6c926036
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:49 2007 -0400
@@ -585,7 +646,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 474a3bd835a1d6ce0567b6f0ce71ce17520edf85
+commit f57a2fd0100b9a8c3edefeaa243b6f840074a3a2
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:43 2007 -0400
@@ -597,7 +658,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit e5d3864054c7bae4bde6681148db5fe293d3972f
+commit 114507c08d819e2228d35919183a4c28d624da1d
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:37 2007 -0400
@@ -606,7 +667,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 020e78ae379a4153b7c87aaeffca9d6694f0badb
+commit 5dc64efb69645a7bc8546a10f2b84318f2324042
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:31 2007 -0400
@@ -623,7 +684,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 83d03b994903ffe7f6ab0b540780852412387030
+commit 50f02f8f2a7a142fdd06050c62f917579879ee74
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:26 2007 -0400
@@ -634,7 +695,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 2510182b5f69324e37869cfee1d9b78c5a1c8cfe
+commit 8064cd0e0d5c3924cf126d345a4e29102b13499a
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:20 2007 -0400
@@ -647,7 +708,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit eb542472fb6621bed0d9a176e62ec261e162b3ac
+commit 53259a85aaf0282d7d3a659c36389fdf28d1fa21
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:14 2007 -0400
@@ -658,7 +719,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 0c1af75ef1a71060ddd0e32311b058feaa63ed23
+commit 79370642087659eed3ea51e78901f5e92b1df6be
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:09 2007 -0400
@@ -670,7 +731,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 71734a46b9d85b85b4e8672461f321f39e48b4aa
+commit 62b2450ba7563d2c316f19af7f30568c52dcfac3
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:36:03 2007 -0400
@@ -679,7 +740,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 3b19b79d75b5fa2746a277f52abf2690fe1a43f1
+commit fa5645d111a15b4cbc2d1b036c3f4b41611f9bc1
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:57 2007 -0400
@@ -692,7 +753,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 76403fd6c014238c564b38d9052298fc9e2a5078
+commit 780776a7a28950ef8e566651c10ab5a95aea4884
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:52 2007 -0400
@@ -704,7 +765,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit c56dfaaaada275f4a5c3cdef3dba3e6c714ce03f
+commit 5b3be54e08d28f2ed6da8b876bba3737bad5942b
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:46 2007 -0400
@@ -716,7 +777,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit c8a13ceeddd58a0c304da7eb8578e44197edad38
+commit 587b2c8ee7b15d588f773301bad51080832a7e16
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:40 2007 -0400
@@ -725,7 +786,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit ca2c72f021bef2fbb8c2c56e6d0650ba7891f7ca
+commit 08bc3de996e05450fa0176a17679fcebc24139bf
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:34 2007 -0400
@@ -737,7 +798,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 1c4f1ca9448b9300e484e39d57882a7ae38a5729
+commit 1089c6bbad5d991c7e12ed02c19b32751b3ddeea
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:29 2007 -0400
@@ -749,7 +810,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit fef6c2352ca33980d9aba9232b70aeecace2a134
+commit 1e8d1ad6860f22fc65e662b5e65dde2e86731e3a
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:23 2007 -0400
@@ -760,7 +821,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit aa7b9455703286c9823bcbd0a55f3418a0a1b47a
+commit 36fa01418f1e67b47e4bcbe06fde764f7d135b7e
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:17 2007 -0400
@@ -769,7 +830,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 9c13ed40aeed909e386950c302f6d9c130a92b2a
+commit 13c7446d6f3bce0beea750c949f80f24d87dac4d
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:11 2007 -0400
@@ -781,7 +842,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8a2cb93b3bfc2c23a394f5e4fc8dd6837503640a
+commit 842e0f3649c89ef024fdd700a797b8403f2f06a1
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:06 2007 -0400
@@ -792,7 +853,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 5c777c0514de7cbc6652f10ad55feab36b13d21b
+commit ee19eafed18f2f49a05cfe8e66dc493becf1c964
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:35:00 2007 -0400
@@ -804,7 +865,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 10bbb7977ec0cbea6087d30af14147516a5eeac5
+commit 42e93794dbed231c784dcc300180c7608987dce2
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:34:54 2007 -0400
@@ -816,7 +877,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 2646301bdd06efe9677bb2ef96acc9c450cf1af8
+commit c478ce6e9b5d2ddf7207c1bcc056e6f0b06da59a
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:34:49 2007 -0400
@@ -825,7 +886,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 0a9cfd63f1773ce2196d15d5ff1214c3c693d8a7
+commit 3375cdeed9e742a9db01d6bb1dcec3069617563b
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:34:43 2007 -0400
@@ -834,7 +895,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 684ad32c3e727b65066a896124ed73834f14b087
+commit 39645cb583a21b16bb8040e8a37c91978cffc6a0
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:34:37 2007 -0400
@@ -843,7 +904,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit cb9222a5c85ff3634475f04a7949dc7b966c1902
+commit 9abffbeb930a2d7e102c22ea0cfc32974582cb35
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:34:31 2007 -0400
@@ -852,7 +913,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 92315ab89a2ffffcb5ef24554489b06e322ea17c
+commit 28c14e6f772da88fe1727b4537c056605abb111d
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:34:26 2007 -0400
@@ -861,7 +922,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 46211c37a56499d49829d8db2c230712d6053790
+commit b57294f30f7cd0b0ccb9c412a2c2ba35072de25f
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Sep 1 00:34:20 2007 -0400
@@ -875,7 +936,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit cfc3a1a100a86079980e814674004793ad161390
+commit ce0262965d297f0c3df6b36cb60b5ec8061e823c
Author: Pavel Roskin <proski at gnu.org>
Date: Thu Aug 23 14:40:17 2007 -0400
@@ -892,10 +953,10 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-diff -up linux-2.6.24.noarch/MAINTAINERS.orig linux-2.6.24.noarch/MAINTAINERS
---- linux-2.6.24.noarch/MAINTAINERS.orig 2008-02-27 20:56:07.000000000 -0500
-+++ linux-2.6.24.noarch/MAINTAINERS 2008-02-27 20:56:14.000000000 -0500
-@@ -725,6 +725,15 @@ W: http://www.thekelleys.org.uk/atmel
+diff -up linux-2.6.25.noarch/MAINTAINERS.orig linux-2.6.25.noarch/MAINTAINERS
+--- linux-2.6.25.noarch/MAINTAINERS.orig 2008-04-16 22:49:44.000000000 -0400
++++ linux-2.6.25.noarch/MAINTAINERS 2008-05-19 17:53:23.000000000 -0400
+@@ -740,6 +740,15 @@ W: http://www.thekelleys.org.uk/atmel
W: http://atmelwlandriver.sourceforge.net/
S: Maintained
@@ -911,9 +972,9 @@
AUDIT SUBSYSTEM
P: David Woodhouse
M: dwmw2 at infradead.org
-diff -up /dev/null linux-2.6.24.noarch/drivers/net/wireless/at76_usb.h
---- /dev/null 2008-02-27 08:31:30.805858387 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/at76_usb.h 2008-02-27 20:56:23.000000000 -0500
+diff -up /dev/null linux-2.6.25.noarch/drivers/net/wireless/at76_usb.h
+--- /dev/null 2008-05-19 07:57:11.730003501 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/at76_usb.h 2008-05-19 17:53:23.000000000 -0400
@@ -0,0 +1,464 @@
+/*
+ * Copyright (c) 2002,2003 Oliver Kurth
@@ -1379,9 +1440,9 @@
+#define MAX_PADDING_SIZE 53
+
+#endif /* _AT76_USB_H */
-diff -up linux-2.6.24.noarch/drivers/net/wireless/Makefile.orig linux-2.6.24.noarch/drivers/net/wireless/Makefile
---- linux-2.6.24.noarch/drivers/net/wireless/Makefile.orig 2008-02-27 20:56:07.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/Makefile 2008-02-27 20:56:14.000000000 -0500
+diff -up linux-2.6.25.noarch/drivers/net/wireless/Makefile.orig linux-2.6.25.noarch/drivers/net/wireless/Makefile
+--- linux-2.6.25.noarch/drivers/net/wireless/Makefile.orig 2008-05-19 17:52:43.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/Makefile 2008-05-19 17:53:23.000000000 -0400
@@ -32,6 +32,8 @@ obj-$(CONFIG_ATMEL) += atmel
obj-$(CONFIG_PCI_ATMEL) += atmel_pci.o
obj-$(CONFIG_PCMCIA_ATMEL) += atmel_cs.o
@@ -1391,10 +1452,10 @@
obj-$(CONFIG_PRISM54) += prism54/
obj-$(CONFIG_HOSTAP) += hostap/
-diff -up /dev/null linux-2.6.24.noarch/drivers/net/wireless/at76_usb.c
---- /dev/null 2008-02-27 08:31:30.805858387 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/at76_usb.c 2008-02-27 20:56:23.000000000 -0500
-@@ -0,0 +1,2518 @@
+diff -up /dev/null linux-2.6.25.noarch/drivers/net/wireless/at76_usb.c
+--- /dev/null 2008-05-19 07:57:11.730003501 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/at76_usb.c 2008-05-19 17:53:24.000000000 -0400
+@@ -0,0 +1,2519 @@
+/*
+ * at76c503/at76c505 USB driver
+ *
@@ -2996,7 +3057,7 @@
+ at76_dbg_dump(DBG_RX_DATA, priv->rx_skb->data,
+ priv->rx_skb->len, "RX: len=%d", priv->rx_skb->len);
+
-+ rx_status.ssi = buf->rssi;
++ rx_status.signal = buf->rssi;
+ rx_status.flag |= RX_FLAG_DECRYPTED;
+ rx_status.flag |= RX_FLAG_IV_STRIPPED;
+
@@ -3670,7 +3731,8 @@
+
+ /* mac80211 initialisation */
+ priv->hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &at76_supported_band;
-+ priv->hw->flags = IEEE80211_HW_RX_INCLUDES_FCS;
++ priv->hw->flags = IEEE80211_HW_RX_INCLUDES_FCS |
++ IEEE80211_HW_SIGNAL_UNSPEC;
+
+ SET_IEEE80211_DEV(priv->hw, &interface->dev);
+ SET_IEEE80211_PERM_ADDR(priv->hw, priv->mac_addr);
@@ -3913,10 +3975,10 @@
+MODULE_AUTHOR("Kalle Valo <kalle.valo at iki.fi>");
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL");
-diff -up linux-2.6.24.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.24.noarch/drivers/net/wireless/Kconfig
---- linux-2.6.24.noarch/drivers/net/wireless/Kconfig.orig 2008-02-27 20:56:07.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/Kconfig 2008-02-27 20:56:23.000000000 -0500
-@@ -457,6 +457,14 @@ config PCMCIA_ATMEL
+diff -up linux-2.6.25.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.25.noarch/drivers/net/wireless/Kconfig
+--- linux-2.6.25.noarch/drivers/net/wireless/Kconfig.orig 2008-05-19 17:52:43.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/Kconfig 2008-05-19 17:53:24.000000000 -0400
+@@ -456,6 +456,14 @@ config PCMCIA_ATMEL
Enable support for PCMCIA cards containing the
Atmel at76c502 and at76c504 chips.
linux-2.6-wireless-pending.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.45 -r 1.46 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/linux-2.6-wireless-pending.patch,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- linux-2.6-wireless-pending.patch 15 Apr 2008 15:29:52 -0000 1.45
+++ linux-2.6-wireless-pending.patch 19 May 2008 22:15:18 -0000 1.46
@@ -1,95566 +1,33296 @@
-commit 06501d29ada4457349f4f4427bbf0bbb7c59b8f6
-Author: John W. Linville <linville at tuxdriver.com>
-Date: Tue Apr 1 17:38:47 2008 -0400
+commit 297c3669dd481e977927dc123ed3deed10833e2a
+Author: Holger Schurig <hs4233 at mail.mn-solutions.de>
+Date: Wed May 14 16:27:18 2008 +0200
- wireless: fix various printk warnings on ia64 (and others)
+ libertas: remove lbs_get_data_rate()
- drivers/net/wireless/ath5k/base.c: In function `ath5k_check_ibss_tsf':
- drivers/net/wireless/ath5k/base.c:1740: warning: long long unsigned int format, u64 arg (arg 5)
- drivers/net/wireless/ath5k/base.c:1740: warning: long long unsigned int format, u64 arg (arg 6)
- drivers/net/wireless/ath5k/base.c:1740: warning: long long int format, u64 arg (arg 7)
- drivers/net/wireless/ath5k/base.c:1740: warning: long long unsigned int format, u64 arg (arg 8)
- drivers/net/wireless/ath5k/base.c:1757: warning: long long unsigned int format, u64 arg (arg 5)
- drivers/net/wireless/ath5k/base.c:1757: warning: long long unsigned int format, u64 arg (arg 6)
- drivers/net/wireless/iwlwifi/iwl4965-base.c: In function `iwl4965_tx_status_reply_tx':
- drivers/net/wireless/iwlwifi/iwl4965-base.c:3105: warning: long long unsigned int format, u64 arg (arg 6)
- drivers/net/wireless/iwlwifi/iwl-4965.c: In function `iwl4965_rx_reply_rx':
- drivers/net/wireless/iwlwifi/iwl-4965.c:3978: warning: long long unsigned int format, u64 arg (arg 7)
+ lbs_get_data_rate() gets called, but no-one uses it's result.
- Cc: Andrew Morton <akpm at linux-foundation.org>
+ Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 6c4711b4697d93424e4b1f76a9929ba844d714a5
-Author: Luis Carlos Cobo <luisca at cozybit.com>
-Date: Mon Mar 31 17:39:18 2008 -0700
+commit 7cb92ee3af4f32ae278c6aad4d9c49fb52a99a66
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date: Tue May 13 18:13:35 2008 -0700
- mac80211: use a struct for bss->mesh_config
+ b43: use the bitrev helpers rather than rolling a private one
- This allows cleaner code when accesing bss->mesh_config components.
+ The 4-bit reversal flip_4bit is replaced with the bitrev helper
+ bitrev8 and a 4-bit shift. The B43_WARN is moved to the location
+ where a register is read from for checking there. The other caller
+ explicitly passes an array index which is guaranteed to be within range
+ and so a B43_WARN is not added there.
- Signed-off-by: Luis Carlos Cobo <luisca at cozybit.com>
- Acked-by: Johannes Berg <johannes at sipsolutions.net>
+ Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+ Reviewed-by: Michael Buesch <mb at bu3sch.de>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 05e5e88373d91c75e9262a3f984be511960e510d
-Author: Luis Carlos Cobo <luisca at cozybit.com>
-Date: Mon Mar 31 16:00:13 2008 -0700
+commit 8c122e14ca821402b9181f16494d9f11169deeae
+Author: Bob Copeland <me at bobcopeland.com>
+Date: Mon May 12 21:16:44 2008 -0400
- mac80211: check for mesh_config length on incoming management frames
+ ath5k: Fix loop variable initializations
- Signed-off-by: Luis Carlos Cobo <luisca at cozybit.com>
- Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 966a54282257ce1c43a5410dab2f2778a6f4dcf9
-Author: Luis Carlos Cobo <luisca at cozybit.com>
-Date: Mon Mar 31 15:33:39 2008 -0700
-
- mac80211: use recent multicast table for all mesh multicast frames
+ In ath5k_tasklet_rx, both status structures 'rxs' and 'rs' are
+ initialized at the top of the tasklet, but not within the loop.
+ If the loop is executed multiple times in the tasklet then the
+ variables may see changes from previous packets.
+
+ For TKIP, this results in 'Invalid Michael MIC' errors if two packets
+ are processed in the tasklet: rxs.flag gets set to RX_DECRYPTED by
+ mac80211 when it decrypts the first encrypted packet. The subsequent
+ packet will have RX_DECRYPTED set upon entry to mac80211, so mac80211
+ will not try to decrypt it.
- ...not only broadcast.
+ We currently initialize all but two fields in the structures, so fix
+ the other two.
- Signed-off-by: Luis Carlos Cobo <luisca at cozybit.com>
+ Signed-off-by: Bob Copeland <me at bobcopeland.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit cb585bccfedab0c228344ffa258950c417dea6b5
-Author: Luis Carlos Cobo <luisca at cozybit.com>
-Date: Mon Mar 31 15:21:23 2008 -0700
+commit 01669110ba331be385af8d5310ff6c3b93b09620
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Tue May 13 15:03:02 2008 +0200
- mac80211: fix spinlock recursion on sta expiration
+ mac80211: Set IEEE80211_TXPD_REQ_TX_STATUS for all TX frames
+
+ All interfaces should set the IEEE80211_TXPD_REQ_TX_STATUS flag for all TX frames
+ which will force the master interface to set the IEEE80211_TX_CTL_REQ_TX_STATUS
+ flag. This in turn will allow drivers to check for that flag before reporting
+ the TX status to mac80211.
- Signed-off-by: Luis Carlos Cobo <luisca at cozybit.com>
+ This is very usefull when frames (like beacons, RTS and CTS-to-self) should not
+ be reported back to mac80211. Later we could add more extensive checks to
+ exclude more frames from being reported, or let mac80211 decide if it wants
+ the frame for status reporting or not.
+
+ v2: Monitor interfaces should also set IEEE80211_TXPD_REQ_TX_STATUS
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
Acked-by: Johannes Berg <johannes at sipsolutions.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 73bb3e4a7a9f1b8d5f89c3991bd0c904ab0b8e27
-Author: Luis Carlos Cobo <luisca at cozybit.com>
-Date: Mon Mar 31 15:10:22 2008 -0700
+commit 5e15aedb1d67c2d31643edc3fa282647b0f3befb
+Author: Huang Weiyi <weiyi.huang at gmail.com>
+Date: Sat May 10 11:12:31 2008 +0200
- mac80211: fix deadlocks in debugfs_netdev.c
+ b43: nphy.c remove duplicated include
- The bug shows up with CONFIG_PREEMPT enabled. Pointed out by Andrew Morton.
+ Remove duplicated include <linux/delay.h> in
+ drivers/net/wireless/b43/nphy.c
- Cc: Andrew Morton <akpm at linux-foundation.org>
- Cc: Johannes Berg <johannes at sipsolutions.net>
- Signed-off-by: Luis Carlos Cobo <luisca at cozybit.com>
+ Signed-off-by: Huang Weiyi <weiyi.huang at gmail.com>
+ Signed-off-by: Michael Buesch <mb at bu3sch.de>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 7e879b551f1ada78d66fa5c6914aa1744b9c97d2
-Author: Johannes Berg <johannes at sipsolutions.net>
-Date: Mon Mar 31 19:23:04 2008 +0200
+commit 7ce2d429578b4e32ea68d60e7f16a2a7bb17dada
+Author: Eric W. Biederman <ebiederm at xmission.com>
+Date: Thu May 8 14:30:18 2008 -0700
- mac80211: fix sparse complaint in ieee80211_sta_def_wmm_params
+ wireless: Add missing locking to cfg80211_dev_rename
- A variable 'i' is being shadowed by another one, but the second
- one can just be removed.
+ device_rename only performs useful and race free validity
+ checking at the optional sysfs level so depending on it
+ for all of the validity checking in cfg80211_dev_rename
+ is racy.
- Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
- Cc: Vladimir Koutny <vlado at work.ksp.sk>
+ Instead implement all of the needed validity checking
+ and locking in cfg80211_dev_rename.
+
+ Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
+ Acked-by: Johannes Berg <johannes at sipsolutions.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit dc6676b7f2c2072ec05254aaca32e99f87a8a417
-Author: Johannes Berg <johannes at sipsolutions.net>
-Date: Mon Mar 31 19:23:03 2008 +0200
+commit 54a5c8046dce102c1a435ca5a95f5c0699662d21
+Author: Bruno Randolf <br1 at einfach.org>
+Date: Thu May 8 19:22:43 2008 +0200
- mac80211: sta_info_flush() fixes
+ mac80211: make rx radiotap header more flexible
- When the IBSS code tries to flush the STA list, it does so in
- an atomic context. Flushing isn't safe there, however, and
- requires the RTNL, so we need to defer it to a workqueue.
+ use hw flags and rx flags to determine which fields are present in the header
+ and use all available information from the driver.
- Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+ make sure radiotap header starts at a naturally aligned address (mod 8) for
+ all radiotap fields.
+
+ Signed-off-by: Bruno Randolf <br1 at einfach.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4f6fab472c4c7c21d577f85fabec7628d4a05637
-Author: Johannes Berg <johannes at sipsolutions.net>
-Date: Mon Mar 31 19:23:02 2008 +0200
+commit 7ccf488058d5539b1145c1605a5574ce90b68460
+Author: Bruno Randolf <br1 at einfach.org>
+Date: Thu May 8 19:15:40 2008 +0200
[...125664 lines suppressed...]
-+
-+ <chapter id="qos">
-+ <title>Multiple queues and QoS support</title>
-+ <para>TBD</para>
-+!Finclude/net/mac80211.h ieee80211_tx_queue_params
-+!Finclude/net/mac80211.h ieee80211_tx_queue_stats_data
-+!Finclude/net/mac80211.h ieee80211_tx_queue
-+ </chapter>
-+
-+ <chapter id="AP">
-+ <title>Access point mode support</title>
-+ <para>TBD</para>
-+ <para>Some parts of the if_conf should be discussed here instead</para>
-+ <para>
-+ Insert notes about VLAN interfaces with hw crypto here or
-+ in the hw crypto chapter.
-+ </para>
-+!Finclude/net/mac80211.h ieee80211_get_buffered_bc
-+!Finclude/net/mac80211.h ieee80211_beacon_get
-+ </chapter>
-+
-+ <chapter id="multi-iface">
-+ <title>Supporting multiple virtual interfaces</title>
-+ <para>TBD</para>
-+ <para>
-+ Note: WDS with identical MAC address should almost always be OK
-+ </para>
-+ <para>
-+ Insert notes about having multiple virtual interfaces with
-+ different MAC addresses here, note which configurations are
-+ supported by mac80211, add notes about supporting hw crypto
-+ with it.
-+ </para>
-+ </chapter>
-+
-+ <chapter id="hardware-scan-offload">
-+ <title>Hardware scan offload</title>
-+ <para>TBD</para>
-+!Finclude/net/mac80211.h ieee80211_scan_completed
-+ </chapter>
-+ </part>
-+
-+ <part id="rate-control">
-+ <title>Rate control interface</title>
-+ <partintro>
-+ <para>TBD</para>
-+ <para>
-+ This part of the book describes the rate control algorithm
-+ interface and how it relates to mac80211 and drivers.
-+ </para>
-+ </partintro>
-+ <chapter id="dummy">
-+ <title>dummy chapter</title>
-+ <para>TBD</para>
-+ </chapter>
-+ </part>
-+
-+ <part id="internal">
-+ <title>Internals</title>
-+ <partintro>
-+ <para>TBD</para>
-+ <para>
-+ This part of the book describes mac80211 internals.
-+ </para>
-+ </partintro>
-+
-+ <chapter id="key-handling">
-+ <title>Key handling</title>
-+ <sect1>
-+ <title>Key handling basics</title>
-+!Pnet/mac80211/key.c Key handling basics
-+ </sect1>
-+ <sect1>
-+ <title>MORE TBD</title>
-+ <para>TBD</para>
-+ </sect1>
-+ </chapter>
-+
-+ <chapter id="rx-processing">
-+ <title>Receive processing</title>
-+ <para>TBD</para>
-+ </chapter>
-+
-+ <chapter id="tx-processing">
-+ <title>Transmit processing</title>
-+ <para>TBD</para>
-+ </chapter>
-+
-+ <chapter id="sta-info">
-+ <title>Station info handling</title>
-+ <sect1>
-+ <title>Programming information</title>
-+!Fnet/mac80211/sta_info.h sta_info
-+!Fnet/mac80211/sta_info.h ieee80211_sta_info_flags
-+ </sect1>
-+ <sect1>
-+ <title>STA information lifetime rules</title>
-+!Pnet/mac80211/sta_info.c STA information lifetime rules
-+ </sect1>
-+ </chapter>
-+
-+ <chapter id="synchronisation">
-+ <title>Synchronisation</title>
-+ <para>TBD</para>
-+ <para>Locking, lots of RCU</para>
-+ </chapter>
-+ </part>
-+</book>
-diff -up linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig linux-2.6.24.noarch/Documentation/DocBook/Makefile
---- linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig 2008-04-08 00:15:26.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/DocBook/Makefile 2008-04-08 00:15:33.000000000 -0400
-@@ -11,7 +11,8 @@ DOCBOOKS := wanbook.xml z8530book.xml mc
- procfs-guide.xml writing_usb_driver.xml networking.xml \
- kernel-api.xml filesystems.xml lsm.xml usb.xml \
- gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
-- genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml
-+ genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
-+ mac80211.xml
-
- ###
- # The build process is as follows (targets):
-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-04-08 00:15:26.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt 2008-04-08 00:15:33.000000000 -0400
-@@ -230,33 +230,6 @@ Who: Jean Delvare <khali at linux-fr.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 (Why):
- - include/linux/netfilter_ipv4/ipt_TOS.h ipt_tos.h header files
- (superseded by xt_TOS/xt_tos target & match)
+@@ -1894,9 +1893,10 @@ static int __devinit adm8211_probe(struc
+
+ dev->extra_tx_headroom = sizeof(struct adm8211_tx_hdr);
+ /* dev->flags = IEEE80211_HW_RX_INCLUDES_FCS in promisc mode */
++ dev->flags = IEEE80211_HW_SIGNAL_UNSPEC;
+
+ dev->channel_change_time = 1000;
+- dev->max_rssi = 100; /* FIXME: find better value */
++ dev->max_signal = 100; /* FIXME: find better value */
+
+ dev->queues = 1; /* ADM8211C supports more, maybe ADM8211B too */
+
+diff -up linux-2.6.25.noarch/drivers/ssb/pci.c.orig linux-2.6.25.noarch/drivers/ssb/pci.c
+--- linux-2.6.25.noarch/drivers/ssb/pci.c.orig 2008-05-19 17:24:59.000000000 -0400
++++ linux-2.6.25.noarch/drivers/ssb/pci.c 2008-05-19 17:26:13.000000000 -0400
+@@ -510,17 +510,15 @@ static int ssb_pci_sprom_get(struct ssb_
+ sprom_do_read(bus, buf);
+ err = sprom_check_crc(buf, bus->sprom_size);
+ if (err) {
+- /* 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);
+- }
++ /* try for a 440 byte SPROM - revision 4 and higher */
++ 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");
linux-2.6-wireless.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.34 -r 1.35 linux-2.6-wireless.patch
Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/linux-2.6-wireless.patch,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- linux-2.6-wireless.patch 15 Apr 2008 20:27:37 -0000 1.34
+++ linux-2.6-wireless.patch 19 May 2008 22:15:19 -0000 1.35
@@ -1,860 +1,127879 @@
-commit b358492cd2a9c67bff352c5a60d86e7fc9627477
+commit 229ce3abb6d6d4598de8ef1ed1e2da8163a9bbc0
Author: Masakazu Mokuno <mokuno at sm.sony.co.jp>
-Date: Mon Apr 14 18:07:21 2008 +0900
+Date: Wed May 14 14:16:50 2008 +0900
- PS3: gelic: fix the oops on the broken IE returned from the hypervisor
+ wireless: Create 'device' symlink in sysfs
- This fixes the bug that the driver would try to over-scan the memory
- if the sum of the length field of every IEs does not match the length
- returned from the hypervisor.
+ Some network interfaces of the wireless drivers lack the 'device'
+ symlink in sysfs.
+ This patch lets the drivers create the links.
Signed-off-by: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+ Acked-by: Dan Williams <dcbw at redhat.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit dc4ae1f46dbbcd08b3b5e23ad5ef87bf4bb41adf
-Author: Stefano Brivio <stefano.brivio at polimi.it>
-Date: Mon Apr 14 00:59:49 2008 +0200
+commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a
+Author: Roel Kluin <roel.kluin at gmail.com>
+Date: Tue May 13 22:12:27 2008 +0200
- b43legacy: fix DMA mapping leakage
+ wireless, airo: waitbusy() won't delay
- This fixes a DMA mapping leakage in the case where we reject a DMA buffer
- because of its address.
- The patch by Michael Buesch has been ported to b43legacy.
+ There will be no delay even when COMMAND_BUSY (defined 0x8000) is set:
+ 0x8000 & (delay < 10000) will evaluate to 0 - when delay is 0.
- Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
- Cc: Christian Casteyde <casteyde.christian at free.fr>
+ Signed-off-by: Roel Kluin <roel.kluin at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 02969d296e91626d9942ea15f8a95fe056025ef1
+Author: Brian Cavagnolo <brian at cozybit.com>
+Date: Tue May 13 13:54:59 2008 +0100
+
+ libertas: fix command timeout after firmware failure
+
+ This is a fix for OLPC ticket #6586: "SCAN command fails, timer doesn't
+ fire". In fact, the timer was firing; the problem was that the dnld_sent
+ state variable was not being updated after the timer expired, so
+ lbs_execute_next_command was not being called.
+
+ Signed-off-by: Brian Cavagnolo <brian at cozybit.com>
+ Signed-off-by: Javier Cardona <javier at cozybit.com>
+ Signed-off-by: David Woodhouse <dwmw2 at infradead.org>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 2f561feb386d6adefbad63c59a1fcd298ac6a79c
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sat May 10 13:40:49 2008 +0200
+
+ mac80211: Add RTNL version of ieee80211_iterate_active_interfaces
+
+ Since commit e38bad4766a110b61fa6038f10be16ced8c6cc38
+ mac80211: make ieee80211_iterate_active_interfaces not need rtnl
+ rt2500usb and rt73usb broke down due to attempting register access
+ in atomic context (which is not possible for USB hardware).
+
+ This patch restores ieee80211_iterate_active_interfaces() to use RTNL lock,
+ and provides the non-RTNL version under a new name:
+ ieee80211_iterate_active_interfaces_atomic()
+
+ So far only rt2x00 uses ieee80211_iterate_active_interfaces(), and those
+ drivers require the RTNL version of ieee80211_iterate_active_interfaces().
+ Since they already call that function directly, this patch will automatically
+ fix the USB rt2x00 drivers.
+
+ v2: Rename ieee80211_iterate_active_interfaces_rtnl
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Acked-by: Johannes Berg <johannes at sipsolutions.net>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 34a961f7db36f10abd6b153411fe8c810f21f6b3
+Author: Abhijeet Kolekar <abhijeet.kolekar at intel.com>
+Date: Fri May 9 09:35:41 2008 -0700
+
+ mac80211 : Association with 11n hidden ssid ap.
+
+ This patch fixes the association problem with 11n hidden ssid ap.
+ Patch fixes the problem of associating with hidden ssid when
+ all three parameters ap,essid and channel are given to iwconfig.
+ This patch removes the condition of checking three parameters
+ and always checks for bss in bss list while associating.
+
+ Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar at intel.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 23f40dc650c0344b37fe54143868a31be66db882
+Author: Mathieu Chouquet-Stringer <mchouque at free.fr>
+Date: Wed May 14 19:03:18 2008 -0400
+
+ hostap: fix "registers" registration in procfs
+
+ The "registers" entry was incorrectly created in the procfs root instead
+ of the device specific directory. Move "registers" registration
+ immediately after the containing procfs directory is created.
+
+ Signed-off-by: Mathieu Chouquet-Stringer <mchouque at free.fr>
+ Signed-off-by: Pavel Roskin <proski at gnu.org>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 6aa5fc434958d15a4d66d922d0416dfb03c07def
+Merge: 362a61a... 9ee6b7f...
+Author: Linus Torvalds <torvalds at linux-foundation.org>
+Date: Wed May 14 10:08:24 2008 -0700
+
+ Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
+
+ * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (73 commits)
+ net: Fix typo in net/core/sock.c.
+ ppp: Do not free not yet unregistered net device.
+ netfilter: xt_iprange: module aliases for xt_iprange
+ netfilter: ctnetlink: dump conntrack ID in event messages
+ irda: Fix a misalign access issue. (v2)
+ sctp: Fix use of uninitialized pointer
+ cipso: Relax too much careful cipso hash function.
+ tcp FRTO: work-around inorder receivers
+ tcp FRTO: Fix fallback to conventional recovery
+ New maintainer for Intel ethernet adapters
+ DM9000: Use delayed work to update MII PHY state
+ DM9000: Update and fix driver debugging messages
+ DM9000: Add __devinit and __devexit attributes to probe and remove
+ sky2: fix simple define thinko
+ [netdrvr] sfc: sfc: Add self-test support
+ [netdrvr] sfc: Increment rx_reset when reported as driver event
+ [netdrvr] sfc: Remove unused macro EFX_XAUI_RETRAIN_MAX
+ [netdrvr] sfc: Fix code formatting
+ [netdrvr] sfc: Remove kernel-doc comments for removed members of struct efx_nic
+ [netdrvr] sfc: Remove garbage from comment
+ ...
+
+commit 608961a5eca8d3c6bd07172febc27b5559408c5d
+Author: David S. Miller <davem at davemloft.net>
+Date: Mon May 12 21:59:32 2008 -0700
+
+ mac80211: Use skb_header_cloned() on TX path.
+
+ When skb_header_cloned() returns false you can change the
+ headers however you like.
+
+ Signed-off-by: David S. Miller <davem at davemloft.net>
+
+commit f3994eceebf64cf356a82ffb2718ef538eb8d4f4
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date: Mon May 12 20:51:44 2008 -0700
+
+ mac80211: assign needed_headroom/tailroom for netdevs
+
+ This assigns the netdev's needed_headroom/tailroom members to take
+ advantage of pre-allocated space for 802.11 headers.
+
+ Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+ Signed-off-by: David S. Miller <davem at davemloft.net>
+
+commit a4278e18e7e497b76781492d010035c3c36f7403
+Author: Pavel Roskin <proski at gnu.org>
+Date: Mon May 12 09:02:24 2008 -0400
+
+ mac80211: add missing newlines in printk()
+
+ Signed-off-by: Pavel Roskin <proski at gnu.org>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 36d16ae73becc5978fe22866e9ab66b509211afe
+Author: Helmut Schaa <hschaa at suse.de>
+Date: Thu May 8 13:34:07 2008 +0200
+
+ mac80211: fix association with some APs
+
+ Some APs refuse association if the supported rates contained in the
+ association request do not match its own supported rates. This patch
+ introduces a new function which builds the intersection between the AP's
+ supported rates and the client's supported rates to work around such
+ problems. The same approach is already used in ipw2200 for example.
+
+ Signed-off-by: Helmut Schaa <hschaa at suse.de>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c0186078b78839a8bdb385fa07a816c2f348a49d
+Author: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
[...128265 lines suppressed...]
++static void ssb_pcicore_fixup_pcibridge(struct pci_dev *dev)
++{
++ u8 lat;
++
++ if (dev->bus->ops != &ssb_pcicore_pciops) {
++ /* This is not a device on the PCI-core bridge. */
++ return;
++ }
++ if (dev->bus->number != 0 || PCI_SLOT(dev->devfn) != 0)
++ return;
++
++ ssb_printk(KERN_INFO "PCI: Fixing up bridge %s\n", pci_name(dev));
++
++ /* Enable PCI bridge bus mastering and memory space */
++ pci_set_master(dev);
++ if (pcibios_enable_device(dev, ~0) < 0) {
++ ssb_printk(KERN_ERR "PCI: SSB bridge enable failed\n");
++ return;
++ }
++
++ /* Enable PCI bridge BAR1 prefetch and burst */
++ pci_write_config_dword(dev, SSB_BAR1_CONTROL, 3);
++
++ /* Make sure our latency is high enough to handle the devices behind us */
++ lat = 168;
++ ssb_printk(KERN_INFO "PCI: Fixing latency timer of device %s to %u\n",
++ pci_name(dev), lat);
++ pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat);
++}
++DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, ssb_pcicore_fixup_pcibridge);
++
++/* PCI device IRQ mapping. */
++int ssb_pcicore_pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
++{
++ if (dev->bus->ops != &ssb_pcicore_pciops) {
++ /* This is not a device on the PCI-core bridge. */
++ return -ENODEV;
++ }
++ return ssb_mips_irq(extpci_core->dev) + 2;
++}
++
+ static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc)
+ {
+ u32 val;
+@@ -544,15 +562,9 @@ int ssb_pcicore_dev_irqvecs_enable(struc
+ u32 intvec;
+
+ intvec = ssb_read32(pdev, SSB_INTVEC);
+- if ((bus->chip_id & 0xFF00) == 0x4400) {
+- /* Workaround: On the BCM44XX the BPFLAG routing
+- * bit is wrong. Use a hardcoded constant. */
+- intvec |= 0x00000002;
+- } else {
+- tmp = ssb_read32(dev, SSB_TPSFLAG);
+- tmp &= SSB_TPSFLAG_BPFLAG;
+- intvec |= (1 << tmp);
+- }
++ tmp = ssb_read32(dev, SSB_TPSFLAG);
++ tmp &= SSB_TPSFLAG_BPFLAG;
++ intvec |= (1 << tmp);
+ ssb_write32(pdev, SSB_INTVEC, intvec);
+ }
+
+diff -up /dev/null linux-2.6.25.noarch/drivers/ssb/sprom.c
+--- /dev/null 2008-05-19 07:57:11.730003501 -0400
++++ linux-2.6.25.noarch/drivers/ssb/sprom.c 2008-05-19 17:16:42.000000000 -0400
+@@ -0,0 +1,133 @@
++/*
++ * Sonics Silicon Backplane
++ * Common SPROM support routines
++ *
++ * Copyright (C) 2005-2008 Michael Buesch <mb at bu3sch.de>
++ * Copyright (C) 2005 Martin Langer <martin-langer at gmx.de>
++ * Copyright (C) 2005 Stefano Brivio <st3 at riseup.net>
++ * Copyright (C) 2005 Danny van Dyk <kugelfang at gentoo.org>
++ * Copyright (C) 2005 Andreas Jaggi <andreas.jaggi at waterwave.ch>
++ *
++ * Licensed under the GNU/GPL. See COPYING for details.
++ */
++
++#include "ssb_private.h"
++
++
++static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len,
++ size_t sprom_size_words)
++{
++ int i, pos = 0;
++
++ for (i = 0; i < sprom_size_words; i++)
++ pos += snprintf(buf + pos, buf_len - pos - 1,
++ "%04X", swab16(sprom[i]) & 0xFFFF);
++ pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
++
++ return pos + 1;
++}
++
++static int hex2sprom(u16 *sprom, const char *dump, size_t len,
++ size_t sprom_size_words)
++{
++ char tmp[5] = { 0 };
++ int cnt = 0;
++ unsigned long parsed;
++
++ if (len < sprom_size_words * 2)
++ return -EINVAL;
++
++ while (cnt < sprom_size_words) {
++ memcpy(tmp, dump, 4);
++ dump += 4;
++ parsed = simple_strtoul(tmp, NULL, 16);
++ sprom[cnt++] = swab16((u16)parsed);
++ }
++
++ return 0;
++}
++
++/* Common sprom device-attribute show-handler */
++ssize_t ssb_attr_sprom_show(struct ssb_bus *bus, char *buf,
++ int (*sprom_read)(struct ssb_bus *bus, u16 *sprom))
++{
++ u16 *sprom;
++ int err = -ENOMEM;
++ ssize_t count = 0;
++ size_t sprom_size_words = bus->sprom_size;
++
++ sprom = kcalloc(sprom_size_words, sizeof(u16), GFP_KERNEL);
++ if (!sprom)
++ goto out;
++
++ /* Use interruptible locking, as the SPROM write might
++ * be holding the lock for several seconds. So allow userspace
++ * to cancel operation. */
++ err = -ERESTARTSYS;
++ if (mutex_lock_interruptible(&bus->sprom_mutex))
++ goto out_kfree;
++ err = sprom_read(bus, sprom);
++ mutex_unlock(&bus->sprom_mutex);
++
++ if (!err)
++ count = sprom2hex(sprom, buf, PAGE_SIZE, sprom_size_words);
++
++out_kfree:
++ kfree(sprom);
++out:
++ return err ? err : count;
++}
++
++/* Common sprom device-attribute store-handler */
++ssize_t ssb_attr_sprom_store(struct ssb_bus *bus,
++ const char *buf, size_t count,
++ int (*sprom_check_crc)(const u16 *sprom, size_t size),
++ int (*sprom_write)(struct ssb_bus *bus, const u16 *sprom))
++{
++ u16 *sprom;
++ int res = 0, err = -ENOMEM;
++ size_t sprom_size_words = bus->sprom_size;
++
++ sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
++ if (!sprom)
++ goto out;
++ err = hex2sprom(sprom, buf, count, sprom_size_words);
++ if (err) {
++ err = -EINVAL;
++ goto out_kfree;
++ }
++ err = sprom_check_crc(sprom, sprom_size_words);
++ if (err) {
++ err = -EINVAL;
++ goto out_kfree;
++ }
++
++ /* Use interruptible locking, as the SPROM write might
++ * be holding the lock for several seconds. So allow userspace
++ * to cancel operation. */
++ err = -ERESTARTSYS;
++ if (mutex_lock_interruptible(&bus->sprom_mutex))
++ goto out_kfree;
++ err = ssb_devices_freeze(bus);
++ if (err == -EOPNOTSUPP) {
++ ssb_printk(KERN_ERR PFX "SPROM write: Could not freeze devices. "
++ "No suspend support. Is CONFIG_PM enabled?\n");
++ goto out_unlock;
++ }
++ if (err) {
++ ssb_printk(KERN_ERR PFX "SPROM write: Could not freeze all devices\n");
++ goto out_unlock;
++ }
++ res = sprom_write(bus, sprom);
++ err = ssb_devices_thaw(bus);
++ if (err)
++ ssb_printk(KERN_ERR PFX "SPROM write: Could not thaw all devices\n");
++out_unlock:
++ mutex_unlock(&bus->sprom_mutex);
++out_kfree:
++ kfree(sprom);
++out:
++ if (res)
++ return res;
++ return err ? err : count;
++}
--- linux-2.6-rt2x00-configure_filter.patch DELETED ---
--- linux-2.6-wireless-pending-too.patch DELETED ---
More information about the fedora-extras-commits
mailing list