rpms/kernel/devel kernel.spec, 1.494, 1.495 linux-2.6-wireless.patch, 1.26, 1.27

John W. Linville (linville) fedora-extras-commits at redhat.com
Tue Mar 11 20:44:28 UTC 2008


Author: linville

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

Modified Files:
	kernel.spec linux-2.6-wireless.patch 
Log Message:
wireless fixes from 2008-03-11


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.494
retrieving revision 1.495
diff -u -r1.494 -r1.495
--- kernel.spec	11 Mar 2008 19:00:11 -0000	1.494
+++ kernel.spec	11 Mar 2008 20:43:54 -0000	1.495
@@ -1114,7 +1114,7 @@
 ApplyPatch linux-2.6-ata-quirk.patch
 
 # wireless patches headed for 2.6.25
-#ApplyPatch linux-2.6-wireless.patch
+ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.26
 ApplyPatch linux-2.6-wireless-pending.patch
 ApplyPatch linux-2.6-wireless-fixups.patch
@@ -1756,6 +1756,12 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Tue Mar 11 2008 John W. Linville <linville at redhat.com>
+- rt2x00: never disable multicast because it disables broadcast too
+- rt2x00: Add new D-Link USB ID
+- drivers/net/Kconfig: fix whitespace for GELIC_WIRELESS entry
+- libertas: fix the 'compare command with itself' properly
+
 * Tue Mar 11 2008 Dave Jones <davej at redhat.com>
 - Print values when we overflow resource allocation.
 

linux-2.6-wireless.patch:

Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless.patch,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- linux-2.6-wireless.patch	5 Mar 2008 01:09:02 -0000	1.26
+++ linux-2.6-wireless.patch	11 Mar 2008 20:43:54 -0000	1.27
@@ -1,391 +1,122 @@
-commit c256e05b7b30fab484deacb4f8cff59ce649c75e
-Author: Michael Buesch <mb at bu3sch.de>
-Date:   Tue Mar 4 20:31:13 2008 +0100
+commit 445815d7ea4f59baf103f28b45f7dd45f21ff75d
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Mar 9 22:42:32 2008 +0100
 
-    b43legacy: Fix module init message
+    rt2x00: Add new D-Link USB ID
     
-    This fixes the module init message to tell that the legacy
-    driver loaded. This makes it less confusing, in case both drivers are loaded.
-    
-    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit cdb2a9fe63575dd1eb82b724bbd0aa5e0dd89fa0
-Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
-Date:   Tue Mar 4 20:05:27 2008 +0200
+commit fbb0a27a8ad56f822f479ee85446d9c29483a3d1
+Author: Adam Baker <linux at baker-net.org.uk>
+Date:   Sun Mar 9 22:40:40 2008 +0100
 
-    rndis_wlan: fix broken data copy
+    rt2x00: never disable multicast because it disables broadcast too
     
-    Replace broken code that attempted to copy 6 byte array to 64-bit
-    integer. Due to missing cast to 64-bit integer, left shift operation
-    were 32-bit and lead to bytes been copied over each other. New code
-    uses simple memcpy, for greater readability and efficiency.
+    On rt73 and rt61 disabling reception of multicast packets also disables
+    broadcast traffic which we never want to do. Therefore we should never
+    disable multicast.
     
-    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
+    Signed-off-by: Adam Baker <linux at baker-net.org.uk>
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8a96df80b3ddb2410045a26ea19eeccb5f2d2d11
+commit 5f0547c2813d4677908fa6de02f9911d25996515
 Author: Sebastian Siewior <bigeasy at tglx.de>
-Date:   Tue Mar 4 18:22:27 2008 +0100
-
-    libertas: compare the current command with response
-    
-    instead of with itself.
-    
-    Signed-off-by: Sebastian Siewior <bigeasy at linutronix.de>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 6305f498604df6c66bdb4cc533ce6332fa5ab61f
-Author: David Woodhouse <dwmw2 at infradead.org>
-Date:   Mon Mar 3 12:20:12 2008 +0100
+Date:   Thu Mar 6 10:30:21 2008 +0100
 
-    libertas: fix sanity check on sequence number in command response
+    libertas: fix the 'compare command with itself' properly
     
