rpms/kernel/F-7 git-wireless-dev.patch, 1.19, 1.20 kernel-2.6.spec, 1.3305, 1.3306 linux-2.6-mac80211-local-mcast-filter.patch, 1.1, 1.2
John W. Linville (linville)
fedora-extras-commits at redhat.com
Tue Aug 7 00:16:30 UTC 2007
- Previous message (by thread): rpms/kernel/devel linux-2.6-mac80211-probe-hidden-essid.patch, NONE, 1.1 git-wireless-dev.patch, 1.27, 1.28 kernel.spec, 1.55, 1.56 linux-2.6-mac80211-local-mcast-filter.patch, 1.1, 1.2
- Next message (by thread): rpms/fonts-korean/devel fonts-korean.spec,1.17,1.18
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: linville
Update of /cvs/pkgs/rpms/kernel/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv798
Modified Files:
git-wireless-dev.patch kernel-2.6.spec
linux-2.6-mac80211-local-mcast-filter.patch
Log Message:
wireless updates (bcm43xx & zd1211rw)
git-wireless-dev.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.19 -r 1.20 git-wireless-dev.patch
Index: git-wireless-dev.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/git-wireless-dev.patch,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- git-wireless-dev.patch 3 Aug 2007 02:01:08 -0000 1.19
+++ git-wireless-dev.patch 7 Aug 2007 00:16:26 -0000 1.20
@@ -1,5 +1,5 @@
---- linux-2.6.22.noarch/CREDITS.orig 2007-08-02 21:48:51.000000000 -0400
-+++ linux-2.6.22.noarch/CREDITS 2007-08-02 21:49:05.000000000 -0400
+--- linux-2.6.22.noarch/CREDITS.orig 2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/CREDITS 2007-08-06 20:01:53.000000000 -0400
@@ -665,6 +665,11 @@ D: Minor updates to SCSI types, added /p
S: (ask for current address)
S: USA
@@ -66,8 +66,8 @@
N: Lars Wirzenius
E: liw at iki.fi
D: Linux System Administrator's Guide, author, former maintainer
---- linux-2.6.22.noarch/include/linux/nl80211.h.orig 2007-08-02 21:48:51.000000000 -0400
-+++ linux-2.6.22.noarch/include/linux/nl80211.h 2007-08-02 21:49:05.000000000 -0400
+--- linux-2.6.22.noarch/include/linux/nl80211.h.orig 2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/nl80211.h 2007-08-06 20:01:53.000000000 -0400
@@ -7,6 +7,201 @@
*/
@@ -327,8 +327,8 @@
+#define NL80211_KEYTYPE_MAX (__NL80211_KEYTYPE_AFTER_LAST - 1)
+
#endif /* __LINUX_NL80211_H */
---- linux-2.6.22.noarch/include/linux/ieee80211.h.orig 2007-08-02 21:48:51.000000000 -0400
-+++ linux-2.6.22.noarch/include/linux/ieee80211.h 2007-08-02 21:49:05.000000000 -0400
+--- linux-2.6.22.noarch/include/linux/ieee80211.h.orig 2007-08-06 20:01:05.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/ieee80211.h 2007-08-06 20:01:53.000000000 -0400
@@ -106,6 +106,75 @@ struct ieee80211_hdr {
} __attribute__ ((packed));
@@ -627,8 +627,8 @@
+};
+
#endif /* IEEE80211_H */
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_chipcommon.h 2007-08-02 21:49:05.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_chipcommon.h 2007-08-06 20:01:53.000000000 -0400
@@ -0,0 +1,390 @@
+#ifndef LINUX_SSB_CHIPCO_H_
+#define LINUX_SSB_CHIPCO_H_
@@ -1020,9 +1020,9 @@
+#endif /* CONFIG_SSB_SERIAL */
+
+#endif /* LINUX_SSB_CHIPCO_H_ */
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_extif.h 2007-08-02 21:49:05.000000000 -0400
-@@ -0,0 +1,160 @@
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_extif.h 2007-08-06 20:02:18.000000000 -0400
+@@ -0,0 +1,198 @@
+/*
+ * Hardware-specific External Interface I/O core definitions
+ * for the BCM47xx family of SiliconBackplane-based chips.
@@ -1045,10 +1045,6 @@
+#ifndef LINUX_SSB_EXTIFCORE_H_
+#define LINUX_SSB_EXTIFCORE_H_
+
-+struct ssb_extif {
-+ struct ssb_device *dev;
-+};
-+
+/* external interface address space */
+#define SSB_EXTIF_PCMCIA_MEMBASE(x) (x)
+#define SSB_EXTIF_PCMCIA_IOBASE(x) ((x) + 0x100000)
@@ -1182,10 +1178,52 @@
+#define SSB_EXTIF_WATCHDOG_CLK 48000000 /* Hz */
+
+
++
++#ifdef CONFIG_SSB_DRIVER_EXTIF
++
++struct ssb_extif {
++ struct ssb_device *dev;
++};
++
++static inline bool ssb_extif_available(struct ssb_extif *extif)
++{
++ return (extif->dev != NULL);
++}
++
++extern void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
++ u32 *plltype, u32 *n, u32 *m);
++
++extern void ssb_extif_timing_init(struct ssb_extif *extif,
++ unsigned long ns);
++
++#ifdef CONFIG_SSB_SERIAL
++extern int ssb_extif_serial_init(struct ssb_extif *extif,
++ struct ssb_serial_port *ports);
++#endif /* CONFIG_SSB_SERIAL */
++
++
++#else /* CONFIG_SSB_DRIVER_EXTIF */
++/* extif disabled */
++
++struct ssb_extif {
++};
++
++static inline bool ssb_extif_available(struct ssb_extif *extif)
++{
++ return 0;
++}
++
++static inline
++void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
++ u32 *plltype, u32 *n, u32 *m)
++{
++}
++
++#endif /* CONFIG_SSB_DRIVER_EXTIF */
+#endif /* LINUX_SSB_EXTIFCORE_H_ */
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_mips.h 2007-08-02 21:49:05.000000000 -0400
-@@ -0,0 +1,44 @@
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_mips.h 2007-08-06 20:02:18.000000000 -0400
+@@ -0,0 +1,46 @@
+#ifndef LINUX_SSB_MIPSCORE_H_
+#define LINUX_SSB_MIPSCORE_H_
+
@@ -1208,11 +1246,13 @@
+ int nr_serial_ports;
+ struct ssb_serial_port serial_ports[4];
+
++ u8 flash_buswidth;
+ u32 flash_window;
+ u32 flash_window_size;
+};
+
+extern void ssb_mipscore_init(struct ssb_mipscore *mcore);
++extern u32 ssb_cpu_clock(struct ssb_mipscore *mcore);
+
+extern unsigned int ssb_mips_irq(struct ssb_device *dev);
+
@@ -1230,8 +1270,8 @@
+#endif /* CONFIG_SSB_DRIVER_MIPS */
+
+#endif /* LINUX_SSB_MIPSCORE_H_ */
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_regs.h 2007-08-02 21:49:05.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_regs.h 2007-08-06 20:01:53.000000000 -0400
@@ -0,0 +1,292 @@
+#ifndef LINUX_SSB_REGS_H_
+#define LINUX_SSB_REGS_H_
@@ -1525,8 +1565,8 @@
+
+
+#endif /* LINUX_SSB_REGS_H_ */
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_pci.h 2007-08-02 21:49:05.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_pci.h 2007-08-06 20:01:53.000000000 -0400
@@ -0,0 +1,106 @@
+#ifndef LINUX_SSB_PCICORE_H_
+#define LINUX_SSB_PCICORE_H_
@@ -1634,8 +1674,8 @@
+
+#endif /* CONFIG_SSB_DRIVER_PCICORE */
+#endif /* LINUX_SSB_PCICORE_H_ */
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb.h 2007-08-02 21:49:05.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb.h 2007-08-06 20:01:53.000000000 -0400
@@ -0,0 +1,432 @@
+#ifndef LINUX_SSB_H_
+#define LINUX_SSB_H_
@@ -2069,8 +2109,8 @@
+
+
+#endif /* LINUX_SSB_H_ */
---- linux-2.6.22.noarch/include/net/cfg80211.h.orig 2007-08-02 21:48:52.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/cfg80211.h 2007-08-02 21:49:05.000000000 -0400
+--- linux-2.6.22.noarch/include/net/cfg80211.h.orig 2007-08-06 20:01:05.000000000 -0400
++++ linux-2.6.22.noarch/include/net/cfg80211.h 2007-08-06 20:01:53.000000000 -0400
@@ -3,6 +3,7 @@
#include <linux/netlink.h>
@@ -2213,8 +2253,8 @@
+ u32 seq, int flags, u8 cmd);
+
#endif /* __NET_CFG80211_H */
---- linux-2.6.22.noarch/include/net/mac80211.h.orig 2007-08-02 21:48:52.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/mac80211.h 2007-08-02 21:49:05.000000000 -0400
+--- linux-2.6.22.noarch/include/net/mac80211.h.orig 2007-08-06 20:01:05.000000000 -0400
++++ linux-2.6.22.noarch/include/net/mac80211.h 2007-08-06 20:01:53.000000000 -0400
@@ -300,7 +300,6 @@ struct ieee80211_conf {
/* Following five fields are used for IEEE 802.11H */
unsigned int radar_detect;
@@ -2385,8 +2425,8 @@
size_t frame_len,
[...2426 lines suppressed...]
-+//TODO
-+#if 0
-+ if (have EXTIF) {
-+ /* Initialize extif so we can get to the LEDs and external UART */
-+ W_REG(&eir->prog_config, CF_EN);
-+
-+ /* Set timing for the flash */
-+ tmp = CEIL(10, ns) << FW_W3_SHIFT; /* W3 = 10nS */
-+ tmp = tmp | (CEIL(40, ns) << FW_W1_SHIFT); /* W1 = 40nS */
-+ tmp = tmp | CEIL(120, ns); /* W0 = 120nS */
-+ W_REG(&eir->prog_waitcount, tmp); /* 0x01020a0c for a 100Mhz clock */
-+
-+ /* Set programmable interface timing for external uart */
-+ tmp = CEIL(10, ns) << FW_W3_SHIFT; /* W3 = 10nS */
-+ tmp = tmp | (CEIL(20, ns) << FW_W2_SHIFT); /* W2 = 20nS */
-+ tmp = tmp | (CEIL(100, ns) << FW_W1_SHIFT); /* W1 = 100nS */
-+ tmp = tmp | CEIL(120, ns); /* W0 = 120nS */
-+ W_REG(&eir->prog_waitcount, tmp);
-+ }
-+#endif
-+ if (bus->chipco.dev)
++ if (bus->extif.dev)
++ ssb_extif_timing_init(&bus->extif, ns);
++ else if (bus->chipco.dev)
+ ssb_chipco_timing_init(&bus->chipco, ns);
+
+ /* Assign IRQs to all cores on the bus, start with irq line 2, because serial usually takes 1 */
@@ -89943,8 +90076,8 @@
+ ssb_mips_serial_init(mcore);
+ ssb_mips_flash_detect(mcore);
+}
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/ssb_private.h 2007-08-02 21:49:06.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/drivers/ssb/ssb_private.h 2007-08-06 20:01:55.000000000 -0400
@@ -0,0 +1,122 @@
+#ifndef LINUX_SSB_PRIVATE_H_
+#define LINUX_SSB_PRIVATE_H_
@@ -90068,8 +90201,8 @@
+extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
+
+#endif /* LINUX_SSB_PRIVATE_H_ */
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/pci.c 2007-08-02 21:49:06.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/drivers/ssb/pci.c 2007-08-06 20:01:55.000000000 -0400
@@ -0,0 +1,704 @@
+/*
+ * Sonics Silicon Backplane PCI-Hostbus related functions.
@@ -90775,8 +90908,8 @@
+out:
+ return err;
+}
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_chipcommon.c 2007-08-02 21:49:06.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/drivers/ssb/driver_chipcommon.c 2007-08-06 20:01:55.000000000 -0400
@@ -0,0 +1,425 @@
+/*
+ * Sonics Silicon Backplane
@@ -91203,8 +91336,8 @@
+ return nr_ports;
+}
+#endif /* CONFIG_SSB_SERIAL */
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/Kconfig 2007-08-02 21:49:06.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/drivers/ssb/Kconfig 2007-08-06 20:01:55.000000000 -0400
@@ -0,0 +1,92 @@
+menu "Sonics Silicon Backplane"
+
@@ -91298,8 +91431,8 @@
+ If unsure, say N
+
+endmenu
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/scan.c 2007-08-02 21:49:06.000000000 -0400
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/drivers/ssb/scan.c 2007-08-06 20:01:55.000000000 -0400
@@ -0,0 +1,413 @@
+/*
+ * Sonics Silicon Backplane
@@ -91714,8 +91847,115 @@
+ ssb_iounmap(bus);
+ goto out;
+}
---- /dev/null 2007-08-02 20:42:22.790812760 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_pcicore.c 2007-08-02 21:49:06.000000000 -0400
+--- linux-2.6.22.noarch/drivers/ssb/driver_extif.c.orig 2007-08-06 20:03:45.000000000 -0400
++++ linux-2.6.22.noarch/drivers/ssb/driver_extif.c 2007-08-06 20:02:18.000000000 -0400
+@@ -0,0 +1,104 @@
++/*
++ * Sonics Silicon Backplane
++ * Broadcom EXTIF core driver
++ *
++ * Copyright 2005, Broadcom Corporation
++ * Copyright 2006, 2007, Michael Buesch <mb at bu3sch.de>
++ * Copyright 2006, 2007, Felix Fietkau <nbd at openwrt.org>
++ * Copyright 2007, Aurelien Jarno <aurelien at aurel32.net>
++ *
++ * Licensed under the GNU/GPL. See COPYING for details.
++ */
++
++#include <linux/serial.h>
++#include <linux/serial_core.h>
++#include <linux/serial_reg.h>
++
++#include "ssb_private.h"
++
++
++static inline u32 extif_read32(struct ssb_extif *extif, u16 offset)
++{
++ return ssb_read32(extif->dev, offset);
++}
++
++static inline void extif_write32(struct ssb_extif *extif, u16 offset, u32 value)
++{
++ ssb_write32(extif->dev, offset, value);
++}
++
++#ifdef CONFIG_SSB_SERIAL
++static bool serial_exists(u8 *regs)
++{
++ u8 save_mcr, msr = 0;
++
++ if (regs) {
++ save_mcr = regs[UART_MCR];
++ regs[UART_MCR] = (UART_MCR_LOOP | UART_MCR_OUT2 | UART_MCR_RTS);
++ msr = regs[UART_MSR] & (UART_MSR_DCD | UART_MSR_RI
++ | UART_MSR_CTS | UART_MSR_DSR);
++ regs[UART_MCR] = save_mcr;
++ }
++ return (msr == (UART_MSR_DCD | UART_MSR_CTS));
++}
++
++int ssb_extif_serial_init(struct ssb_extif *extif, struct ssb_serial_port *ports)
++{
++ u32 i, nr_ports = 0;
++
++ /* Disable GPIO interrupt initially */
++ extif_write32(extif, SSB_EXTIF_GPIO_INTPOL, 0);
++ extif_write32(extif, SSB_EXTIF_GPIO_INTMASK, 0);
++
++ for (i = 0; i < 2; i++) {
++ void __iomem *uart_regs;
++
++ uart_regs = ioremap_nocache(SSB_EUART, 16);
++ if (uart_regs) {
++ uart_regs += (i * 8);
++
++ if (serial_exists(uart_regs) && ports) {
++ extif_write32(extif, SSB_EXTIF_GPIO_INTMASK, 2);
++
++ nr_ports++;
++ ports[i].regs = uart_regs;
++ ports[i].irq = 2;
++ ports[i].baud_base = 13500000;
++ ports[i].reg_shift = 0;
++ }
++ iounmap(uart_regs);
++ }
++ }
++ return nr_ports;
++}
++#endif /* CONFIG_SSB_SERIAL */
++
++void ssb_extif_timing_init(struct ssb_extif *extif, unsigned long ns)
++{
++ u32 tmp;
++
++ /* Initialize extif so we can get to the LEDs and external UART */
++ extif_write32(extif, SSB_EXTIF_PROG_CFG, SSB_EXTCFG_EN);
++
++ /* Set timing for the flash */
++ tmp = DIV_ROUND_UP(10, ns) << SSB_PROG_WCNT_3_SHIFT;
++ tmp |= DIV_ROUND_UP(40, ns) << SSB_PROG_WCNT_1_SHIFT;
++ tmp |= DIV_ROUND_UP(120, ns);
++ extif_write32(extif, SSB_EXTIF_PROG_WAITCNT, tmp);
++
++ /* Set programmable interface timing for external uart */
++ tmp = DIV_ROUND_UP(10, ns) << SSB_PROG_WCNT_3_SHIFT;
++ tmp |= DIV_ROUND_UP(20, ns) << SSB_PROG_WCNT_2_SHIFT;
++ tmp |= DIV_ROUND_UP(100, ns) << SSB_PROG_WCNT_1_SHIFT;
++ tmp |= DIV_ROUND_UP(120, ns);
++ extif_write32(extif, SSB_EXTIF_PROG_WAITCNT, tmp);
++}
++
++void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
++ u32 *pll_type, u32 *n, u32 *m)
++{
++ *pll_type = SSB_PLLTYPE_1;
++ *n = extif_read32(extif, SSB_EXTIF_CLOCK_N);
++ *m = extif_read32(extif, SSB_EXTIF_CLOCK_SB);
++}
++
+--- /dev/null 2007-08-06 19:21:45.791015256 -0400
++++ linux-2.6.22.noarch/drivers/ssb/driver_pcicore.c 2007-08-06 20:01:55.000000000 -0400
@@ -0,0 +1,568 @@
+/*
+ * Sonics Silicon Backplane
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3305
retrieving revision 1.3306
diff -u -r1.3305 -r1.3306
--- kernel-2.6.spec 3 Aug 2007 12:58:41 -0000 1.3305
+++ kernel-2.6.spec 7 Aug 2007 00:16:26 -0000 1.3306
@@ -1320,7 +1320,7 @@
# Add the new wireless stack and drivers from wireless-dev
ApplyPatch git-wireless-dev.patch
# mac80211: Filter locally-originated multicast frames echoed by AP
-#ApplyPatch linux-2.6-mac80211-local-mcast-filter.patch
+ApplyPatch linux-2.6-mac80211-local-mcast-filter.patch
# temp compat patch for iwlwifi firmware filenames
ApplyPatch linux-2.6-iwlwifi-fw-name-compat.patch
# avoid bcm3xx vs bcm43xx-mac80211 PCI ID conflicts
@@ -2310,6 +2310,10 @@
%endif
%changelog
+* Mon Aug 06 2007 John W. Linville <linville at redhat.com>
+- Update git-wireless-dev.patch (bcm43xx & zd1211rw updates)
+- mac80211: Filter locally-originated multicast frames echoed by AP (2nd try)
+
* Fri Aug 03 2007 John W. Linville <linville at redhat.com>
- Disable busted mac80211 local multicast filter patch
linux-2.6-mac80211-local-mcast-filter.patch:
Index: linux-2.6-mac80211-local-mcast-filter.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/linux-2.6-mac80211-local-mcast-filter.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-mac80211-local-mcast-filter.patch 3 Aug 2007 02:01:08 -0000 1.1
+++ linux-2.6-mac80211-local-mcast-filter.patch 7 Aug 2007 00:16:26 -0000 1.2
@@ -3,7 +3,7 @@
[PATCH] mac80211: filter locally-originated multicast frames
In STA mode, the AP will echo our traffic. This includes multicast
-traffice.
+traffic.
Receiving these frames confuses some protocols and applications,
notably IPv6 Duplicate Address Detection.
@@ -11,27 +11,23 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
---
- net/mac80211/ieee80211.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
+ net/mac80211/ieee80211.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c
-index a42e70e..6dc6451 100644
+index a42e70e..0097b0a 100644
--- a/net/mac80211/ieee80211.c
+++ b/net/mac80211/ieee80211.c
-@@ -4263,11 +4263,14 @@ void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb,
- rx.u.rx.ra_match = 0;
- } else if (!multicast &&
- compare_ether_addr(sdata->dev->dev_addr,
-- hdr->addr1) != 0) {
-+ hdr->addr1)) {
- if (!sdata->promisc)
- continue;
- rx.u.rx.ra_match = 0;
-- }
-+ } else if (multicast &&
-+ !compare_ether_addr(sdata->dev->dev_addr,
-+ hdr->addr3))
-+ rx.u.rx.ra_match = 0;
- break;
- case IEEE80211_IF_TYPE_IBSS:
- if (!bssid)
+@@ -3030,9 +3030,10 @@ ieee80211_rx_h_data(struct ieee80211_txrx_data *rx)
+ memcpy(dst, hdr->addr1, ETH_ALEN);
+ memcpy(src, hdr->addr3, ETH_ALEN);
+
+- if (sdata->type != IEEE80211_IF_TYPE_STA) {
++ if (sdata->type != IEEE80211_IF_TYPE_STA ||
++ (is_multicast_ether_addr(dst) &&
++ !compare_ether_addr(src, dev->dev_addr)))
+ return TXRX_DROP;
+- }
+ break;
+ case 0:
+ /* DA SA BSSID */
- Previous message (by thread): rpms/kernel/devel linux-2.6-mac80211-probe-hidden-essid.patch, NONE, 1.1 git-wireless-dev.patch, 1.27, 1.28 kernel.spec, 1.55, 1.56 linux-2.6-mac80211-local-mcast-filter.patch, 1.1, 1.2
- Next message (by thread): rpms/fonts-korean/devel fonts-korean.spec,1.17,1.18
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list