diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-07-03 21:03:58 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-07-03 21:03:58 +0000 | 
| commit | 1f9285016a01f115851b9b7f9adb39be52f2b0fa (patch) | |
| tree | 67299745ce250452f86ee898b15e70afedae10d9 | |
| parent | f791c43be808991d05f85ed121fbed5a607f5550 (diff) | |
update to the latest madwifi snapshot
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7864 3c298f89-4303-0410-b956-a3cf2f4a3e73
26 files changed, 337 insertions, 502 deletions
| diff --git a/package/madwifi/Makefile b/package/madwifi/Makefile index 584b96707..5f7e610c9 100644 --- a/package/madwifi/Makefile +++ b/package/madwifi/Makefile @@ -10,14 +10,14 @@ include $(TOPDIR)/rules.mk  include $(INCLUDE_DIR)/kernel.mk  PKG_NAME:=madwifi -PKG_VERSION:=r2420-20070602 +PKG_VERSION:=r2525-20070630  PKG_BRANCH:=madwifi-ng  PKG_RELEASE:=1  PKG_SOURCE:=$(PKG_BRANCH)-$(PKG_VERSION).tar.gz  PKG_SOURCE_URL:=http://snapshots.madwifi.org/$(PKG_BRANCH)  PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BRANCH)-$(PKG_VERSION) -PKG_MD5SUM:=1ba88326b8dc8c231562329fc2e39578 +PKG_MD5SUM:=4e0d01bc448bb1ba070ad34d4d6e1454  include $(INCLUDE_DIR)/package.mk diff --git a/package/madwifi/patches/100-kernel_cflags.patch b/package/madwifi/patches/100-kernel_cflags.patch index 10c728048..b16e89e40 100644 --- a/package/madwifi/patches/100-kernel_cflags.patch +++ b/package/madwifi/patches/100-kernel_cflags.patch @@ -1,7 +1,7 @@ -Index: madwifi-ng-r2420-20070602/hal/public/mips-be-elf.inc +Index: madwifi-ng-r2525-20070630/hal/public/mips-be-elf.inc  =================================================================== ---- madwifi-ng-r2420-20070602.orig/hal/public/mips-be-elf.inc	2007-06-04 13:21:53.676816552 +0200 -+++ madwifi-ng-r2420-20070602/hal/public/mips-be-elf.inc	2007-06-04 13:21:53.760803784 +0200 +--- madwifi-ng-r2525-20070630.orig/hal/public/mips-be-elf.inc	2007-07-03 23:02:26.509700500 +0200 ++++ madwifi-ng-r2525-20070630/hal/public/mips-be-elf.inc	2007-07-03 23:02:26.653709500 +0200  @@ -71,5 +71,5 @@   LDOPTS=	-EB @@ -9,10 +9,10 @@ Index: madwifi-ng-r2420-20070602/hal/public/mips-be-elf.inc  -COPTS+=	-G 0 -EB -mno-abicalls -fno-pic -mips2 -Wa,--trap \  +COPTS+=	-G 0 -mno-abicalls -fno-pic -mips32 -Wa,--trap \   	-fno-strict-aliasing -fno-common -fomit-frame-pointer -mlong-calls -Index: madwifi-ng-r2420-20070602/hal/public/mips-le-elf.inc +Index: madwifi-ng-r2525-20070630/hal/public/mips-le-elf.inc  =================================================================== ---- madwifi-ng-r2420-20070602.orig/hal/public/mips-le-elf.inc	2007-06-04 13:21:53.681815792 +0200 -+++ madwifi-ng-r2420-20070602/hal/public/mips-le-elf.inc	2007-06-04 13:21:53.760803784 +0200 +--- madwifi-ng-r2525-20070630.orig/hal/public/mips-le-elf.inc	2007-07-03 23:02:26.517701000 +0200 ++++ madwifi-ng-r2525-20070630/hal/public/mips-le-elf.inc	2007-07-03 23:02:26.669710500 +0200  @@ -68,5 +68,5 @@   LDOPTS=	-EL @@ -20,10 +20,10 @@ Index: madwifi-ng-r2420-20070602/hal/public/mips-le-elf.inc  -COPTS+=	-G 0 -EL -mno-abicalls -fno-pic -mips2 -Wa,--trap \  +COPTS+=	-G 0 -mno-abicalls -fno-pic -mips32 -Wa,--trap \   	-fno-strict-aliasing -fno-common -fomit-frame-pointer -mlong-calls -Index: madwifi-ng-r2420-20070602/hal/public/xscale-be-elf.inc +Index: madwifi-ng-r2525-20070630/hal/public/xscale-be-elf.inc  =================================================================== ---- madwifi-ng-r2420-20070602.orig/hal/public/xscale-be-elf.inc	2007-06-04 13:21:53.688814728 +0200 -+++ madwifi-ng-r2420-20070602/hal/public/xscale-be-elf.inc	2007-06-04 13:21:53.760803784 +0200 +--- madwifi-ng-r2525-20070630.orig/hal/public/xscale-be-elf.inc	2007-07-03 23:02:26.529701750 +0200 ++++ madwifi-ng-r2525-20070630/hal/public/xscale-be-elf.inc	2007-07-03 23:02:26.705712750 +0200  @@ -77,5 +77,5 @@   LDOPTS=	-EB @@ -31,16 +31,3 @@ Index: madwifi-ng-r2420-20070602/hal/public/xscale-be-elf.inc  -COPTS+= -march=armv4 -mbig-endian -fno-strict-aliasing -fno-common -mapcs-32 \  +COPTS+= -march=armv5te -mbig-endian -fno-strict-aliasing -fno-common  \   	-mtune=xscale  -mshort-load-bytes -Index: madwifi-ng-r2420-20070602/Makefile -=================================================================== ---- madwifi-ng-r2420-20070602.orig/Makefile	2007-06-04 13:21:53.694813816 +0200 -+++ madwifi-ng-r2420-20070602/Makefile	2007-06-04 13:21:53.760803784 +0200 -@@ -56,7 +56,7 @@ -  - all: modules tools -  --modules: configcheck svnversion.h -+modules: svnversion.h - ifdef LINUX24 - 	for i in $(DIRS_MODULES); do \ - 		$(MAKE) -C $$i || exit 1; \ diff --git a/package/madwifi/patches/102-multicall_binary.patch b/package/madwifi/patches/102-multicall_binary.patch index 31dec0f4e..725b9968a 100644 --- a/package/madwifi/patches/102-multicall_binary.patch +++ b/package/madwifi/patches/102-multicall_binary.patch @@ -1,7 +1,7 @@ -Index: madwifi-ng-r2420-20070602/tools/80211debug.c +Index: madwifi-ng-r2525-20070630/tools/80211debug.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/80211debug.c	2007-06-04 13:21:53.599828256 +0200 -+++ madwifi-ng-r2420-20070602/tools/80211debug.c	2007-06-04 13:21:53.990768824 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/80211debug.c	2007-07-03 23:02:26.373692000 +0200 ++++ madwifi-ng-r2525-20070630/tools/80211debug.c	2007-07-03 23:02:27.357753500 +0200  @@ -49,6 +49,10 @@   #include <getopt.h>   #include <err.h> @@ -33,10 +33,10 @@ Index: madwifi-ng-r2420-20070602/tools/80211debug.c   	const char *ifname = "ath0";   	const char *cp, *tp;   	const char *sep; -Index: madwifi-ng-r2420-20070602/tools/80211stats.c +Index: madwifi-ng-r2525-20070630/tools/80211stats.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/80211stats.c	2007-06-04 13:21:53.607827040 +0200 -+++ madwifi-ng-r2420-20070602/tools/80211stats.c	2007-06-04 13:21:53.991768672 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/80211stats.c	2007-07-03 23:02:26.381692500 +0200 ++++ madwifi-ng-r2525-20070630/tools/80211stats.c	2007-07-03 23:02:27.357753500 +0200  @@ -60,6 +60,10 @@   #include "net80211/ieee80211_crypto.h"   #include "net80211/ieee80211_ioctl.h" @@ -68,10 +68,10 @@ Index: madwifi-ng-r2420-20070602/tools/80211stats.c   	int c, len;   	struct ieee80211req_sta_info *si;   	u_int8_t buf[24*1024], *cp; -Index: madwifi-ng-r2420-20070602/tools/athchans.c +Index: madwifi-ng-r2525-20070630/tools/athchans.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/athchans.c	2007-06-04 13:21:53.613826128 +0200 -+++ madwifi-ng-r2420-20070602/tools/athchans.c	2007-06-04 13:21:53.991768672 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/athchans.c	2007-07-03 23:02:26.389693000 +0200 ++++ madwifi-ng-r2525-20070630/tools/athchans.c	2007-07-03 23:02:27.401756250 +0200  @@ -59,6 +59,10 @@   #include "net80211/ieee80211_crypto.h"   #include "net80211/ieee80211_ioctl.h" @@ -104,10 +104,10 @@ Index: madwifi-ng-r2420-20070602/tools/athchans.c   	const char *ifname = "wifi0";   	struct ieee80211req_chanlist chanlist;   	int c; -Index: madwifi-ng-r2420-20070602/tools/athctrl.c +Index: madwifi-ng-r2525-20070630/tools/athctrl.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/athctrl.c	2007-06-04 13:21:53.618825368 +0200 -+++ madwifi-ng-r2420-20070602/tools/athctrl.c	2007-06-04 13:21:53.991768672 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/athctrl.c	2007-07-03 23:02:26.397693500 +0200 ++++ madwifi-ng-r2525-20070630/tools/athctrl.c	2007-07-03 23:02:27.433758250 +0200  @@ -53,6 +53,10 @@   #include <net/if.h> @@ -139,10 +139,10 @@ Index: madwifi-ng-r2420-20070602/tools/athctrl.c   	char device[IFNAMSIZ + 1];   	int distance = -1;   	int c; -Index: madwifi-ng-r2420-20070602/tools/athdebug.c +Index: madwifi-ng-r2525-20070630/tools/athdebug.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/athdebug.c	2007-06-04 13:21:53.624824456 +0200 -+++ madwifi-ng-r2420-20070602/tools/athdebug.c	2007-06-04 13:21:53.991768672 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/athdebug.c	2007-07-03 23:02:26.405694000 +0200 ++++ madwifi-ng-r2525-20070630/tools/athdebug.c	2007-07-03 23:02:27.453759500 +0200  @@ -52,6 +52,10 @@   #include <getopt.h>   #include <err.h> @@ -175,10 +175,10 @@ Index: madwifi-ng-r2420-20070602/tools/athdebug.c   #ifdef __linux__   	const char *ifname = "wifi0";   #else -Index: madwifi-ng-r2420-20070602/tools/athkey.c +Index: madwifi-ng-r2525-20070630/tools/athkey.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/athkey.c	2007-06-04 13:21:53.630823544 +0200 -+++ madwifi-ng-r2420-20070602/tools/athkey.c	2007-06-04 13:21:54.000767304 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/athkey.c	2007-07-03 23:02:26.413694500 +0200 ++++ madwifi-ng-r2525-20070630/tools/athkey.c	2007-07-03 23:02:27.477761000 +0200  @@ -59,6 +59,10 @@   #include "net80211/ieee80211_crypto.h"   #include "net80211/ieee80211_ioctl.h" @@ -210,10 +210,10 @@ Index: madwifi-ng-r2420-20070602/tools/athkey.c   	const char *ifname = "wifi0";   	struct ieee80211req_key setkey;   	struct ieee80211req_del_key delkey; -Index: madwifi-ng-r2420-20070602/tools/athstats.c +Index: madwifi-ng-r2525-20070630/tools/athstats.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/athstats.c	2007-06-04 13:21:53.635822784 +0200 -+++ madwifi-ng-r2420-20070602/tools/athstats.c	2007-06-04 13:21:54.000767304 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/athstats.c	2007-07-03 23:02:26.421695000 +0200 ++++ madwifi-ng-r2525-20070630/tools/athstats.c	2007-07-03 23:02:27.505762750 +0200  @@ -63,6 +63,10 @@   #include "wireless_copy.h"   #include "if_athioctl.h" @@ -246,10 +246,10 @@ Index: madwifi-ng-r2420-20070602/tools/athstats.c   #ifdef __linux__   	const char *ifname = "wifi0";   #else -Index: madwifi-ng-r2420-20070602/tools/do_multi.c +Index: madwifi-ng-r2525-20070630/tools/do_multi.c  ===================================================================  --- /dev/null	1970-01-01 00:00:00.000000000 +0000 -+++ madwifi-ng-r2420-20070602/tools/do_multi.c	2007-06-04 13:21:54.000767304 +0200 ++++ madwifi-ng-r2525-20070630/tools/do_multi.c	2007-07-03 23:02:27.557766000 +0200  @@ -0,0 +1,30 @@  +#include <string.h>  +#include "do_multi.h" @@ -281,10 +281,10 @@ Index: madwifi-ng-r2420-20070602/tools/do_multi.c  +      +    return ret;  +} -Index: madwifi-ng-r2420-20070602/tools/do_multi.h +Index: madwifi-ng-r2525-20070630/tools/do_multi.h  ===================================================================  --- /dev/null	1970-01-01 00:00:00.000000000 +0000 -+++ madwifi-ng-r2420-20070602/tools/do_multi.h	2007-06-04 13:21:54.000767304 +0200 ++++ madwifi-ng-r2525-20070630/tools/do_multi.h	2007-07-03 23:02:27.581767500 +0200  @@ -0,0 +1,9 @@  +  +int a80211debug_init(int argc, char *argv[]); @@ -295,10 +295,10 @@ Index: madwifi-ng-r2420-20070602/tools/do_multi.h  +int athkey_init(int argc, char *argv[]);  +int athstats_init(int argc, char *argv[]);  +int wlanconfig_init(int argc, char *argv[]); -Index: madwifi-ng-r2420-20070602/tools/Makefile +Index: madwifi-ng-r2525-20070630/tools/Makefile  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/Makefile	2007-06-04 13:21:53.649820656 +0200 -+++ madwifi-ng-r2420-20070602/tools/Makefile	2007-06-04 13:21:54.001767152 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/Makefile	2007-07-03 23:02:26.437696000 +0200 ++++ madwifi-ng-r2525-20070630/tools/Makefile	2007-07-03 23:02:27.605769000 +0200  @@ -49,6 +49,12 @@   ALL=	athstats 80211stats athkey athchans athctrl \ @@ -343,10 +343,10 @@ Index: madwifi-ng-r2420-20070602/tools/Makefile   athstats: athstats.c   	$(CC) -o athstats $(ALL_CFLAGS) -I$(TOP)/ath $(LDFLAGS) athstats.c   80211stats: 80211stats.c -Index: madwifi-ng-r2420-20070602/tools/wlanconfig.c +Index: madwifi-ng-r2525-20070630/tools/wlanconfig.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/wlanconfig.c	2007-06-04 13:21:53.656819592 +0200 -+++ madwifi-ng-r2420-20070602/tools/wlanconfig.c	2007-06-04 13:21:54.001767152 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/wlanconfig.c	2007-07-03 23:02:26.449696750 +0200 ++++ madwifi-ng-r2525-20070630/tools/wlanconfig.c	2007-07-03 23:02:27.669773000 +0200  @@ -62,6 +62,10 @@   #include "net80211/ieee80211_crypto.h"   #include "net80211/ieee80211_ioctl.h" diff --git a/package/madwifi/patches/103-disable_rfkill.patch b/package/madwifi/patches/103-disable_rfkill.patch deleted file mode 100644 index 5a35736fd..000000000 --- a/package/madwifi/patches/103-disable_rfkill.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c -=================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:53.574832056 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:54.287723680 +0200 -@@ -269,7 +269,7 @@ - static int ath_xchanmode = AH_TRUE;		/* enable extended channels */ - static char *autocreate = NULL; - static char *ratectl = DEF_RATE_CTL; --static int rfkill = -1; -+static int rfkill = 0; - #ifdef ATH_CAP_TPC - static int tpc = -1; - #endif diff --git a/package/madwifi/patches/104-autocreate_none.patch b/package/madwifi/patches/104-autocreate_none.patch index b2724e727..a7f3f37e6 100644 --- a/package/madwifi/patches/104-autocreate_none.patch +++ b/package/madwifi/patches/104-autocreate_none.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:54.287723680 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:54.479694496 +0200 -@@ -424,7 +424,7 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:26.289686750 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:28.081798750 +0200 +@@ -427,7 +427,7 @@   	HAL_STATUS status;   	int error = 0;   	unsigned int i; diff --git a/package/madwifi/patches/105-ratectl_attach.patch b/package/madwifi/patches/105-ratectl_attach.patch index 577bbcd96..687620d6b 100644 --- a/package/madwifi/patches/105-ratectl_attach.patch +++ b/package/madwifi/patches/105-ratectl_attach.patch @@ -1,7 +1,7 @@ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_rate.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_rate.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_rate.c	2007-06-04 13:21:53.530838744 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_rate.c	2007-06-04 13:21:54.814643576 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_rate.c	2007-07-03 23:02:26.205681500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_rate.c	2007-07-03 23:02:28.337814750 +0200  @@ -100,8 +100,18 @@   		ieee80211_load_module(buf); diff --git a/package/madwifi/patches/110-init_fix_PR_914.patch b/package/madwifi/patches/110-init_fix_PR_914.patch index 4c6a16de5..5df989def 100644 --- a/package/madwifi/patches/110-init_fix_PR_914.patch +++ b/package/madwifi/patches/110-init_fix_PR_914.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:54.479694496 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:55.006614392 +0200 -@@ -1980,7 +1980,10 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:28.081798750 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:28.585830250 +0200 +@@ -1988,7 +1988,10 @@   		ath_draintxq(sc);   		if (!sc->sc_invalid) {   			ath_stoprecv(sc); diff --git a/package/madwifi/patches/111-minstrel_crash.patch b/package/madwifi/patches/111-minstrel_crash.patch index 24ca40699..bf90dcabc 100644 --- a/package/madwifi/patches/111-minstrel_crash.patch +++ b/package/madwifi/patches/111-minstrel_crash.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath_rate/minstrel/minstrel.c +Index: madwifi-ng-r2525-20070630/ath_rate/minstrel/minstrel.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath_rate/minstrel/minstrel.c	2007-06-04 13:21:53.488845128 +0200 -+++ madwifi-ng-r2420-20070602/ath_rate/minstrel/minstrel.c	2007-06-04 13:21:55.198585208 +0200 -@@ -388,6 +388,9 @@ +--- madwifi-ng-r2525-20070630.orig/ath_rate/minstrel/minstrel.c	2007-07-03 23:02:26.041671250 +0200 ++++ madwifi-ng-r2525-20070630/ath_rate/minstrel/minstrel.c	2007-07-03 23:02:28.825845250 +0200 +@@ -389,6 +389,9 @@   		int rc1, rc2, rc3;         /* Index into the rate table, so for example, it is  0..11 */   		int rixc1, rixc2, rixc3;   /* The actual bit rate used */ diff --git a/package/madwifi/patches/112-keycache_PR_962.patch b/package/madwifi/patches/112-keycache_PR_962.patch index 251a233f5..4fa772d60 100644 --- a/package/madwifi/patches/112-keycache_PR_962.patch +++ b/package/madwifi/patches/112-keycache_PR_962.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:55.006614392 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:55.390556024 +0200 -@@ -5698,7 +5698,8 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:28.585830250 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:29.069860500 +0200 +@@ -5726,7 +5726,8 @@   		 * frame; it'll be dropped where it's not wanted.   		 */   		if (rs->rs_keyix != HAL_RXKEYIX_INVALID && @@ -12,11 +12,11 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			struct ath_node *an;   			/*   			 * Fast path: node is present in the key map; -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_node.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_node.c	2007-06-04 13:21:53.459849536 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_node.c	2007-06-04 13:21:55.391555872 +0200 -@@ -1269,8 +1269,6 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_node.c	2007-07-03 23:02:25.905662750 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_node.c	2007-07-03 23:02:29.073860750 +0200 +@@ -1271,8 +1271,6 @@   	IEEE80211_NODE_TABLE_UNLOCK_IRQ(nt);   	return ni; @@ -25,7 +25,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.c   }   #ifdef IEEE80211_DEBUG_REFCNT   EXPORT_SYMBOL(ieee80211_find_rxnode_debug); -@@ -1278,6 +1276,20 @@ +@@ -1280,6 +1278,20 @@   EXPORT_SYMBOL(ieee80211_find_rxnode);   #endif @@ -46,11 +46,11 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.c   /*    * Return a reference to the appropriate node for sending    * a data frame.  This handles node discovery in adhoc networks. -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.h +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_node.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_node.h	2007-06-04 13:21:53.466848472 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_node.h	2007-06-04 13:21:55.392555720 +0200 -@@ -323,6 +323,8 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_node.h	2007-07-03 23:02:25.917663500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_node.h	2007-07-03 23:02:29.121863750 +0200 +@@ -328,6 +328,8 @@   	*pni = NULL;			/* guard against use */   } diff --git a/package/madwifi/patches/113-no_ibss_pwrsave.patch b/package/madwifi/patches/113-no_ibss_pwrsave.patch index f11be5693..eebb5cf6f 100644 --- a/package/madwifi/patches/113-no_ibss_pwrsave.patch +++ b/package/madwifi/patches/113-no_ibss_pwrsave.patch @@ -1,7 +1,7 @@ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_scan.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_scan.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_scan.c	2007-06-04 13:21:53.432853640 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_scan.c	2007-06-04 13:21:55.608522888 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_scan.c	2007-07-03 23:02:25.817657250 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_scan.c	2007-07-03 23:02:29.401881250 +0200  @@ -291,7 +291,8 @@   	struct ieee80211com *ic = vap->iv_ic;   	int delay; diff --git a/package/madwifi/patches/116-adhoc_beacon_PR_1033.patch b/package/madwifi/patches/116-adhoc_beacon_PR_1033.patch index f9a13e634..429ed164a 100644 --- a/package/madwifi/patches/116-adhoc_beacon_PR_1033.patch +++ b/package/madwifi/patches/116-adhoc_beacon_PR_1033.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:55.390556024 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:55.808492488 +0200 -@@ -4394,16 +4394,31 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:29.069860500 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:29.657897250 +0200 +@@ -4422,16 +4422,31 @@   	struct ieee80211com *ic = &sc->sc_ic;   	struct ath_hal *ah = sc->sc_ah;   	struct ieee80211_node *ni; @@ -38,7 +38,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	/* XXX conditionalize multi-bss support? */   	if (ic->ic_opmode == IEEE80211_M_HOSTAP) {   		/* -@@ -4417,20 +4432,61 @@ +@@ -4445,20 +4460,61 @@   		if (sc->sc_stagbeacons)   			intval /= ATH_BCBUF;	/* for staggered beacons */   		if ((sc->sc_nostabeacons) && @@ -109,7 +109,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   		int dtimperiod, dtimcount;   		int cfpperiod, cfpcount; -@@ -4446,13 +4502,13 @@ +@@ -4474,13 +4530,13 @@   			dtimcount = 0;		/* XXX? */   		cfpperiod = 1;			/* NB: no PCF support yet */   		cfpcount = 0; @@ -126,7 +126,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   		do {   			nexttbtt += intval;   			if (--dtimcount < 0) { -@@ -4460,7 +4516,7 @@ +@@ -4488,7 +4544,7 @@   				if (--cfpcount < 0)   					cfpcount = cfpperiod - 1;   			} @@ -135,7 +135,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   #undef FUDGE   		memset(&bs, 0, sizeof(bs));   		bs.bs_intval = intval; -@@ -4512,7 +4568,7 @@ +@@ -4540,7 +4596,7 @@   		DPRINTF(sc, ATH_DEBUG_BEACON,   			"%s: tsf %llu tsf:tu %u intval %u nexttbtt %u dtim %u nextdtim %u bmiss %u sleep %u cfp:period %u maxdur %u next %u timoffset %u\n",   			__func__, @@ -144,7 +144,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			bs.bs_intval,   			bs.bs_nexttbtt,   			bs.bs_dtimperiod, -@@ -4531,7 +4587,7 @@ +@@ -4562,7 +4618,7 @@   		ath_hal_intrset(ah, sc->sc_imask);   	} else {   		ath_hal_intrset(ah, 0); @@ -153,7 +153,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			intval |= HAL_BEACON_RESET_TSF;   		if (ic->ic_opmode == IEEE80211_M_IBSS) {   			/* -@@ -4568,8 +4624,40 @@ +@@ -4599,8 +4655,40 @@   		if (ic->ic_opmode == IEEE80211_M_IBSS && sc->sc_hasveol)   			ath_beacon_start_adhoc(sc, vap);   	} diff --git a/package/madwifi/patches/117-no_tpc.patch b/package/madwifi/patches/117-no_tpc.patch deleted file mode 100644 index e573b267d..000000000 --- a/package/madwifi/patches/117-no_tpc.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c -=================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:55.808492488 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:56.713354928 +0200 -@@ -271,7 +271,7 @@ - static char *ratectl = DEF_RATE_CTL; - static int rfkill = 0; - #ifdef ATH_CAP_TPC --static int tpc = -1; -+static int tpc = 0; - #endif - static int countrycode = -1; - static int outdoor = -1; diff --git a/package/madwifi/patches/118-txstop_workaround.patch b/package/madwifi/patches/118-txstop_workaround.patch index 3133c41e6..2b59d253d 100644 --- a/package/madwifi/patches/118-txstop_workaround.patch +++ b/package/madwifi/patches/118-txstop_workaround.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:56.713354928 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:56.911324832 +0200 -@@ -2242,6 +2242,17 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:29.657897250 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:29.917913500 +0200 +@@ -2253,6 +2253,17 @@   		txq->axq_link = &lastds->ds_link;   		ath_hal_txstart(ah, txq->axq_qnum);   		sc->sc_dev->trans_start = jiffies; @@ -20,7 +20,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	}   	ATH_TXQ_UNLOCK_IRQ(txq); -@@ -7285,6 +7296,7 @@ +@@ -7312,6 +7323,7 @@   			__func__, ds);   #else   		ds = bf->bf_desc;		/* NB: last descriptor */ @@ -28,11 +28,11 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   #endif   		ts = &bf->bf_dsstatus.ds_txstat;   		status = ath_hal_txprocdesc(ah, ds, ts); -Index: madwifi-ng-r2420-20070602/ath/if_athvar.h +Index: madwifi-ng-r2525-20070630/ath/if_athvar.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_athvar.h	2007-06-04 13:21:53.369863216 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_athvar.h	2007-06-04 13:21:56.911324832 +0200 -@@ -686,6 +686,14 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_athvar.h	2007-07-03 23:02:25.669648000 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_athvar.h	2007-07-03 23:02:29.917913500 +0200 +@@ -690,6 +690,14 @@   	u_int sc_slottimeconf;			/* manual override for slottime */   	int16_t sc_channoise; 			/* Measured noise of current channel (dBm) */   	u_int64_t sc_tsf;			/* TSF at last rx interrupt */ diff --git a/package/madwifi/patches/119-minstrel_rates.patch b/package/madwifi/patches/119-minstrel_rates.patch index 50cbb5a64..ddccbf68b 100644 --- a/package/madwifi/patches/119-minstrel_rates.patch +++ b/package/madwifi/patches/119-minstrel_rates.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath_rate/minstrel/minstrel.c +Index: madwifi-ng-r2525-20070630/ath_rate/minstrel/minstrel.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath_rate/minstrel/minstrel.c	2007-06-04 13:21:55.198585208 +0200 -+++ madwifi-ng-r2420-20070602/ath_rate/minstrel/minstrel.c	2007-06-04 13:21:57.115293824 +0200 -@@ -358,6 +358,8 @@ +--- madwifi-ng-r2525-20070630.orig/ath_rate/minstrel/minstrel.c	2007-07-03 23:02:28.825845250 +0200 ++++ madwifi-ng-r2525-20070630/ath_rate/minstrel/minstrel.c	2007-07-03 23:02:30.209931750 +0200 +@@ -359,6 +359,8 @@   					if (sn->rs_sampleColumn >= MINSTREL_COLUMNS)   						sn->rs_sampleColumn = 0;   				} diff --git a/package/madwifi/patches/120-soc_fix.patch b/package/madwifi/patches/120-soc_fix.patch index fd3a20079..5aae795da 100644 --- a/package/madwifi/patches/120-soc_fix.patch +++ b/package/madwifi/patches/120-soc_fix.patch @@ -1,7 +1,7 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath_ahb.c +Index: madwifi-ng-r2525-20070630/ath/if_ath_ahb.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath_ahb.c	2007-06-04 13:21:53.320870664 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath_ahb.c	2007-06-04 13:21:57.306264792 +0200 +--- madwifi-ng-r2525-20070630.orig/ath/if_ath_ahb.c	2007-07-03 23:02:25.509638000 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath_ahb.c	2007-07-03 23:02:30.709963000 +0200  @@ -275,11 +275,10 @@ @@ -43,4 +43,3 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath_ahb.c   	return 0;   } - diff --git a/package/madwifi/patches/121-ibss_hostap.patch b/package/madwifi/patches/121-ibss_hostap.patch index 24cbe9811..1705dd9f5 100644 --- a/package/madwifi/patches/121-ibss_hostap.patch +++ b/package/madwifi/patches/121-ibss_hostap.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:56.911324832 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:57.500235304 +0200 -@@ -407,7 +407,6 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:29.917913500 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:30.957978500 +0200 +@@ -410,7 +410,6 @@    * and use the next two bits as the index of the VAP.    */   #define ATH_SET_VAP_BSSID_MASK(bssid_mask)      ((bssid_mask)[0] &= ~(((ATH_BCBUF-1)<<2)|0x02)) @@ -10,7 +10,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   #define ATH_SET_VAP_BSSID(bssid, id) \   		do { \   			if (id) \ -@@ -1048,9 +1047,12 @@ +@@ -1055,9 +1054,12 @@   			ic_opmode = opmode;   		break;   	case IEEE80211_M_IBSS: @@ -26,28 +26,24 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   		break;   	case IEEE80211_M_AHDEMO:   	case IEEE80211_M_MONITOR: -@@ -1080,7 +1082,7 @@ +@@ -1087,7 +1089,7 @@   		return NULL;   	}  -	if (sc->sc_nvaps >= ATH_BCBUF) {  +	if (sc->sc_nvaps + sc->sc_nibssvaps >= ATH_BCBUF) { - 		printk(KERN_WARNING "too many virtual ap's (already got %d)\n", sc->sc_nvaps); + 		printk(KERN_WARNING "too many virtual APs (already got %d)\n", sc->sc_nvaps);   		return NULL;   	} -@@ -1115,8 +1117,9 @@ - 	 */ +@@ -1123,6 +1125,7 @@   	if (opmode == IEEE80211_M_MONITOR)   		dev->type = ARPHRD_IEEE80211_RADIOTAP; --	if ((flags & IEEE80211_CLONE_BSSID) && --	    sc->sc_nvaps != 0 && opmode != IEEE80211_M_WDS && sc->sc_hasbmask) { +   +	avp->av_bslot = -1; -+	if ((flags & IEEE80211_CLONE_BSSID) && sc->sc_hasbmask &&  -+	    (opmode == IEEE80211_M_HOSTAP || opmode == IEEE80211_M_IBSS)) { + 	if ((flags & IEEE80211_CLONE_BSSID) && + 	    opmode != IEEE80211_M_WDS && sc->sc_hasbmask) {   		struct ieee80211vap *v; - 		unsigned int id_mask, id; -  -@@ -1129,18 +1132,22 @@ +@@ -1137,18 +1140,22 @@   		/* do a full search to mark all the allocated VAPs */   		id_mask = 0; @@ -59,7 +55,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c  +				id_mask |= (1 << a->av_bslot);  +		} --		for (id = 0; id < ATH_BCBUF; id++) { +-		for (id = 1; id < ATH_BCBUF; id++) {  +		/* IBSS mode has local always set, so don't hand out beacon slot 0 to an IBSS vap */  +		for (id = (opmode == IEEE80211_M_IBSS ? 1 : 0); id < ATH_BCBUF; id++) {   			/* get the first available slot */ @@ -74,7 +70,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	STAILQ_INIT(&avp->av_mcastq.axq_q);   	ATH_TXQ_LOCK_INIT(&avp->av_mcastq);   	if (opmode == IEEE80211_M_HOSTAP || opmode == IEEE80211_M_IBSS) { -@@ -1150,33 +1157,14 @@ +@@ -1158,33 +1165,14 @@   		 */   		avp->av_bcbuf = STAILQ_FIRST(&sc->sc_bbuf);   		STAILQ_REMOVE_HEAD(&sc->sc_bbuf, bf_list); @@ -110,18 +106,18 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			/*   			 * Multiple VAPs are to transmit beacons and we   			 * have h/w support for TSF adjusting; enable use -@@ -1286,7 +1274,9 @@ +@@ -1294,7 +1282,9 @@   			sc->sc_stagbeacons = 0;   	}  -	if (vap->iv_opmode == IEEE80211_M_STA) {  +	if (vap->iv_opmode == IEEE80211_M_IBSS) { -+		sc->sc_nibssvaps--;	 ++		sc->sc_nibssvaps--;  +	} else if (vap->iv_opmode == IEEE80211_M_STA) {   		sc->sc_nstavaps--;   		sc->sc_nostabeacons = 0;   	} else if (vap->iv_opmode == IEEE80211_M_MONITOR) -@@ -3362,7 +3352,7 @@ +@@ -3390,7 +3380,7 @@   	    sc->sc_opmode == HAL_M_IBSS ||	/* NB: AHDEMO too */   	    (sc->sc_nostabeacons) || sc->sc_scanning)   		rfilt |= HAL_RX_FILTER_BEACON; @@ -130,8 +126,8 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   		rfilt |= (HAL_RX_FILTER_CONTROL | HAL_RX_FILTER_BEACON |   			  HAL_RX_FILTER_PROBEREQ | HAL_RX_FILTER_PROM);   	return rfilt; -@@ -5809,12 +5799,20 @@ - 			type = ieee80211_input(ni, skb, rs->rs_rssi, rs->rs_tstamp); +@@ -5837,12 +5827,20 @@ + 			type = ieee80211_input(ni, skb, rs->rs_rssi, rs_tsf);   			ieee80211_unref_node(&ni);   		} else {  +			const struct ieee80211_frame_min *wh = (const struct ieee80211_frame_min *) skb->data; @@ -153,10 +149,10 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			if (ni != NULL) {   				struct ath_node *an = ATH_NODE(ni);   				ieee80211_keyix_t keyix; -Index: madwifi-ng-r2420-20070602/ath/if_athvar.h +Index: madwifi-ng-r2525-20070630/ath/if_athvar.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_athvar.h	2007-06-04 13:21:56.911324832 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_athvar.h	2007-06-04 13:21:57.500235304 +0200 +--- madwifi-ng-r2525-20070630.orig/ath/if_athvar.h	2007-07-03 23:02:29.917913500 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_athvar.h	2007-07-03 23:02:30.957978500 +0200  @@ -199,7 +199,7 @@   #define	ATH_RXBUF	40		/* number of RX buffers */   #define	ATH_TXBUF	200		/* number of TX buffers */ @@ -166,18 +162,18 @@ Index: madwifi-ng-r2420-20070602/ath/if_athvar.h   /* free buffer threshold to restart net dev */   #define	ATH_TXBUF_FREE_THRESHOLD  (ATH_TXBUF / 20) -@@ -594,6 +594,7 @@ - 	u_int16_t sc_nvaps;			/* # of active virtual ap's */ - 	u_int8_t sc_nstavaps;			/* # of active station vaps */ - 	u_int8_t sc_nmonvaps;			/* # of monitor vaps */ +@@ -598,6 +598,7 @@ + 	u_int16_t sc_nvaps;			/* # of active virtual APs */ + 	u_int8_t sc_nstavaps;			/* # of active station VAPs */ + 	u_int8_t sc_nmonvaps;			/* # of monitor VAPs */  +	u_int8_t sc_nibssvaps;			/* # of active ibss vaps */   	u_int8_t sc_nbcnvaps;			/* # of vaps sending beacons */   	u_int sc_fftxqmin;			/* aggregation threshold */   	HAL_INT sc_imask;			/* interrupt mask copy */ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_beacon.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_beacon.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_beacon.c	2007-06-04 13:21:53.286875832 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_beacon.c	2007-06-04 13:21:57.501235152 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_beacon.c	2007-07-03 23:02:25.413632000 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_beacon.c	2007-07-03 23:02:30.981980000 +0200  @@ -111,7 +111,7 @@   	bo->bo_tim = frm; @@ -187,11 +183,11 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_beacon.c   		*frm++ = IEEE80211_ELEMID_IBSSPARMS;   		*frm++ = 2;   		*frm++ = 0; *frm++ = 0;		/* TODO: ATIM window */ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_input.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_input.c	2007-06-04 13:21:53.292874920 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_input.c	2007-06-04 13:21:57.502235000 +0200 -@@ -2939,7 +2939,13 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_input.c	2007-07-03 23:02:25.421632500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_input.c	2007-07-03 23:02:31.005981500 +0200 +@@ -2980,7 +2980,13 @@   			return;   		}   		if (ni == vap->iv_bss) { @@ -206,7 +202,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   				/*   				 * XXX Cannot tell if the sender is operating   				 * in ibss mode.  But we need a new node to -@@ -2948,12 +2954,13 @@ +@@ -2989,12 +2995,13 @@   				 */   				ni = ieee80211_fakeup_adhoc_node(vap,   					wh->i_addr2); @@ -221,18 +217,17 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   		}   		IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr2, -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_node.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_node.c	2007-06-04 13:21:55.391555872 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_node.c	2007-06-04 13:21:57.503234848 +0200 -@@ -1082,8 +1082,25 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_node.c	2007-07-03 23:02:29.073860750 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_node.c	2007-07-03 23:02:31.037983500 +0200 +@@ -1084,8 +1084,25 @@   	IEEE80211_NODE_TABLE_LOCK_ASSERT(nt);   	hash = IEEE80211_NODE_HASH(macaddr); -+	 ++  +	/* look for non-ibss nodes first */ - 	LIST_FOREACH(ni, &nt->nt_hash[hash], ni_hash) { --		if (IEEE80211_ADDR_EQ(ni->ni_macaddr, macaddr)) { ++	LIST_FOREACH(ni, &nt->nt_hash[hash], ni_hash) {  +		if (IEEE80211_ADDR_EQ(ni->ni_macaddr, macaddr) && ni->ni_vap->iv_opmode != IEEE80211_M_IBSS) {  +			ieee80211_ref_node(ni);	/* mark referenced */  +#ifdef IEEE80211_DEBUG_REFCNT @@ -247,7 +242,8 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.c  +	}  +  +	/* now look for ibss nodes */ -+	LIST_FOREACH(ni, &nt->nt_hash[hash], ni_hash) { + 	LIST_FOREACH(ni, &nt->nt_hash[hash], ni_hash) { +-		if (IEEE80211_ADDR_EQ(ni->ni_macaddr, macaddr)) {  +		if (IEEE80211_ADDR_EQ(ni->ni_macaddr, macaddr) && ni->ni_vap->iv_opmode == IEEE80211_M_IBSS) {   			ieee80211_ref_node(ni);	/* mark referenced */   #ifdef IEEE80211_DEBUG_REFCNT diff --git a/package/madwifi/patches/122-replayfail_workaround.patch b/package/madwifi/patches/122-replayfail_workaround.patch index 5931ec733..c7cfc0186 100644 --- a/package/madwifi/patches/122-replayfail_workaround.patch +++ b/package/madwifi/patches/122-replayfail_workaround.patch @@ -1,7 +1,7 @@ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_linux.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_linux.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_linux.c	2007-06-04 13:21:53.255880544 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_linux.c	2007-06-04 13:21:57.745198064 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_linux.c	2007-07-03 23:02:25.321626250 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_linux.c	2007-07-03 23:02:31.362003750 +0200  @@ -285,6 +285,9 @@   		k->wk_cipher->ic_name, k->wk_keyix,   		(unsigned long long)rsc ); diff --git a/package/madwifi/patches/123-ccmp_checks.patch b/package/madwifi/patches/123-ccmp_checks.patch index 8370d3579..0ae9ece67 100644 --- a/package/madwifi/patches/123-ccmp_checks.patch +++ b/package/madwifi/patches/123-ccmp_checks.patch @@ -1,21 +1,8 @@ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_ccmp.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_ccmp.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_crypto_ccmp.c	2007-06-04 13:21:53.234883736 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_ccmp.c	2007-06-04 13:21:57.936169032 +0200 -@@ -118,6 +118,12 @@ - 	ctx->cc_ic = vap->iv_ic; - 	ctx->cc_tfm = crypto_alloc_cipher("aes", 0, - 					CRYPTO_ALG_ASYNC); -+	 -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) -+	if (IS_ERR(ctx->cc_tfm)) -+		ctx->cc_tfm = NULL; -+#endif -+ - 	if (ctx->cc_tfm == NULL) { - 		IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, - 				"%s: unable to load kernel AES crypto support\n", -@@ -465,6 +471,9 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_crypto_ccmp.c	2007-07-03 23:02:25.245621500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_ccmp.c	2007-07-03 23:02:31.690024250 +0200 +@@ -475,6 +475,9 @@   	uint8_t *mic, *pos;   	u_int space; @@ -25,7 +12,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_ccmp.c   	ctx->cc_vap->iv_stats.is_crypto_ccmp++;   	skb = skb0; -@@ -579,6 +588,9 @@ +@@ -589,6 +592,9 @@   	uint8_t *pos, *mic;   	u_int space; diff --git a/package/madwifi/patches/124-node_unref_r2484.patch b/package/madwifi/patches/124-node_unref_r2484.patch deleted file mode 100644 index a4def3530..000000000 --- a/package/madwifi/patches/124-node_unref_r2484.patch +++ /dev/null @@ -1,98 +0,0 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c -=================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-07-02 23:49:33.450710750 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-07-02 23:50:43.107064000 +0200 -@@ -8197,16 +8197,15 @@ - 				wds_ni->ni_rates = vap->iv_bss->ni_rates; - 				/* Depending on the sequence of bringing up devices - 				 * it's possible the rates of the root bss isn't --				 * filled yet.  --				 */ --				if (vap->iv_ic->ic_newassoc != NULL && --				    wds_ni->ni_rates.rs_nrates != 0) { -+				 * filled yet. */ -+				if ((vap->iv_ic->ic_newassoc != NULL) && -+				    (wds_ni->ni_rates.rs_nrates != 0)) { - 					/* Fill in the rates based on our own rates - 					 * we rely on the rate selection mechanism --					 * to find out which rates actually work! --					 */ -+					 * to find out which rates actually work! */ - 					vap->iv_ic->ic_newassoc(wds_ni, 1); - 				} -+				ieee80211_unref_node(&wds_ni); - 			} - 			break; - 		default: -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_output.c -=================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_output.c	2007-07-02 23:49:31.574593500 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_output.c	2007-07-02 23:50:37.462711250 +0200 -@@ -268,6 +268,7 @@ - 		 * We'll get the frame back when the time is right. - 		 */ - 		ieee80211_pwrsave(ni, skb); -+		ieee80211_unref_node(&ni); - 		return 0; - 	} -  -@@ -282,7 +283,7 @@ - 	    vap->iv_xrvap->iv_sta_assoc) { - 		struct sk_buff *skb1; - 		ni = ieee80211_find_txnode(vap->iv_xrvap, eh->ether_dhost); --		skb1 = skb_clone(skb,GFP_ATOMIC); -+		skb1 = skb_clone(skb, GFP_ATOMIC); - 		if (skb1) { - 			cb = (struct ieee80211_cb *) skb1->cb; - 			cb->ni = ni; -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_wireless.c -=================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_wireless.c	2007-07-02 23:49:31.566593000 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_wireless.c	2007-07-02 23:49:34.126753000 +0200 -@@ -1088,7 +1088,6 @@ - 	/* locate a node, read its rssi, check if updated, convert to dBm */ - 	for (i = 0; i < number; i++) { - 		ni = ieee80211_find_node(nt, &vap->iv_spy.mac[i * IEEE80211_ADDR_LEN]); --		/* TODO: free node ? */ - 		/* check we are associated w/ this vap */ - 		if (ni && (ni->ni_vap == vap)) { - 			set_quality(&spy_stat[i], ni->ni_rssi, ic->ic_channoise); -@@ -1100,6 +1099,7 @@ - 		} else { - 			spy_stat[i].updated = IW_QUAL_ALL_INVALID; - 		} -+		ieee80211_unref_node(&ni); - 	} -  - 	/* copy results to userspace */ -@@ -3153,6 +3153,7 @@ - 	/* NB: this also checks ik->ik_keylen > sizeof(wk->wk_key) */ - 	if (ik->ik_keylen > sizeof(ik->ik_keydata)) - 		return -E2BIG; -+ - 	kix = ik->ik_keyix; - 	if (kix == IEEE80211_KEYIX_NONE) { - 		/* XXX unicast keys currently must be tx/rx */ -@@ -3176,6 +3177,7 @@ - 		if ((ik->ik_flags & IEEE80211_KEY_XMIT) == 0)	/* XXX */ - 			ik->ik_flags |= IEEE80211_KEY_GROUP;	/* XXX */ - 	} -+ - 	error = 0; - 	flags = ik->ik_flags & IEEE80211_KEY_COMMON; - 	ieee80211_key_update_begin(vap); -@@ -3190,12 +3192,13 @@ - 		memset(wk->wk_key, 0, sizeof(wk->wk_key)); - 		memcpy(wk->wk_key, ik->ik_keydata, ik->ik_keylen); - 		if (!ieee80211_crypto_setkey(vap, wk, --		    ni != NULL ? ni->ni_macaddr : ik->ik_macaddr, ni)) -+		    (ni != NULL) ? ni->ni_macaddr : ik->ik_macaddr, ni)) - 			error = -EIO; - 		else if ((ik->ik_flags & IEEE80211_KEY_DEFAULT)) - 			vap->iv_def_txkey = kix; - 	} else - 		error = -ENXIO; -+ - 	ieee80211_key_update_end(vap); - 	if (ni != NULL) - 		ieee80211_unref_node(&ni); diff --git a/package/madwifi/patches/125-plug_memleak.patch b/package/madwifi/patches/125-plug_memleak.patch index 53a763965..429b851a7 100644 --- a/package/madwifi/patches/125-plug_memleak.patch +++ b/package/madwifi/patches/125-plug_memleak.patch @@ -1,9 +1,9 @@ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_input.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_input.c	2007-07-02 12:50:31.839514500 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_input.c	2007-07-02 12:51:10.309918750 +0200 -@@ -2832,7 +2832,7 @@ - 			ieee80211_add_scan(vap, &scan, wh, subtype, rssi, rstamp); +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_input.c	2007-07-03 23:02:31.005981500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_input.c	2007-07-03 23:02:31.926039000 +0200 +@@ -2873,7 +2873,7 @@ + 			ieee80211_add_scan(vap, &scan, wh, subtype, rssi, rtsf);   			return;   		}  -		if (scan.capinfo & IEEE80211_CAPINFO_IBSS) { diff --git a/package/madwifi/patches/200-no_debug.patch b/package/madwifi/patches/200-no_debug.patch index cecc266da..71675e5a1 100644 --- a/package/madwifi/patches/200-no_debug.patch +++ b/package/madwifi/patches/200-no_debug.patch @@ -1,7 +1,7 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:57.500235304 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:58.130139544 +0200 +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:30.957978500 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:32.178054750 +0200  @@ -75,7 +75,7 @@   #include <net80211/if_llc.h>   #endif @@ -11,20 +11,11 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   #include "net80211/if_athproto.h"   #include "if_athvar.h" -@@ -382,7 +382,7 @@ - 		ath_keyprint(sc, __func__, ix, hk, mac);	\ - } while (0) - #else /* defined(AR_DEBUG) */ --#define	IFF_DUMPPKTS(sc, _m)	netif_msg_dumppkts(&sc->sc_ic) -+#define	IFF_DUMPPKTS(sc, _m)	0 - #define	DPRINTF(sc, _m, _fmt, ...) - #define	KEYPRINTF(sc, k, ix, mac) - #endif /* defined(AR_DEBUG) */ -Index: madwifi-ng-r2420-20070602/ath_rate/amrr/amrr.c +Index: madwifi-ng-r2525-20070630/ath_rate/amrr/amrr.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath_rate/amrr/amrr.c	2007-06-04 13:21:53.164894376 +0200 -+++ madwifi-ng-r2420-20070602/ath_rate/amrr/amrr.c	2007-06-04 13:21:58.131139392 +0200 -@@ -69,7 +69,7 @@ +--- madwifi-ng-r2525-20070630.orig/ath_rate/amrr/amrr.c	2007-07-03 23:02:25.053609500 +0200 ++++ madwifi-ng-r2525-20070630/ath_rate/amrr/amrr.c	2007-07-03 23:02:32.178054750 +0200 +@@ -70,7 +70,7 @@   #include "amrr.h" @@ -33,11 +24,11 @@ Index: madwifi-ng-r2420-20070602/ath_rate/amrr/amrr.c   #ifdef AMRR_DEBUG   #define	DPRINTF(sc, _fmt, ...) do {					\   	if (sc->sc_debug & 0x10)					\ -Index: madwifi-ng-r2420-20070602/ath_rate/minstrel/minstrel.c +Index: madwifi-ng-r2525-20070630/ath_rate/minstrel/minstrel.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath_rate/minstrel/minstrel.c	2007-06-04 13:21:57.115293824 +0200 -+++ madwifi-ng-r2420-20070602/ath_rate/minstrel/minstrel.c	2007-06-04 13:21:58.132139240 +0200 -@@ -116,7 +116,7 @@ +--- madwifi-ng-r2525-20070630.orig/ath_rate/minstrel/minstrel.c	2007-07-03 23:02:30.209931750 +0200 ++++ madwifi-ng-r2525-20070630/ath_rate/minstrel/minstrel.c	2007-07-03 23:02:32.230058000 +0200 +@@ -117,7 +117,7 @@   #include "minstrel.h" @@ -46,11 +37,11 @@ Index: madwifi-ng-r2420-20070602/ath_rate/minstrel/minstrel.c   #ifdef MINSTREL_DEBUG   enum {   		ATH_DEBUG_RATE		= 0x00000010	/* rate control */ -Index: madwifi-ng-r2420-20070602/ath_rate/onoe/onoe.c +Index: madwifi-ng-r2525-20070630/ath_rate/onoe/onoe.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath_rate/onoe/onoe.c	2007-06-04 13:21:53.176892552 +0200 -+++ madwifi-ng-r2420-20070602/ath_rate/onoe/onoe.c	2007-06-04 13:21:58.132139240 +0200 -@@ -65,7 +65,7 @@ +--- madwifi-ng-r2525-20070630.orig/ath_rate/onoe/onoe.c	2007-07-03 23:02:25.073610750 +0200 ++++ madwifi-ng-r2525-20070630/ath_rate/onoe/onoe.c	2007-07-03 23:02:32.254059500 +0200 +@@ -66,7 +66,7 @@   #include "onoe.h" @@ -59,11 +50,11 @@ Index: madwifi-ng-r2420-20070602/ath_rate/onoe/onoe.c   #ifdef ONOE_DEBUG   enum {   	ATH_DEBUG_RATE	= 0x00000010,	/* rate control */ -Index: madwifi-ng-r2420-20070602/ath_rate/sample/sample.c +Index: madwifi-ng-r2525-20070630/ath_rate/sample/sample.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath_rate/sample/sample.c	2007-06-04 13:21:53.183891488 +0200 -+++ madwifi-ng-r2420-20070602/ath_rate/sample/sample.c	2007-06-04 13:21:58.133139088 +0200 -@@ -67,7 +67,7 @@ +--- madwifi-ng-r2525-20070630.orig/ath_rate/sample/sample.c	2007-07-03 23:02:25.081611250 +0200 ++++ madwifi-ng-r2525-20070630/ath_rate/sample/sample.c	2007-07-03 23:02:32.282061250 +0200 +@@ -68,7 +68,7 @@   #include "sample.h" @@ -72,46 +63,30 @@ Index: madwifi-ng-r2420-20070602/ath_rate/sample/sample.c   #ifdef SAMPLE_DEBUG   enum {   	ATH_DEBUG_NODE		= 0x00080000,	/* node management */ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_proto.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_proto.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_proto.c	2007-06-04 13:21:53.189890576 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_proto.c	2007-06-04 13:21:58.133139088 +0200 -@@ -312,6 +312,7 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_proto.c	2007-07-03 23:02:25.089611750 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_proto.c	2007-07-03 23:02:32.306062750 +0200 +@@ -286,6 +286,7 @@   } - EXPORT_SYMBOL(ieee80211_print_essid); + EXPORT_SYMBOL(ieee80211_aclator_get);  +#ifdef IEEE80211_DEBUG   void - ieee80211_dump_pkt(struct ieee80211com *ic, - 	const u_int8_t *buf, int len, int rate, int rssi) -@@ -390,6 +391,7 @@ - 	} + ieee80211_print_essid(const u_int8_t *essid, int len) + { +@@ -312,7 +313,6 @@   } - EXPORT_SYMBOL(ieee80211_dump_pkt); -+#endif /* IEEE80211_DEBUG */ -  - int - ieee80211_fix_rate(struct ieee80211_node *ni, int flags) -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_proto.h -=================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_proto.h	2007-06-04 13:21:53.194889816 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_proto.h	2007-06-04 13:21:58.134138936 +0200 -@@ -247,7 +247,11 @@ - #endif - int ieee80211_new_state(struct ieee80211vap *, enum ieee80211_state, int); - void ieee80211_print_essid(const u_int8_t *, int); -+#ifdef IEEE80211_DEBUG - void ieee80211_dump_pkt(struct ieee80211com *, const u_int8_t *, int, int, int); -+#else -+#define ieee80211_dump_pkt(...) -+#endif - struct sk_buff *ieee80211_getcfframe(struct ieee80211vap *, int); + EXPORT_SYMBOL(ieee80211_print_essid); - /* -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_var.h +-#ifdef IEEE80211_DEBUG + void + ieee80211_dump_pkt(struct ieee80211com *ic, + 	const u_int8_t *buf, int len, int rate, int rssi) +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_var.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_var.h	2007-06-04 13:21:53.201888752 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_var.h	2007-06-04 13:21:58.134138936 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_var.h	2007-07-03 23:02:25.101612500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_var.h	2007-07-03 23:02:32.330064250 +0200  @@ -35,8 +35,8 @@   #ifndef _NET80211_IEEE80211_VAR_H_   #define _NET80211_IEEE80211_VAR_H_ @@ -123,10 +98,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_var.h   /* Definitions for IEEE 802.11 drivers. */   #include <net80211/ieee80211_linux.h> -Index: madwifi-ng-r2420-20070602/tools/do_multi.c +Index: madwifi-ng-r2525-20070630/tools/do_multi.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/do_multi.c	2007-06-04 13:21:54.000767304 +0200 -+++ madwifi-ng-r2420-20070602/tools/do_multi.c	2007-06-04 13:21:58.134138936 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/do_multi.c	2007-07-03 23:02:27.557766000 +0200 ++++ madwifi-ng-r2525-20070630/tools/do_multi.c	2007-07-03 23:02:32.386067750 +0200  @@ -9,16 +9,20 @@       progname = basename(argv[0]); @@ -148,16 +123,16 @@ Index: madwifi-ng-r2420-20070602/tools/do_multi.c       if(strcmp(progname, "athkey") == 0)   	ret =  athkey_init(argc, argv);       if(strcmp(progname, "athstats") == 0) -Index: madwifi-ng-r2420-20070602/tools/Makefile +Index: madwifi-ng-r2525-20070630/tools/Makefile  =================================================================== ---- madwifi-ng-r2420-20070602.orig/tools/Makefile	2007-06-04 13:21:54.001767152 +0200 -+++ madwifi-ng-r2420-20070602/tools/Makefile	2007-06-04 13:21:58.134138936 +0200 +--- madwifi-ng-r2525-20070630.orig/tools/Makefile	2007-07-03 23:02:27.605769000 +0200 ++++ madwifi-ng-r2525-20070630/tools/Makefile	2007-07-03 23:02:32.406069000 +0200  @@ -52,7 +52,7 @@   ifdef DOMULTI   OBJS=	do_multi.o athstats.o 80211stats.o athkey.o athchans.o athctrl.o \  -	athdebug.o 80211debug.o wlanconfig.o  -+	wlanconfig.o  ++	wlanconfig.o   ALL=	${OBJS} madwifi_multi   endif diff --git a/package/madwifi/patches/300-napi_polling.patch b/package/madwifi/patches/300-napi_polling.patch index 7990ed709..bdaf9d078 100644 --- a/package/madwifi/patches/300-napi_polling.patch +++ b/package/madwifi/patches/300-napi_polling.patch @@ -1,9 +1,9 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:58.130139544 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:58.427094400 +0200 -@@ -167,7 +167,7 @@ - 	int, u_int32_t); +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:32.178054750 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:32.998106000 +0200 +@@ -170,7 +170,7 @@ + 	int, u_int64_t);   static void ath_setdefantenna(struct ath_softc *, u_int);   static struct ath_txq *ath_txq_setup(struct ath_softc *, int, int);  -static void ath_rx_tasklet(TQUEUE_ARG); @@ -11,7 +11,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   static int ath_hardstart(struct sk_buff *, struct net_device *);   static int ath_mgtstart(struct ieee80211com *, struct sk_buff *);   #ifdef ATH_SUPERG_COMP -@@ -442,7 +442,6 @@ +@@ -446,7 +446,6 @@   	ATH_TXBUF_LOCK_INIT(sc);   	ATH_RXBUF_LOCK_INIT(sc); @@ -28,7 +28,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   #ifdef USE_HEADERLEN_RESV   	dev->hard_header_len += sizeof(struct ieee80211_qosframe) +   				sizeof(struct llc) + -@@ -1664,6 +1665,7 @@ +@@ -1668,6 +1669,7 @@   	 */   	ath_hal_getisr(ah, &status);		/* NB: clears ISR too */   	DPRINTF(sc, ATH_DEBUG_INTR, "%s: status 0x%x\n", __func__, status); @@ -36,21 +36,23 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	status &= sc->sc_imask;			/* discard unasked for bits */   	if (status & HAL_INT_FATAL) {   		sc->sc_stats.ast_hardware++; -@@ -1699,7 +1701,12 @@ +@@ -1703,7 +1705,14 @@   		if (status & HAL_INT_RX) {   			sc->sc_tsf = ath_hal_gettsf64(ah);   			ath_uapsd_processtriggers(sc);  -			ATH_SCHEDULE_TQUEUE(&sc->sc_rxtq, &needmark);  +			sc->sc_isr &= ~HAL_INT_RX;  +			if (netif_rx_schedule_prep(dev)) { ++#ifndef ATH_PRECISE_TSF  +				sc->sc_imask &= ~HAL_INT_RX;  +				ath_hal_intrset(ah, sc->sc_imask); ++#endif  +				__netif_rx_schedule(dev);  +			}   		}   		if (status & HAL_INT_TX) {   #ifdef ATH_SUPERG_DYNTURBO -@@ -1725,6 +1732,11 @@ +@@ -1729,6 +1738,11 @@   				}   			}   #endif @@ -62,7 +64,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			ATH_SCHEDULE_TQUEUE(&sc->sc_txtq, &needmark);   		}   		if (status & HAL_INT_BMISS) { -@@ -3295,10 +3307,10 @@ +@@ -3323,10 +3337,10 @@   	 *   	 * XXX Using in_softirq is not right since we might   	 * be called from other soft irq contexts than @@ -75,7 +77,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	netif_stop_queue(dev);   } -@@ -3311,7 +3323,7 @@ +@@ -3339,7 +3353,7 @@   	DPRINTF(sc, ATH_DEBUG_KEYCACHE, "%s:\n", __func__);   	netif_start_queue(dev);   	if (!in_softirq())		/* NB: see above */ @@ -84,7 +86,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   }   /* -@@ -5569,13 +5581,12 @@ +@@ -5590,13 +5604,12 @@   	sc->sc_rxotherant = 0;   } @@ -100,10 +102,10 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	struct ath_buf *bf;   	struct ath_softc *sc = dev->priv;   	struct ieee80211com *ic = &sc->sc_ic; -@@ -5587,12 +5598,15 @@ - 	unsigned int len; +@@ -5609,12 +5622,15 @@   	int type;   	u_int phyerr; + 	u_int64_t rs_tsf;  +	u_int processed = 0, early_stop = 0;  +	u_int rx_limit = dev->quota; @@ -116,7 +118,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	do {   		bf = STAILQ_FIRST(&sc->sc_rxbuf);   		if (bf == NULL) {		/* XXX ??? can this happen */ -@@ -5616,6 +5630,13 @@ +@@ -5638,6 +5654,13 @@   			/* NB: never process the self-linked entry at the end */   			break;   		} @@ -130,7 +132,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   		skb = bf->bf_skb;   		if (skb == NULL) {		/* XXX ??? can this happen */   			printk("%s: no skbuff (%s)\n", DEV_NAME(dev), __func__); -@@ -5654,6 +5675,7 @@ +@@ -5676,6 +5699,7 @@   				sc->sc_stats.ast_rx_phyerr++;   				phyerr = rs->rs_phyerr & 0x1f;   				sc->sc_stats.ast_rx_phy[phyerr]++; @@ -138,7 +140,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			}   			if (rs->rs_status & HAL_RXERR_DECRYPT) {   				/* -@@ -5865,9 +5887,29 @@ +@@ -5892,9 +5916,33 @@   		STAILQ_INSERT_TAIL(&sc->sc_rxbuf, bf, bf_list);   		ATH_RXBUF_UNLOCK_IRQ(sc);   	} while (ath_rxbuf_init(sc, bf) == 0); @@ -146,6 +148,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c  +		/* Check if more data is received while we were  +		 * processing the descriptor chain.  +		 */ ++#ifndef ATH_PRECISE_TSF  +		ATH_DISABLE_INTR();  +		if (sc->sc_isr & HAL_INT_RX) {  +			sc->sc_isr &= ~HAL_INT_RX; @@ -153,11 +156,14 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c  +			ath_uapsd_processtriggers(sc);  +			goto process_rx_again;  +		} ++#endif  +		netif_rx_complete(dev);  + ++#ifndef ATH_PRECISE_TSF  +		sc->sc_imask |= HAL_INT_RX;  +		ath_hal_intrset(ah, sc->sc_imask);  +		ATH_ENABLE_INTR(); ++#endif  +	}  +  +	*budget -= processed; @@ -168,7 +174,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   #undef PA2DESC   } -@@ -7484,11 +7526,22 @@ +@@ -7513,11 +7561,22 @@   	struct net_device *dev = (struct net_device *)data;   	struct ath_softc *sc = dev->priv; @@ -191,7 +197,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	netif_wake_queue(dev);   	if (sc->sc_softled) -@@ -7505,6 +7558,7 @@ +@@ -7534,6 +7593,7 @@   	struct net_device *dev = (struct net_device *)data;   	struct ath_softc *sc = dev->priv; @@ -199,7 +205,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	/*   	 * Process each active queue.   	 */ -@@ -7525,6 +7579,16 @@ +@@ -7554,6 +7614,16 @@   	if (sc->sc_uapsdq && txqactive(sc->sc_ah, sc->sc_uapsdq->axq_qnum))   		ath_tx_processq(sc, sc->sc_uapsdq); @@ -216,7 +222,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	netif_wake_queue(dev);   	if (sc->sc_softled) -@@ -7542,6 +7606,7 @@ +@@ -7571,6 +7641,7 @@   	unsigned int i;   	/* Process each active queue. */ @@ -224,7 +230,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	for (i = 0; i < HAL_NUM_TX_QUEUES; i++)   		if (ATH_TXQ_SETUP(sc, i) && txqactive(sc->sc_ah, i))   			ath_tx_processq(sc, &sc->sc_txq[i]); -@@ -7550,6 +7615,16 @@ +@@ -7579,6 +7650,16 @@   		ath_tx_processq(sc, sc->sc_xrtxq);   #endif @@ -241,7 +247,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	netif_wake_queue(dev);   	if (sc->sc_softled) -@@ -7648,6 +7723,7 @@ +@@ -7677,6 +7758,7 @@   ath_draintxq(struct ath_softc *sc)   {   	struct ath_hal *ah = sc->sc_ah; @@ -249,7 +255,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	unsigned int i;   	/* XXX return value */ -@@ -9167,9 +9243,9 @@ +@@ -9195,9 +9277,9 @@   	dev->mtu = mtu;   	if ((dev->flags & IFF_RUNNING) && !sc->sc_invalid) {   		/* NB: the rx buffers may need to be reallocated */ @@ -261,13 +267,13 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   	}   	ATH_UNLOCK(sc); -Index: madwifi-ng-r2420-20070602/ath/if_athvar.h +Index: madwifi-ng-r2525-20070630/ath/if_athvar.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_athvar.h	2007-06-04 13:21:57.500235304 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_athvar.h	2007-06-04 13:21:58.428094248 +0200 -@@ -48,6 +48,10 @@ - #include "if_athioctl.h" +--- madwifi-ng-r2525-20070630.orig/ath/if_athvar.h	2007-07-03 23:02:30.957978500 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_athvar.h	2007-07-03 23:02:33.002106250 +0200 +@@ -49,6 +49,10 @@   #include "net80211/ieee80211.h"		/* XXX for WME_NUM_AC */ + #include <asm/io.h>  +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)  +#define irqs_disabled()			0 @@ -276,15 +282,15 @@ Index: madwifi-ng-r2420-20070602/ath/if_athvar.h   /*    * Deduce if tasklets are available.  If not then    * fall back to using the immediate work queue. -@@ -621,7 +625,6 @@ +@@ -625,7 +629,6 @@   	struct ath_buf *sc_rxbufcur;		/* current rx buffer */   	u_int32_t *sc_rxlink;			/* link ptr in last RX desc */   	spinlock_t sc_rxbuflock;  -	struct ATH_TQ_STRUCT sc_rxtq;		/* rx intr tasklet */   	struct ATH_TQ_STRUCT sc_rxorntq;	/* rxorn intr tasklet */   	u_int8_t sc_defant;			/* current default antenna */ - 	u_int8_t sc_rxotherant;			/* rx's on non-default antenna*/ -@@ -634,6 +637,7 @@ + 	u_int8_t sc_rxotherant;			/* RXs on non-default antenna */ +@@ -638,6 +641,7 @@   	u_int sc_txintrperiod;			/* tx interrupt batching */   	struct ath_txq sc_txq[HAL_NUM_TX_QUEUES];   	struct ath_txq *sc_ac2q[WME_NUM_AC];	/* WME AC -> h/w qnum */ @@ -292,7 +298,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_athvar.h   	struct ATH_TQ_STRUCT sc_txtq;		/* tx intr tasklet */   	u_int8_t sc_grppoll_str[GRPPOLL_RATE_STR_LEN];   	struct ath_descdma sc_bdma;		/* beacon descriptors */ -@@ -714,6 +718,8 @@ +@@ -718,6 +722,8 @@   #define	ATH_TXBUF_LOCK_ASSERT(_sc) \   	KASSERT(spin_is_locked(&(_sc)->sc_txbuflock), ("txbuf not locked!")) @@ -301,10 +307,10 @@ Index: madwifi-ng-r2420-20070602/ath/if_athvar.h   #define	ATH_RXBUF_LOCK_INIT(_sc)	spin_lock_init(&(_sc)->sc_rxbuflock)   #define	ATH_RXBUF_LOCK_DESTROY(_sc) -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_input.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_input.c	2007-06-04 13:21:57.502235000 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_input.c	2007-06-04 13:21:58.461089232 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_input.c	2007-07-03 23:02:31.926039000 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_input.c	2007-07-03 23:02:33.002106250 +0200  @@ -1128,8 +1128,9 @@   		if (ni->ni_vlan != 0 && vap->iv_vlgrp != NULL) {   			/* attach vlan tag */ diff --git a/package/madwifi/patches/301-tx_locking.patch b/package/madwifi/patches/301-tx_locking.patch index f2b4cc7fb..edf138558 100644 --- a/package/madwifi/patches/301-tx_locking.patch +++ b/package/madwifi/patches/301-tx_locking.patch @@ -1,17 +1,17 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:58.427094400 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:58.684055336 +0200 -@@ -2554,7 +2554,7 @@ - 	/* NB: use this lock to protect an->an_ff_txbuf in athff_can_aggregate() - 	 *     call too. +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:32.998106000 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:33.302125000 +0200 +@@ -2567,7 +2567,7 @@ + 	/* NB: use this lock to protect an->an_tx_ffbuf (and txq->axq_stageq) + 	 *	in athff_can_aggregate() call too.   	 */  -	ATH_TXQ_LOCK_IRQ(txq);  +	ATH_TXQ_LOCK_BH(txq);   	if (athff_can_aggregate(sc, eh, an, skb, vap->iv_fragthreshold, &ff_flush)) {   		if (an->an_tx_ffbuf[skb->priority]) { /* i.e., frame on the staging queue */   			bf = an->an_tx_ffbuf[skb->priority]; -@@ -2562,6 +2562,7 @@ +@@ -2575,6 +2575,7 @@   			/* get (and remove) the frame from staging queue */   			TAILQ_REMOVE(&txq->axq_stageq, bf, bf_stagelist);   			an->an_tx_ffbuf[skb->priority] = NULL; @@ -19,7 +19,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			/*   			 * chain skbs and add FF magic -@@ -2584,7 +2585,7 @@ +@@ -2597,7 +2598,7 @@   			 */   			ATH_HARDSTART_GET_TX_BUF_WITH_LOCK;   			if (bf == NULL) { @@ -28,7 +28,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   				goto hardstart_fail;   			}   			DPRINTF(sc, ATH_DEBUG_XMIT | ATH_DEBUG_FF, -@@ -2596,8 +2597,7 @@ +@@ -2609,8 +2610,7 @@   			an->an_tx_ffbuf[skb->priority] = bf;   			TAILQ_INSERT_HEAD(&txq->axq_stageq, bf, bf_stagelist); @@ -38,7 +38,16 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			return 0;   		} -@@ -2649,12 +2649,12 @@ +@@ -2623,7 +2623,7 @@ + 			an->an_tx_ffbuf[skb->priority] = NULL; +  + 			/* NB: ath_tx_start -> ath_tx_txqaddbuf uses ATH_TXQ_LOCK too */ +-			ATH_TXQ_UNLOCK_IRQ_EARLY(txq); ++			ATH_TXQ_UNLOCK_BH(txq); +  + 			/* encap and xmit */ + 			bf_ff->bf_skb = ieee80211_encap(ni, bf_ff->bf_skb, &framecnt); +@@ -2674,12 +2674,12 @@   		ATH_HARDSTART_GET_TX_BUF_WITH_LOCK;   		if (bf == NULL) { @@ -51,13 +60,13 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c  -	ATH_TXQ_UNLOCK_IRQ(txq); + ff_flush_done:   ff_bypass: -  -Index: madwifi-ng-r2420-20070602/ath/if_athvar.h +Index: madwifi-ng-r2525-20070630/ath/if_athvar.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_athvar.h	2007-06-04 13:21:58.428094248 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_athvar.h	2007-06-04 13:21:58.684055336 +0200 -@@ -484,6 +484,8 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_athvar.h	2007-07-03 23:02:33.002106250 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_athvar.h	2007-07-03 23:02:33.302125000 +0200 +@@ -487,6 +487,8 @@   #define ATH_TXQ_INTR_PERIOD		5  /* axq_intrcnt period for intr gen */   #define	ATH_TXQ_LOCK_INIT(_tq)		spin_lock_init(&(_tq)->axq_lock)   #define	ATH_TXQ_LOCK_DESTROY(_tq) diff --git a/package/madwifi/patches/305-pureg_fix.patch b/package/madwifi/patches/305-pureg_fix.patch index d3c49d1cb..c3542831c 100644 --- a/package/madwifi/patches/305-pureg_fix.patch +++ b/package/madwifi/patches/305-pureg_fix.patch @@ -1,8 +1,8 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-04 13:21:58.684055336 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-06-04 13:21:58.895023264 +0200 -@@ -3362,7 +3362,9 @@ +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:33.302125000 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:33.594143250 +0200 +@@ -3392,7 +3392,9 @@   		rfilt |= HAL_RX_FILTER_PROM;   	if (ic->ic_opmode == IEEE80211_M_STA ||   	    sc->sc_opmode == HAL_M_IBSS ||	/* NB: AHDEMO too */ @@ -13,10 +13,10 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   		rfilt |= HAL_RX_FILTER_BEACON;   	if ((sc->sc_nmonvaps > 0) || ((sc->sc_nvaps > 0) && (sc->sc_nibssvaps > 0)))   		rfilt |= (HAL_RX_FILTER_CONTROL | HAL_RX_FILTER_BEACON | -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_input.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_input.c	2007-06-04 13:21:58.461089232 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_input.c	2007-06-04 13:21:58.897022960 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_input.c	2007-07-03 23:02:33.002106250 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_input.c	2007-07-03 23:02:33.598143500 +0200  @@ -321,11 +321,12 @@   				bssid = wh->i_addr3;   			} @@ -42,7 +42,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   				/* not interested in */   				IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,   					bssid, NULL, "%s", "not to bss"); -@@ -2542,7 +2544,7 @@ +@@ -2541,7 +2543,7 @@   	u_int8_t *frm, *efrm;   	u_int8_t *ssid, *rates, *xrates, *wpa, *rsn, *wme, *ath;   	u_int8_t rate; @@ -51,7 +51,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   	u_int8_t qosinfo;   	wh = (struct ieee80211_frame *) skb->data; -@@ -2564,11 +2566,15 @@ +@@ -2563,11 +2565,15 @@   		 *    o station mode when associated (to collect state   		 *      updates such as 802.11g slot time), or   		 *    o adhoc mode (to discover neighbors) @@ -68,7 +68,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   			vap->iv_stats.is_rx_mgtdiscard++;   			return;   		} -@@ -2651,6 +2657,7 @@ +@@ -2650,6 +2656,7 @@   					break;   				}   				scan.erp = frm[2]; @@ -76,7 +76,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   				break;   			case IEEE80211_ELEMID_RSN:   				scan.rsn = frm; -@@ -2826,6 +2833,20 @@ +@@ -2867,6 +2874,20 @@   				ieee80211_bg_scan(vap);   			return;   		} @@ -84,11 +84,11 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c  +		/* Update AP protection mode when in 11G mode */  +		if ((vap->iv_opmode == IEEE80211_M_HOSTAP) &&  +			IEEE80211_IS_CHAN_ANYG(ic->ic_curchan)) { -+				 ++  +			/* Assume no ERP IE == 11b AP */  +			if ((!has_erp || (has_erp && (scan.erp & IEEE80211_ERP_NON_ERP_PRESENT))) &&  +				!(ic->ic_flags & IEEE80211_F_USEPROT)) { -+				 ++  +				ic->ic_flags |= IEEE80211_F_USEPROT;  +				ic->ic_flags_ext |= IEEE80211_FEXT_ERPUPDATE;  +			} @@ -97,10 +97,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   		/*   		 * If scanning, just pass information to the scan module.   		 */ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_node.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_node.c	2007-06-04 13:21:57.503234848 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_node.c	2007-06-04 13:21:58.897022960 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_node.c	2007-07-03 23:02:31.037983500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_node.c	2007-07-03 23:02:33.598143500 +0200  @@ -332,10 +332,16 @@   	/* Update country ie information */   	ieee80211_build_countryie(ic); @@ -115,15 +115,15 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.c  +  +	if ((vap->iv_flags & IEEE80211_F_PUREG) &&  +		IEEE80211_IS_CHAN_ANYG(chan)) { -+		ieee80211_setpuregbasicrates(&ni->ni_rates);  ++		ieee80211_setpuregbasicrates(&ni->ni_rates);  +	}   	(void) ieee80211_sta_join1(PASS_NODE(ni));   } -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_proto.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_proto.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_proto.c	2007-06-04 13:21:58.133139088 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_proto.c	2007-06-04 13:21:58.898022808 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_proto.c	2007-07-03 23:02:32.306062750 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_proto.c	2007-07-03 23:02:33.630145500 +0200  @@ -586,6 +586,28 @@   	{ 4, { 2, 4, 11, 22 } },	/* IEEE80211_MODE_TURBO_G (mixed b/g) */   }; @@ -153,16 +153,16 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_proto.c   /*    * Mark the basic rates for the 11g rate table based on the    * specified mode.  For 11b compatibility we mark only 11b -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_var.h +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_var.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_var.h	2007-06-04 13:21:58.134138936 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_var.h	2007-06-04 13:21:58.899022656 +0200 -@@ -593,6 +593,8 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_var.h	2007-07-03 23:02:32.330064250 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_var.h	2007-07-03 23:02:33.678148500 +0200 +@@ -592,6 +592,8 @@   void ieee80211_build_countryie(struct ieee80211com *);   int ieee80211_media_setup(struct ieee80211com *, struct ifmedia *, u_int32_t,   	ifm_change_cb_t, ifm_stat_cb_t);  +void ieee80211_setpuregbasicrates(struct ieee80211_rateset *rs); -+		 ++   /* Key update synchronization methods.  XXX should not be visible. */   static __inline void diff --git a/package/madwifi/patches/309-micfail_detect.patch b/package/madwifi/patches/309-micfail_detect.patch index a482a823f..ef10cd1f9 100644 --- a/package/madwifi/patches/309-micfail_detect.patch +++ b/package/madwifi/patches/309-micfail_detect.patch @@ -1,16 +1,16 @@ -Index: madwifi-ng-r2420-20070602/ath/if_ath.c +Index: madwifi-ng-r2525-20070630/ath/if_ath.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/ath/if_ath.c	2007-06-30 23:52:00.743038750 +0200 -+++ madwifi-ng-r2420-20070602/ath/if_ath.c	2007-07-01 00:12:19.127183000 +0200 -@@ -5602,6 +5602,7 @@ - 	u_int phyerr; +--- madwifi-ng-r2525-20070630.orig/ath/if_ath.c	2007-07-03 23:02:33.594143250 +0200 ++++ madwifi-ng-r2525-20070630/ath/if_ath.c	2007-07-03 23:02:34.014169500 +0200 +@@ -5626,6 +5626,7 @@ + 	u_int64_t rs_tsf;   	u_int processed = 0, early_stop = 0;   	u_int rx_limit = dev->quota;  +	u_int mic_fail = 0;   	/* Let the 802.11 layer know about the new noise floor */   	sc->sc_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); -@@ -5696,25 +5697,7 @@ +@@ -5720,25 +5721,7 @@   			}   			if (rs->rs_status & HAL_RXERR_MIC) {   				sc->sc_stats.ast_rx_badmic++; @@ -37,7 +37,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			}   			/*   			 * Reject error frames if we have no vaps that  -@@ -5772,8 +5755,9 @@ +@@ -5802,8 +5785,9 @@   		/*   		 * Finished monitor mode handling, now reject   		 * error frames before passing to other vaps @@ -48,7 +48,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   			dev_kfree_skb(skb);   			skb = NULL;   			goto rx_next; -@@ -5804,6 +5788,27 @@ +@@ -5834,6 +5818,27 @@   				   sc->sc_hwmap[rs->rs_rate].ieeerate,   				   rs->rs_rssi); @@ -56,7 +56,7 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c  +		if (mic_fail) {  +			/* Ignore control frames which are reported with mic error */  +		    if ((((struct ieee80211_frame *)skb->data)->i_fc[0] & -+					IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL)  ++					IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL)  +				goto drop_micfail;  +  +			ni = ieee80211_find_rxnode(ic, (const struct ieee80211_frame_min *) skb->data); @@ -76,11 +76,11 @@ Index: madwifi-ng-r2420-20070602/ath/if_ath.c   		/*   		 * Locate the node for sender, track state, and then   		 * pass the (referenced) node up to the 802.11 layer -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_ccmp.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_ccmp.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_crypto_ccmp.c	2007-06-30 23:52:00.042995000 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_ccmp.c	2007-06-30 23:52:00.999054750 +0200 -@@ -78,7 +78,7 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_crypto_ccmp.c	2007-07-03 23:02:31.690024250 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_ccmp.c	2007-07-03 23:02:34.026170250 +0200 +@@ -73,7 +73,7 @@   static int ccmp_encap(struct ieee80211_key *, struct sk_buff *, u_int8_t);   static int ccmp_decap(struct ieee80211_key *, struct sk_buff *, int);   static int ccmp_enmic(struct ieee80211_key *, struct sk_buff *, int); @@ -89,7 +89,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_ccmp.c   static const struct ieee80211_cipher ccmp = {   	.ic_name	= "AES-CCM", -@@ -304,7 +304,7 @@ +@@ -308,7 +308,7 @@    * Verify and strip MIC from the frame.    */   static int @@ -98,10 +98,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_ccmp.c   {   	return 1;   } -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto.h +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_crypto.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_crypto.h	2007-06-30 23:51:53.942613750 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_crypto.h	2007-06-30 23:52:01.107061500 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_crypto.h	2007-07-03 23:02:24.549578000 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_crypto.h	2007-07-03 23:02:34.054172000 +0200  @@ -145,7 +145,7 @@   	int (*ic_encap)(struct ieee80211_key *, struct sk_buff *, u_int8_t);   	int (*ic_decap)(struct ieee80211_key *, struct sk_buff *, int); @@ -124,10 +124,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto.h   }   /* -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_none.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_none.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_crypto_none.c	2007-06-30 23:51:53.950614250 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_none.c	2007-06-30 23:52:01.171065500 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_crypto_none.c	2007-07-03 23:02:24.557578500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_none.c	2007-07-03 23:02:34.074173250 +0200  @@ -52,7 +52,7 @@   static int none_encap(struct ieee80211_key *, struct sk_buff *, u_int8_t);   static int none_decap(struct ieee80211_key *, struct sk_buff *, int); @@ -146,10 +146,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_none.c   {   	struct ieee80211vap *vap = k->wk_private; -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_tkip.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_tkip.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_crypto_tkip.c	2007-06-30 23:51:53.958614750 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_tkip.c	2007-06-30 23:52:01.203067500 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_crypto_tkip.c	2007-07-03 23:02:24.565579000 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_tkip.c	2007-07-03 23:02:34.114175750 +0200  @@ -57,7 +57,7 @@   static int tkip_encap(struct ieee80211_key *, struct sk_buff *, u_int8_t);   static int tkip_enmic(struct ieee80211_key *, struct sk_buff *, int); @@ -177,10 +177,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_tkip.c   		struct ieee80211vap *vap = ctx->tc_vap;   		u8 mic[IEEE80211_WEP_MICLEN];   		u8 mic0[IEEE80211_WEP_MICLEN]; -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_wep.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_wep.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_crypto_wep.c	2007-06-30 23:51:53.966615250 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_wep.c	2007-06-30 23:52:01.211068000 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_crypto_wep.c	2007-07-03 23:02:24.573579500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_crypto_wep.c	2007-07-03 23:02:34.134177000 +0200  @@ -54,7 +54,7 @@   static int wep_encap(struct ieee80211_key *, struct sk_buff *, u_int8_t);   static int wep_decap(struct ieee80211_key *, struct sk_buff *, int); @@ -199,10 +199,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_crypto_wep.c   {   	return 1;   } -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_input.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_input.c	2007-06-30 23:52:00.799042250 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_input.c	2007-06-30 23:52:01.239069750 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_input.c	2007-07-03 23:02:33.598143500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_input.c	2007-07-03 23:02:34.134177000 +0200  @@ -632,7 +632,7 @@   		 * Next strip any MSDU crypto bits.   		 */ @@ -212,12 +212,12 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   			IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,   				ni->ni_macaddr, "data", "%s", "demic error");   			IEEE80211_NODE_STAT(ni, rx_demicfail); -@@ -3730,6 +3730,47 @@ +@@ -3771,6 +3771,47 @@   }   #endif  +/* -+ * Process a frame w/ hw detected MIC failure.  ++ * Process a frame w/ hw detected MIC failure.  + * The frame will be dropped in any case.  + */  +void @@ -229,7 +229,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c  +	struct ieee80211_key *key;  +	int hdrspace;  +	struct ieee80211com *ic = vap->iv_ic; -+	 ++  +	if (skb->len < sizeof(struct ieee80211_frame_min)) {  +		IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,  +		    ni->ni_macaddr, NULL, @@ -239,7 +239,7 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c  +	}  +  +	wh = (struct ieee80211_frame *)skb->data; -+		 ++  +	hdrspace = ieee80211_hdrspace(ic, wh);  +	key = ieee80211_crypto_decap(ni, skb, hdrspace);  +	if (key == NULL) { @@ -260,10 +260,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_input.c   #ifdef IEEE80211_DEBUG   /*    * Debugging support. -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_proto.h +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_proto.h  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_proto.h	2007-06-30 23:52:00.331013000 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_proto.h	2007-06-30 23:52:01.295073250 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_proto.h	2007-07-03 23:02:24.589580500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_proto.h	2007-07-03 23:02:34.190180500 +0200  @@ -91,6 +91,7 @@   void ieee80211_set11gbasicrates(struct ieee80211_rateset *, enum ieee80211_phymode);   enum ieee80211_phymode ieee80211_get11gbasicrates(struct ieee80211_rateset *); @@ -272,10 +272,10 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_proto.h   /*    * Return the size of the 802.11 header for a management or data frame. -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_linux.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_linux.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_linux.c	2007-06-30 23:52:00.026994000 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_linux.c	2007-06-30 23:52:01.347076500 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_linux.c	2007-07-03 23:02:31.362003750 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_linux.c	2007-07-03 23:02:34.218182250 +0200  @@ -291,8 +291,8 @@   	/* TODO: needed parameters: count, keyid, key type, src address, TSC */   	snprintf(buf, sizeof(buf), "%s(keyid=%d %scast addr=%s)", tag, @@ -287,11 +287,11 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_linux.c   	memset(&wrqu, 0, sizeof(wrqu));   	wrqu.data.length = strlen(buf);   	wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf); -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_output.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_output.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_output.c	2007-06-30 23:52:00.118999750 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_output.c	2007-06-30 23:52:01.355077000 +0200 -@@ -1077,13 +1077,16 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_output.c	2007-07-03 23:02:24.605581500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_output.c	2007-07-03 23:02:34.218182250 +0200 +@@ -1079,13 +1079,16 @@   			cip = (struct ieee80211_cipher *) key->wk_cipher;   			ciphdrsize = cip->ic_header;   			tailsize += (cip->ic_trailer + cip->ic_miclen); @@ -311,11 +311,11 @@ Index: madwifi-ng-r2420-20070602/net80211/ieee80211_output.c   		/*   		 * Allocate sk_buff for each subsequent fragment; First fragment -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_node.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_node.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_node.c	2007-06-30 23:52:54.850420250 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_node.c	2007-07-01 00:18:32.370509250 +0200 -@@ -1885,11 +1885,13 @@ +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_node.c	2007-07-03 23:02:33.598143500 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_node.c	2007-07-03 23:02:34.266185250 +0200 +@@ -1891,11 +1891,13 @@   	/* From this point onwards we can no longer find the node,   	 * so no more references are generated   	 */ diff --git a/package/madwifi/patches/310-erp_beacon_check.patch b/package/madwifi/patches/310-erp_beacon_check.patch index 22244cb9f..a985e4bfe 100644 --- a/package/madwifi/patches/310-erp_beacon_check.patch +++ b/package/madwifi/patches/310-erp_beacon_check.patch @@ -1,7 +1,7 @@ -Index: madwifi-ng-r2420-20070602/net80211/ieee80211_beacon.c +Index: madwifi-ng-r2525-20070630/net80211/ieee80211_beacon.c  =================================================================== ---- madwifi-ng-r2420-20070602.orig/net80211/ieee80211_beacon.c	2007-06-04 13:21:57.501235152 +0200 -+++ madwifi-ng-r2420-20070602/net80211/ieee80211_beacon.c	2007-06-04 13:21:59.411944680 +0200 +--- madwifi-ng-r2525-20070630.orig/net80211/ieee80211_beacon.c	2007-07-03 23:02:30.981980000 +0200 ++++ madwifi-ng-r2525-20070630/net80211/ieee80211_beacon.c	2007-07-03 23:02:34.674210750 +0200  @@ -512,7 +512,7 @@   			vap->iv_flags &= ~IEEE80211_F_XRUPDATE;   		} | 