-    Slightly more useful if we compare it against the sequence number of the
-    command we have outstanding, rather than comparing the reply with itself.
+    |libertas: Invalid CMD_RESP 8012 to command 50!
     
-    Doh. Pointed out by Sebastian Siewior
+    The special case got mixed up in 8a96df80b3.
     
-    Signed-off-by: David Woodhouse <dwmw2 at infradead.org>
-    Acked-by: Dan Williams <dcbw at redhat.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit c2f2d3a06f8b628d444cf4f396d6c6ddd47e1d1f
-Author: Johannes Berg <johannes at sipsolutions.net>
-Date:   Fri Feb 29 23:28:25 2008 +0100
-
-    p54: fix eeprom parser length sanity checks
-    
-    When I called p54_parse_eeprom() on a hand-coded structure
-    I managed to make a small mistake with wrap->len which caused
-    a segfault a few lines down when trying to read entry->len.
-    This patch changes the validation code to avoid such problems.
-    
-    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
-    Tested-by: Florian Fainelli <florian.fainelli at telecomint.eu>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 8c28293f5514f64ba064bac7946aebeda4a663c6
-Author: Johannes Berg <johannes at sipsolutions.net>
-Date:   Fri Feb 29 13:56:33 2008 +0100
-
-    p54: fix EEPROM structure endianness
-    
-    Since the EEPROM structure is read from hardware, it is
-    always little endian, annotate that in the struct and
-    make sure to convert where applicable.
-    
-    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
-    Cc: Michael Wu <flamingice at sourmilk.net>
-    Tested-by: Florian Fainelli <florian.fainelli at telecomint.eu>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit dc63644b0ee3b447e879ef8e124657b40e9ea81c
-Author: Yoichi Yuasa <yoichi_yuasa at tripeaks.co.jp>
-Date:   Fri Feb 29 11:09:31 2008 +0100
-
-    ssb: Add pcibios_enable_device() return value check
-    
-    This patch has added pcibios_enable_device() return value check.
-    
-    Signed-off-by: Yoichi Yuasa <yoichi_yuasa at tripeaks.co.jp>
-    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: Sebastian Siewior <bigeasy at linutronix.de>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 1d60ab0574fae362b1cca0ef52181ef75fd46832
-Author: Stefano Brivio <stefano.brivio at polimi.it>
-Date:   Sun Mar 2 11:33:10 2008 +0100
-
-    rc80211-pid: fix rate adjustment
-    
-    Merge rate_control_pid_shift_adjust() to rate_control_pid_adjust_rate()
-    in order to make the learning algorithm aware of constraints on rates. Also
-    add some comments and rename variables.
-    
-    This fixes a bug which prevented 802.11b/g non-AP STAs from working with
-    802.11b only AP STAs.
-    
-    This patch was originally destined for 2.6.26, and is being backported
-    to fix a user reported problem in post-2.6.24 kernels.
+commit 97ed83905e5f8547a94a8066441351c6920728a1
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Thu Mar 6 13:08:09 2008 -0500
+
+    drivers/net/Kconfig: fix whitespace for GELIC_WIRELESS entry
     
-    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-diff -up linux-2.6.24.noarch/net/mac80211/rc80211_pid_algo.c.orig linux-2.6.24.noarch/net/mac80211/rc80211_pid_algo.c
---- linux-2.6.24.noarch/net/mac80211/rc80211_pid_algo.c.orig	2008-03-04 19:28:35.000000000 -0500
-+++ linux-2.6.24.noarch/net/mac80211/rc80211_pid_algo.c	2008-03-04 19:30:56.000000000 -0500
-@@ -2,7 +2,7 @@
-  * Copyright 2002-2005, Instant802 Networks, Inc.
-  * Copyright 2005, Devicescape Software, Inc.
-  * Copyright 2007, Mattias Nissler <mattias.nissler at gmx.de>
-- * Copyright 2007, Stefano Brivio <stefano.brivio at polimi.it>
-+ * Copyright 2007-2008, Stefano Brivio <stefano.brivio at polimi.it>
-  *
-  * This program is free software; you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License version 2 as
-@@ -63,72 +63,66 @@
-  * RC_PID_ARITH_SHIFT.
-  */
- 
--
--/* Shift the adjustment so that we won't switch to a lower rate if it exhibited
-- * a worse failed frames behaviour and we'll choose the highest rate whose
-- * failed frames behaviour is not worse than the one of the original rate
-- * target. While at it, check that the adjustment is within the ranges. Then,
-- * provide the new rate index. */
--static int rate_control_pid_shift_adjust(struct rc_pid_rateinfo *r,
--					 int adj, int cur, int l)
--{
--	int i, j, k, tmp;
--
--	j = r[cur].rev_index;
--	i = j + adj;
--
--	if (i < 0)
--		return r[0].index;
--	if (i >= l - 1)
--		return r[l - 1].index;
--
--	tmp = i;
--
--	if (adj < 0) {
--		for (k = j; k >= i; k--)
--			if (r[k].diff <= r[j].diff)
--				tmp = k;
--	} else {
--		for (k = i + 1; k + i < l; k++)
--			if (r[k].diff <= r[i].diff)
--				tmp = k;
--	}
--
--	return r[tmp].index;
--}
--
-+/* Adjust the rate while ensuring that we won't switch to a lower rate if it
-+ * exhibited a worse failed frames behaviour and we'll choose the highest rate
-+ * whose failed frames behaviour is not worse than the one of the original rate
-+ * target. While at it, check that the new rate is valid. */
- static void rate_control_pid_adjust_rate(struct ieee80211_local *local,
- 					 struct sta_info *sta, int adj,
- 					 struct rc_pid_rateinfo *rinfo)
- {
- 	struct ieee80211_sub_if_data *sdata;
- 	struct ieee80211_hw_mode *mode;
--	int newidx;
--	int maxrate;
--	int back = (adj > 0) ? 1 : -1;
-+	int cur_sorted, new_sorted, probe, tmp, n_bitrates;
-+	int cur = sta->txrate;
- 
- 	sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev);
- 
- 	mode = local->oper_hw_mode;
--	maxrate = sdata->bss ? sdata->bss->max_ratectrl_rateidx : -1;
-+	n_bitrates = mode->num_rates;
- 
--	newidx = rate_control_pid_shift_adjust(rinfo, adj, sta->txrate,
--					       mode->num_rates);
-+	/* Map passed arguments to sorted values. */
-+	cur_sorted = rinfo[cur].rev_index;
-+	new_sorted = cur_sorted + adj;
-+
-+	/* Check limits. */
-+	if (new_sorted < 0)
-+		new_sorted = rinfo[0].rev_index;
-+	else if (new_sorted >= n_bitrates)
-+		new_sorted = rinfo[n_bitrates - 1].rev_index;
- 
--	while (newidx != sta->txrate) {
--		if (rate_supported(sta, mode, newidx) &&
--		    (maxrate < 0 || newidx <= maxrate)) {
--			sta->txrate = newidx;
--			break;
--		}
-+	tmp = new_sorted;
- 
--		newidx += back;
-+	if (adj < 0) {
-+		/* Ensure that the rate decrease isn't disadvantageous. */
-+		for (probe = cur_sorted; probe >= new_sorted; probe--)
-+			if (rinfo[probe].diff <= rinfo[cur_sorted].diff &&
-+			    rate_supported(sta, mode, rinfo[probe].index))
-+				tmp = probe;
-+	} else {
-+		/* Look for rate increase with zero (or below) cost. */
-+		for (probe = new_sorted + 1; probe < n_bitrates; probe++)
-+			if (rinfo[probe].diff <= rinfo[new_sorted].diff &&
-+			    rate_supported(sta, mode, rinfo[probe].index))
-+				tmp = probe;
- 	}
- 
-+	/* Fit the rate found to the nearest supported rate. */
-+	do {
-+		if (rate_supported(sta, mode, rinfo[tmp].index)) {
-+			sta->txrate = rinfo[tmp].index;
-+			break;
-+		}
-+		if (adj < 0)
-+			tmp--;
-+		else
-+			tmp++;
-+	} while (tmp < n_bitrates && tmp >= 0);
-+
- #ifdef CONFIG_MAC80211_DEBUGFS
- 	rate_control_pid_event_rate_change(
- 		&((struct rc_pid_sta_info *)sta->rate_ctrl_priv)->events,
--		newidx, mode->rates[newidx].rate);
-+		cur, mode->rates[cur].rate);
- #endif
- }
- 
-diff -up linux-2.6.24.noarch/drivers/net/wireless/p54common.h.orig linux-2.6.24.noarch/drivers/net/wireless/p54common.h
---- linux-2.6.24.noarch/drivers/net/wireless/p54common.h.orig	2008-01-24 17:58:37.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/p54common.h	2008-03-04 19:30:56.000000000 -0500
-@@ -53,10 +53,10 @@ struct pda_entry {
- } __attribute__ ((packed));
- 
- struct eeprom_pda_wrap {
--	u32 magic;
--	u16 pad;
--	u16 len;
--	u32 arm_opcode;
-+	__le32 magic;
-+	__le16 pad;
-+	__le16 len;
-+	__le32 arm_opcode;
- 	u8 data[0];
- } __attribute__ ((packed));
- 
-diff -up linux-2.6.24.noarch/drivers/net/wireless/p54common.c.orig linux-2.6.24.noarch/drivers/net/wireless/p54common.c
---- linux-2.6.24.noarch/drivers/net/wireless/p54common.c.orig	2008-03-04 19:28:31.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/p54common.c	2008-03-04 19:30:56.000000000 -0500
-@@ -166,18 +166,23 @@ int p54_parse_eeprom(struct ieee80211_hw
- 	struct p54_common *priv = dev->priv;
- 	struct eeprom_pda_wrap *wrap = NULL;
- 	struct pda_entry *entry;
--	int i = 0;
- 	unsigned int data_len, entry_len;
- 	void *tmp;
- 	int err;
-+	u8 *end = (u8 *)eeprom + len;
- 
- 	wrap = (struct eeprom_pda_wrap *) eeprom;
--	entry = (void *)wrap->data + wrap->len;
--	i += 2;
--	i += le16_to_cpu(entry->len)*2;
--	while (i < len) {
-+	entry = (void *)wrap->data + le16_to_cpu(wrap->len);
-+
-+	/* verify that at least the entry length/code fits */
-+	while ((u8 *)entry <= end - sizeof(*entry)) {
- 		entry_len = le16_to_cpu(entry->len);
- 		data_len = ((entry_len - 1) << 1);
-+
-+		/* abort if entry exceeds whole structure */
-+		if ((u8 *)entry + sizeof(*entry) + data_len > end)
-+			break;
-+
- 		switch (le16_to_cpu(entry->code)) {
- 		case PDR_MAC_ADDRESS:
- 			SET_IEEE80211_PERM_ADDR(dev, entry->data);
-@@ -249,13 +254,12 @@ int p54_parse_eeprom(struct ieee80211_hw
- 			priv->version = *(u8 *)(entry->data + 1);
- 			break;
- 		case PDR_END:
--			i = len;
-+			/* make it overrun */
-+			entry_len = len;
- 			break;
- 		}
- 
- 		entry = (void *)entry + (entry_len + 1)*2;
--		i += 2;
--		i += entry_len*2;
- 	}
- 
- 	if (!priv->iq_autocal || !priv->output_limit || !priv->curve_data) {
-diff -up linux-2.6.24.noarch/drivers/net/wireless/b43legacy/main.c.orig linux-2.6.24.noarch/drivers/net/wireless/b43legacy/main.c
---- linux-2.6.24.noarch/drivers/net/wireless/b43legacy/main.c.orig	2008-03-04 19:28:31.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/b43legacy/main.c	2008-03-04 19:30:56.000000000 -0500
-@@ -3829,7 +3829,7 @@ static void b43legacy_print_driverinfo(v
- #ifdef CONFIG_B43LEGACY_DMA
- 	feat_dma = "D";
- #endif
--	printk(KERN_INFO "Broadcom 43xx driver loaded "
-+	printk(KERN_INFO "Broadcom 43xx-legacy driver loaded "
- 	       "[ Features: %s%s%s%s%s, Firmware-ID: "
- 	       B43legacy_SUPPORTED_FIRMWARE_ID " ]\n",
- 	       feat_pci, feat_leds, feat_rfkill, feat_pio, feat_dma);
-diff -up linux-2.6.24.noarch/drivers/net/wireless/rndis_wlan.c.orig linux-2.6.24.noarch/drivers/net/wireless/rndis_wlan.c
---- linux-2.6.24.noarch/drivers/net/wireless/rndis_wlan.c.orig	2008-03-04 19:28:37.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/rndis_wlan.c	2008-03-04 19:30:56.000000000 -0500
-@@ -260,7 +260,7 @@ struct NDIS_802_11_KEY {
- 	__le32 KeyLength;
- 	u8 Bssid[6];
- 	u8 Padding[6];
--	__le64 KeyRSC;
-+	u8 KeyRSC[8];
- 	u8 KeyMaterial[32];
- } __attribute__((packed));
- 
-@@ -1508,7 +1508,7 @@ static int rndis_iw_set_encode_ext(struc
- 	struct usbnet *usbdev = dev->priv;
- 	struct rndis_wext_private *priv = get_rndis_wext_priv(usbdev);
- 	struct NDIS_802_11_KEY ndis_key;
--	int i, keyidx, ret;
-+	int keyidx, ret;
- 	u8 *addr;
- 
- 	keyidx = wrqu->encoding.flags & IW_ENCODE_INDEX;
-@@ -1543,9 +1543,7 @@ static int rndis_iw_set_encode_ext(struc
- 	ndis_key.KeyIndex = cpu_to_le32(keyidx);
- 
- 	if (ext->ext_flags & IW_ENCODE_EXT_RX_SEQ_VALID) {
--		for (i = 0; i < 6; i++)
--			ndis_key.KeyRSC |=
--				cpu_to_le64(ext->rx_seq[i] << (i * 8));
-+		memcpy(ndis_key.KeyRSC, ext->rx_seq, 6);
- 		ndis_key.KeyIndex |= cpu_to_le32(1 << 29);
- 	}
+diff -up linux-2.6.24.noarch/drivers/net/Kconfig.orig linux-2.6.24.noarch/drivers/net/Kconfig
+--- linux-2.6.24.noarch/drivers/net/Kconfig.orig	2008-03-11 16:02:59.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/Kconfig	2008-03-11 16:33:00.000000000 -0400
+@@ -2377,15 +2377,15 @@ config GELIC_NET
+ 	  module will be called ps3_gelic.
+ 
+ config GELIC_WIRELESS
+-       bool "PS3 Wireless support"
+-       depends on GELIC_NET
+-       select WIRELESS_EXT
+-       help
+-        This option adds the support for the wireless feature of PS3.
+-        If you have the wireless-less model of PS3 or have no plan to
+-        use wireless feature, disabling this option saves memory.  As
+-        the driver automatically distinguishes the models, you can
+-        safely enable this option even if you have a wireless-less model.
++	bool "PS3 Wireless support"
++	depends on GELIC_NET
++	select WIRELESS_EXT
++	help
++	  This option adds the support for the wireless feature of PS3.
++	  If you have the wireless-less model of PS3 or have no plan to
++	  use wireless feature, disabling this option saves memory.  As
++	  the driver automatically distinguishes the models, you can
++	  safely enable this option even if you have a wireless-less model.
  
+ config GIANFAR
+ 	tristate "Gianfar Ethernet"
 diff -up linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c.orig linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c
---- linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c.orig	2008-03-04 19:28:31.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c	2008-03-04 19:30:56.000000000 -0500
-@@ -562,9 +562,7 @@ int lbs_process_rx_command(struct lbs_pr
+--- linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c.orig	2008-03-11 16:02:34.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c	2008-03-11 16:33:00.000000000 -0400
+@@ -578,7 +578,7 @@ int lbs_process_rx_command(struct lbs_pr
+ 		goto done;
  	}
- 
- 	resp = (void *)priv->upld_buf;
--
--	curcmd = le16_to_cpu(resp->command);
--
-+	curcmd = le16_to_cpu(priv->cur_cmd->cmdbuf->command);
- 	respcmd = le16_to_cpu(resp->command);
- 	result = le16_to_cpu(resp->result);
- 
-@@ -572,9 +570,9 @@ int lbs_process_rx_command(struct lbs_pr
- 		     respcmd, le16_to_cpu(resp->seqnum), priv->upld_len, jiffies);
- 	lbs_deb_hex(LBS_DEB_HOST, "CMD_RESP", (void *) resp, priv->upld_len);
- 
--	if (resp->seqnum != resp->seqnum) {
-+	if (resp->seqnum != priv->cur_cmd->cmdbuf->seqnum) {
- 		lbs_pr_info("Received CMD_RESP with invalid sequence %d (expected %d)\n",
--			    le16_to_cpu(resp->seqnum), le16_to_cpu(resp->seqnum));
-+			    le16_to_cpu(resp->seqnum), le16_to_cpu(priv->cur_cmd->cmdbuf->seqnum));
+ 	if (respcmd != CMD_RET(curcmd) &&
+-	    respcmd != CMD_802_11_ASSOCIATE && curcmd != CMD_RET_802_11_ASSOCIATE) {
++	    respcmd != CMD_RET_802_11_ASSOCIATE && curcmd != CMD_802_11_ASSOCIATE) {
+ 		lbs_pr_info("Invalid CMD_RESP %x to command %x!\n", respcmd, curcmd);
  		spin_unlock_irqrestore(&priv->driver_lock, flags);
  		ret = -1;
- 		goto done;
-diff -up linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c.orig linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c
---- linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c.orig	2008-03-04 19:28:37.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c	2008-03-04 19:30:56.000000000 -0500
-@@ -111,7 +111,10 @@ static void __init ssb_fixup_pcibridge(s
- 
- 	/* Enable PCI bridge bus mastering and memory space */
- 	pci_set_master(dev);
--	pcibios_enable_device(dev, ~0);
-+	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);
+diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt61pci.c
+--- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig	2008-03-11 16:02:35.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt61pci.c	2008-03-11 16:33:00.000000000 -0400
+@@ -2302,9 +2302,9 @@ static void rt61pci_configure_filter(str
+ 	 * Apply some rules to the filters:
+ 	 * - Some filters imply different filters to be set.
+ 	 * - Some things we can't filter out at all.
++	 * - Multicast filter seems to kill broadcast traffic so never use it.
+ 	 */
+-	if (mc_count)
+-		*total_flags |= FIF_ALLMULTI;
++	*total_flags |= FIF_ALLMULTI;
+ 	if (*total_flags & FIF_OTHER_BSS ||
+ 	    *total_flags & FIF_PROMISC_IN_BSS)
+ 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
+diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c
+--- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig	2008-03-11 16:02:35.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c	2008-03-11 16:33:00.000000000 -0400
+@@ -1869,9 +1869,9 @@ static void rt73usb_configure_filter(str
+ 	 * Apply some rules to the filters:
+ 	 * - Some filters imply different filters to be set.
+ 	 * - Some things we can't filter out at all.
++	 * - Multicast filter seems to kill broadcast traffic so never use it.
+ 	 */
+-	if (mc_count)
+-		*total_flags |= FIF_ALLMULTI;
++	*total_flags |= FIF_ALLMULTI;
+ 	if (*total_flags & FIF_OTHER_BSS ||
+ 	    *total_flags & FIF_PROMISC_IN_BSS)
+ 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
+@@ -2098,6 +2098,7 @@ static struct usb_device_id rt73usb_devi
+ 	/* D-Link */
+ 	{ USB_DEVICE(0x07d1, 0x3c03), USB_DEVICE_DATA(&rt73usb_ops) },
+ 	{ USB_DEVICE(0x07d1, 0x3c04), USB_DEVICE_DATA(&rt73usb_ops) },
++	{ USB_DEVICE(0x07d1, 0x3c07), USB_DEVICE_DATA(&rt73usb_ops) },
+ 	/* Gemtek */
+ 	{ USB_DEVICE(0x15a9, 0x0004), USB_DEVICE_DATA(&rt73usb_ops) },
+ 	/* Gigabyte */




More information about the fedora-extras-commits mailing list