Ticket #3060: madwifi-r3221.patch

File madwifi-r3221.patch, 62.0 KB (added by dwrobel@…, 10 years ago)

madwifi r3053 -> r3221 patch (tested on wgt634u with r10009)

  • package/madwifi/patches/200-no_debug.patch

     
    1 Index: madwifi-dfs-r3053/ath/if_ath.c 
     1Index: madwifi-dfs-r3221/ath/if_ath.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:13.122373270 +0100 
    4 +++ madwifi-dfs-r3053/ath/if_ath.c      2007-12-13 05:25:13.342385808 +0100 
     3--- madwifi-dfs-r3221.orig/ath/if_ath.c 2008-01-19 21:27:12.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath/if_ath.c      2008-01-19 21:27:12.000000000 +0100 
    55@@ -42,7 +42,7 @@ 
    66  * This software is derived from work of Atsushi Onoe; his contribution 
    77  * is greatly appreciated. 
     
    1111 #include "if_ath_debug.h" 
    1212 #include "opt_ah.h" 
    1313  
    14 @@ -516,9 +516,11 @@ 
     14@@ -521,9 +521,11 @@ ath_attach(u_int16_t devid, struct net_d 
    1515        u_int8_t csz; 
    1616  
    1717        sc->devid = devid; 
     
    2121        DPRINTF(sc, ATH_DEBUG_ANY, "%s: devid 0x%x\n", __func__, devid); 
    2222+#endif 
    2323  
    24         /* 
    25          * Cache line size is used to size and align various 
    26 @@ -1280,12 +1282,14 @@ 
     24        /* Allocate space for dynamically determined maximum VAP count */ 
     25        sc->sc_bslot =  
     26@@ -1299,12 +1301,14 @@ ath_vap_create(struct ieee80211com *ic,  
    2727                /* If no default VAP debug flags are passed, allow a few to 
    2828                 * transfer down from the driver to new VAPs so we can have load 
    2929                 * time debugging for VAPs too. */ 
     
    3838        } 
    3939        ic->ic_debug = (sc->sc_default_ieee80211_debug & IEEE80211_MSG_IC); 
    4040  
    41 @@ -10308,9 +10312,11 @@ 
     41@@ -10575,9 +10579,11 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl 
    4242                                /* XXX validate? */ 
    4343                                sc->sc_ledpin = val; 
    4444                                break; 
     
    5050                                break; 
    5151                        case ATH_TXANTENNA: 
    5252                                /* 
    53 @@ -10721,9 +10727,11 @@ 
     53@@ -10997,9 +11003,11 @@ ath_dynamic_sysctl_register(struct ath_s 
    5454        } 
    5555  
    5656        /* initialize values */ 
     
    6262        sc->sc_txantenna = 0;           /* default to auto-selection */ 
    6363        sc->sc_txintrperiod = ATH_TXQ_INTR_PERIOD; 
    6464 } 
    65 Index: madwifi-dfs-r3053/ath_rate/amrr/amrr.c 
     65Index: madwifi-dfs-r3221/ath_rate/amrr/amrr.c 
    6666=================================================================== 
    67 --- madwifi-dfs-r3053.orig/ath_rate/amrr/amrr.c 2007-12-13 05:25:10.422219395 +0100 
    68 +++ madwifi-dfs-r3053/ath_rate/amrr/amrr.c      2007-12-13 05:25:13.342385808 +0100 
     67--- madwifi-dfs-r3221.orig/ath_rate/amrr/amrr.c 2008-01-19 21:27:02.000000000 +0100 
     68+++ madwifi-dfs-r3221/ath_rate/amrr/amrr.c      2008-01-19 21:27:12.000000000 +0100 
    6969@@ -70,7 +70,7 @@ 
    7070  
    7171 #include "amrr.h" 
     
    7575 #ifdef AMRR_DEBUG 
    7676 #define        DPRINTF(sc, _fmt, ...) do {                                     \ 
    7777        if (sc->sc_debug & 0x10)                                        \ 
    78 Index: madwifi-dfs-r3053/ath_rate/minstrel/minstrel.c 
     78Index: madwifi-dfs-r3221/ath_rate/minstrel/minstrel.c 
    7979=================================================================== 
    80 --- madwifi-dfs-r3053.orig/ath_rate/minstrel/minstrel.c 2007-12-13 05:25:12.006309667 +0100 
    81 +++ madwifi-dfs-r3053/ath_rate/minstrel/minstrel.c      2007-12-13 05:25:13.350386263 +0100 
     80--- madwifi-dfs-r3221.orig/ath_rate/minstrel/minstrel.c 2008-01-19 21:27:10.000000000 +0100 
     81+++ madwifi-dfs-r3221/ath_rate/minstrel/minstrel.c      2008-01-19 21:27:12.000000000 +0100 
    8282@@ -117,7 +117,7 @@ 
    8383  
    8484 #include "minstrel.h" 
     
    8888 #ifdef MINSTREL_DEBUG 
    8989 enum { 
    9090                ATH_DEBUG_RATE          = 0x00000010    /* rate control */ 
    91 Index: madwifi-dfs-r3053/ath_rate/onoe/onoe.c 
     91Index: madwifi-dfs-r3221/ath_rate/onoe/onoe.c 
    9292=================================================================== 
    93 --- madwifi-dfs-r3053.orig/ath_rate/onoe/onoe.c 2007-12-13 05:25:10.438220308 +0100 
    94 +++ madwifi-dfs-r3053/ath_rate/onoe/onoe.c      2007-12-13 05:25:13.354386489 +0100 
     93--- madwifi-dfs-r3221.orig/ath_rate/onoe/onoe.c 2008-01-19 21:27:02.000000000 +0100 
     94+++ madwifi-dfs-r3221/ath_rate/onoe/onoe.c      2008-01-19 21:27:12.000000000 +0100 
    9595@@ -66,7 +66,7 @@ 
    9696  
    9797 #include "onoe.h" 
     
    101101 #ifdef ONOE_DEBUG 
    102102 enum { 
    103103        ATH_DEBUG_RATE  = 0x00000010,   /* rate control */ 
    104 Index: madwifi-dfs-r3053/ath_rate/sample/sample.c 
     104Index: madwifi-dfs-r3221/ath_rate/sample/sample.c 
    105105=================================================================== 
    106 --- madwifi-dfs-r3053.orig/ath_rate/sample/sample.c     2007-12-13 05:25:10.446220763 +0100 
    107 +++ madwifi-dfs-r3053/ath_rate/sample/sample.c  2007-12-13 05:25:13.358386718 +0100 
     106--- madwifi-dfs-r3221.orig/ath_rate/sample/sample.c     2008-01-19 21:27:02.000000000 +0100 
     107+++ madwifi-dfs-r3221/ath_rate/sample/sample.c  2008-01-19 21:27:12.000000000 +0100 
    108108@@ -68,7 +68,7 @@ 
    109109  
    110110 #include "sample.h" 
     
    114114 #ifdef SAMPLE_DEBUG 
    115115 enum { 
    116116        ATH_DEBUG_RATE          = 0x00000010,   /* rate control */ 
    117 Index: madwifi-dfs-r3053/tools/do_multi.c 
     117Index: madwifi-dfs-r3221/tools/do_multi.c 
    118118=================================================================== 
    119 --- madwifi-dfs-r3053.orig/tools/do_multi.c     2007-12-13 05:25:11.242266126 +0100 
    120 +++ madwifi-dfs-r3053/tools/do_multi.c  2007-12-13 05:25:13.362386947 +0100 
    121 @@ -9,16 +9,20 @@ 
     119--- madwifi-dfs-r3221.orig/tools/do_multi.c     2008-01-19 21:27:08.000000000 +0100 
     120+++ madwifi-dfs-r3221/tools/do_multi.c  2008-01-19 21:27:12.000000000 +0100 
     121@@ -9,16 +9,20 @@ main(int argc, char *argv[]) 
    122122  
    123123     progname = basename(argv[0]); 
    124124  
     
    139139     if(strcmp(progname, "athkey") == 0) 
    140140        ret =  athkey_init(argc, argv); 
    141141     if(strcmp(progname, "athstats") == 0) 
    142 Index: madwifi-dfs-r3053/tools/Makefile 
     142Index: madwifi-dfs-r3221/tools/Makefile 
    143143=================================================================== 
    144 --- madwifi-dfs-r3053.orig/tools/Makefile       2007-12-13 05:25:11.246266355 +0100 
    145 +++ madwifi-dfs-r3053/tools/Makefile    2007-12-13 05:25:13.362386947 +0100 
    146 @@ -48,7 +48,7 @@ 
     144--- madwifi-dfs-r3221.orig/tools/Makefile       2008-01-19 21:27:08.000000000 +0100 
     145+++ madwifi-dfs-r3221/tools/Makefile    2008-01-19 21:27:12.000000000 +0100 
     146@@ -48,7 +48,7 @@ endif 
    147147  
    148148  
    149149 ALLPROGS=      athstats 80211stats athkey athchans athctrl \ 
     
    152152  
    153153 OBJS=  $(patsubst %,%.o,$(ALLPROGS) do_multi) 
    154154 ALL=   ${OBJS} madwifi_multi 
    155 @@ -84,7 +84,7 @@ 
     155@@ -84,7 +84,7 @@ do_multi.o: do_multi.c 
    156156        ${CC} -c -o do_multi.o -DDOMULTI=1 ${ALL_CFLAGS} do_multi.c 
    157157 madwifi_multi: $(OBJS) 
    158158        ${CC} -o madwifi_multi ${LDFLAGS} ${OBJS} 
     
    161161        ln -s -f madwifi_multi $$i; \ 
    162162        done 
    163163  
    164 Index: madwifi-dfs-r3053/net80211/ieee80211_linux.h 
     164Index: madwifi-dfs-r3221/net80211/ieee80211_linux.h 
    165165=================================================================== 
    166 --- madwifi-dfs-r3053.orig/net80211/ieee80211_linux.h   2007-12-13 05:25:10.470222132 +0100 
    167 +++ madwifi-dfs-r3053/net80211/ieee80211_linux.h        2007-12-13 05:25:13.362386947 +0100 
     166--- madwifi-dfs-r3221.orig/net80211/ieee80211_linux.h   2008-01-19 21:27:02.000000000 +0100 
     167+++ madwifi-dfs-r3221/net80211/ieee80211_linux.h        2008-01-19 21:27:12.000000000 +0100 
    168168@@ -29,8 +29,8 @@ 
    169169 #ifndef _NET80211_IEEE80211_LINUX_H_ 
    170170 #define _NET80211_IEEE80211_LINUX_H_ 
  • package/madwifi/patches/400-net80211-compilation-fix.patch

     
     1Index: madwifi-dfs-r3221/net80211/ieee80211.c 
     2=================================================================== 
     3--- madwifi-dfs-r3221.orig/net80211/ieee80211.c 2008-01-19 13:35:16.000000000 +0100 
     4+++ madwifi-dfs-r3221/net80211/ieee80211.c      2008-01-19 21:40:15.000000000 +0100 
     5@@ -957,6 +957,7 @@ ieee80211_expire_dfs_channel_non_occupan 
     6                                        ic->ic_chanchange_tbtt = IEEE80211_RADAR_CHANCHANGE_TBTT_COUNT; 
     7                                        ic->ic_flags |= IEEE80211_F_CHANSWITCH; 
     8                                } else { 
     9+#ifdef IEEE80211_DEBUG 
     10                                        if (ieee80211_msg_is_reported(vap, IEEE80211_MSG_DOTH)) { 
     11                                                /* Find the desired channel in ic_channels, so 
     12                                                 * we can find the index into ic_chan_non_occupy */ 
     13@@ -974,6 +975,7 @@ ieee80211_expire_dfs_channel_non_occupan 
     14                                                                  ic->ic_chan_non_occupy[i_des_chan].tv_sec, 
     15                                                                  ic->ic_chan_non_occupy[i_des_chan].tv_usec); 
     16                                        } 
     17+#endif /* IEEE80211_DEBUG */                                    
     18                                } 
     19                        } 
     20                } 
  • package/madwifi/patches/105-ratectl_attach.patch

     
    1 Index: madwifi-dfs-r3053/net80211/ieee80211_rate.c 
     1Index: madwifi-dfs-r3221/net80211/ieee80211_rate.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/net80211/ieee80211_rate.c    2007-12-13 05:25:10.722236492 +0100 
    4 +++ madwifi-dfs-r3053/net80211/ieee80211_rate.c 2007-12-13 05:25:11.798297814 +0100 
    5 @@ -100,8 +100,18 @@ 
     3--- madwifi-dfs-r3221.orig/net80211/ieee80211_rate.c    2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/net80211/ieee80211_rate.c 2008-01-19 21:27:09.000000000 +0100 
     5@@ -100,8 +100,18 @@ struct ath_ratectrl *ieee80211_rate_atta 
    66                ieee80211_load_module(buf); 
    77  
    88        if (!ratectls[id].attach) { 
  • package/madwifi/patches/102-multicall_binary.patch

     
    1 Index: madwifi-dfs-r3053/tools/80211debug.c 
     1Index: madwifi-dfs-r3221/tools/80211debug.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/tools/80211debug.c   2007-12-13 05:25:10.786240140 +0100 
    4 +++ madwifi-dfs-r3053/tools/80211debug.c        2007-12-13 05:25:11.226265215 +0100 
     3--- madwifi-dfs-r3221.orig/tools/80211debug.c   2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/tools/80211debug.c        2008-01-19 21:27:08.000000000 +0100 
    55@@ -49,6 +49,10 @@ 
    66 #include <getopt.h> 
    77 #include <err.h> 
     
    1313 #undef ARRAY_SIZE 
    1414 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) 
    1515  
    16 @@ -184,9 +188,19 @@ 
     16@@ -184,9 +188,19 @@ sysctlbyname(const char *oid0, void *old 
    1717 } 
    1818 #endif /* __linux__ */ 
    1919  
     
    3333        const char *ifname = "ath0"; 
    3434        const char *cp, *tp; 
    3535        const char *sep; 
    36 Index: madwifi-dfs-r3053/tools/80211stats.c 
     36Index: madwifi-dfs-r3221/tools/80211stats.c 
    3737=================================================================== 
    38 --- madwifi-dfs-r3053.orig/tools/80211stats.c   2007-12-13 05:25:10.794240595 +0100 
    39 +++ madwifi-dfs-r3053/tools/80211stats.c        2007-12-13 05:25:11.226265215 +0100 
     38--- madwifi-dfs-r3221.orig/tools/80211stats.c   2008-01-19 21:27:02.000000000 +0100 
     39+++ madwifi-dfs-r3221/tools/80211stats.c        2008-01-19 21:27:08.000000000 +0100 
    4040@@ -60,6 +60,10 @@ 
    4141 #include "net80211/ieee80211_crypto.h" 
    4242 #include "net80211/ieee80211_ioctl.h" 
     
    4848 #ifndef SIOCG80211STATS 
    4949 #define        SIOCG80211STATS (SIOCDEVPRIVATE + 2) 
    5050 #endif 
    51 @@ -239,9 +243,19 @@ 
     51@@ -239,9 +243,19 @@ print_sta_stats(FILE *fd, const u_int8_t 
    5252 #undef STAT 
    5353 } 
    5454  
     
    6868        int c, len; 
    6969        struct ieee80211req_sta_info *si; 
    7070        u_int8_t buf[24*1024], *cp; 
    71 Index: madwifi-dfs-r3053/tools/athchans.c 
     71Index: madwifi-dfs-r3221/tools/athchans.c 
    7272=================================================================== 
    73 --- madwifi-dfs-r3053.orig/tools/athchans.c     2007-12-13 05:25:10.798240825 +0100 
    74 +++ madwifi-dfs-r3053/tools/athchans.c  2007-12-13 05:25:11.238265900 +0100 
     73--- madwifi-dfs-r3221.orig/tools/athchans.c     2008-01-19 21:27:02.000000000 +0100 
     74+++ madwifi-dfs-r3221/tools/athchans.c  2008-01-19 21:27:08.000000000 +0100 
    7575@@ -59,6 +59,10 @@ 
    7676 #include "net80211/ieee80211_crypto.h" 
    7777 #include "net80211/ieee80211_ioctl.h" 
     
    8383 static int s = -1; 
    8484 static const char *progname; 
    8585  
    86 @@ -139,9 +143,20 @@ 
     86@@ -139,9 +143,20 @@ usage(void) 
    8787 } 
    8888  
    8989 #define        MAXCHAN ((int)(sizeof(struct ieee80211req_chanlist) * NBBY)) 
     
    104104        const char *ifname = "wifi0"; 
    105105        struct ieee80211req_chanlist chanlist; 
    106106        int c; 
    107 Index: madwifi-dfs-r3053/tools/athctrl.c 
     107Index: madwifi-dfs-r3221/tools/athctrl.c 
    108108=================================================================== 
    109 --- madwifi-dfs-r3053.orig/tools/athctrl.c      2007-12-13 05:25:10.806241280 +0100 
    110 +++ madwifi-dfs-r3053/tools/athctrl.c   2007-12-13 05:25:11.242266126 +0100 
     109--- madwifi-dfs-r3221.orig/tools/athctrl.c      2008-01-19 21:27:02.000000000 +0100 
     110+++ madwifi-dfs-r3221/tools/athctrl.c   2008-01-19 21:27:08.000000000 +0100 
    111111@@ -53,6 +53,10 @@ 
    112112  
    113113 #include <net/if.h> 
     
    119119 static int 
    120120 setsysctrl(const char *dev, const char *control , u_long value) 
    121121 { 
    122 @@ -87,9 +91,19 @@ 
     122@@ -87,9 +91,19 @@ static void usage(void) 
    123123        exit(1); 
    124124 } 
    125125  
     
    139139        char device[IFNAMSIZ + 1]; 
    140140        int distance = -1; 
    141141        int c; 
    142 Index: madwifi-dfs-r3053/tools/athdebug.c 
     142Index: madwifi-dfs-r3221/tools/athdebug.c 
    143143=================================================================== 
    144 --- madwifi-dfs-r3053.orig/tools/athdebug.c     2007-12-13 05:25:10.814241735 +0100 
    145 +++ madwifi-dfs-r3053/tools/athdebug.c  2007-12-13 05:25:11.242266126 +0100 
     144--- madwifi-dfs-r3221.orig/tools/athdebug.c     2008-01-19 21:27:02.000000000 +0100 
     145+++ madwifi-dfs-r3221/tools/athdebug.c  2008-01-19 21:27:08.000000000 +0100 
    146146@@ -52,6 +52,10 @@ 
    147147 #include <getopt.h> 
    148148 #include <err.h> 
     
    154154 #undef ARRAY_SIZE 
    155155 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) 
    156156  
    157 @@ -193,9 +197,20 @@ 
     157@@ -193,9 +197,20 @@ sysctlbyname(const char *oid0, void *old 
    158158 } 
    159159 #endif /* __linux__ */ 
    160160  
     
    175175 #ifdef __linux__ 
    176176        const char *ifname = "wifi0"; 
    177177 #else 
    178 Index: madwifi-dfs-r3053/tools/athkey.c 
     178Index: madwifi-dfs-r3221/tools/athkey.c 
    179179=================================================================== 
    180 --- madwifi-dfs-r3053.orig/tools/athkey.c       2007-12-13 05:25:10.818241964 +0100 
    181 +++ madwifi-dfs-r3053/tools/athkey.c    2007-12-13 05:25:11.242266126 +0100 
     180--- madwifi-dfs-r3221.orig/tools/athkey.c       2008-01-19 21:27:02.000000000 +0100 
     181+++ madwifi-dfs-r3221/tools/athkey.c    2008-01-19 21:27:08.000000000 +0100 
    182182@@ -59,6 +59,10 @@ 
    183183 #include "net80211/ieee80211_crypto.h" 
    184184 #include "net80211/ieee80211_ioctl.h" 
     
    190190 static int s = -1; 
    191191 static const char *progname; 
    192192  
    193 @@ -212,9 +216,19 @@ 
     193@@ -212,9 +216,19 @@ usage(void) 
    194194        exit(-1); 
    195195 } 
    196196  
     
    210210        const char *ifname = "wifi0"; 
    211211        struct ieee80211req_key setkey; 
    212212        struct ieee80211req_del_key delkey; 
    213 Index: madwifi-dfs-r3053/tools/athstats.c 
     213Index: madwifi-dfs-r3221/tools/athstats.c 
    214214=================================================================== 
    215 --- madwifi-dfs-r3053.orig/tools/athstats.c     2007-12-13 05:25:10.826242419 +0100 
    216 +++ madwifi-dfs-r3053/tools/athstats.c  2007-12-13 05:25:11.242266126 +0100 
     215--- madwifi-dfs-r3221.orig/tools/athstats.c     2008-01-19 21:27:02.000000000 +0100 
     216+++ madwifi-dfs-r3221/tools/athstats.c  2008-01-19 21:27:08.000000000 +0100 
    217217@@ -66,6 +66,10 @@ 
    218218 #undef ARRAY_SIZE 
    219219 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) 
     
    225225 static const struct { 
    226226        u_int           phyerr; 
    227227        const char*     desc; 
    228 @@ -227,9 +231,20 @@ 
     228@@ -227,9 +231,20 @@ catchalarm(int signo) 
    229229        signalled = 1; 
    230230 } 
    231231  
     
    246246 #ifdef __linux__ 
    247247        const char *ifname = "wifi0"; 
    248248 #else 
    249 Index: madwifi-dfs-r3053/tools/do_multi.c 
     249Index: madwifi-dfs-r3221/tools/do_multi.c 
    250250=================================================================== 
    251251--- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    252 +++ madwifi-dfs-r3053/tools/do_multi.c  2007-12-13 05:25:11.242266126 +0100 
     252+++ madwifi-dfs-r3221/tools/do_multi.c  2008-01-19 21:27:08.000000000 +0100 
    253253@@ -0,0 +1,32 @@ 
    254254+#include <string.h> 
    255255+#include "do_multi.h" 
     
    283283+ 
    284284+    return ret; 
    285285+} 
    286 Index: madwifi-dfs-r3053/tools/do_multi.h 
     286Index: madwifi-dfs-r3221/tools/do_multi.h 
    287287=================================================================== 
    288288--- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    289 +++ madwifi-dfs-r3053/tools/do_multi.h  2007-12-13 05:25:11.246266355 +0100 
     289+++ madwifi-dfs-r3221/tools/do_multi.h  2008-01-19 21:27:08.000000000 +0100 
    290290@@ -0,0 +1,10 @@ 
    291291+ 
    292292+int a80211debug_init(int argc, char *argv[]); 
     
    298298+int athstats_init(int argc, char *argv[]); 
    299299+int wlanconfig_init(int argc, char *argv[]); 
    300300+int athinfo_init(int argc, char *argv[]); 
    301 Index: madwifi-dfs-r3053/tools/Makefile 
     301Index: madwifi-dfs-r3221/tools/Makefile 
    302302=================================================================== 
    303 --- madwifi-dfs-r3053.orig/tools/Makefile       2007-12-13 05:25:10.842243330 +0100 
    304 +++ madwifi-dfs-r3053/tools/Makefile    2007-12-13 05:25:11.246266355 +0100 
    305 @@ -47,9 +47,12 @@ 
     303--- madwifi-dfs-r3221.orig/tools/Makefile       2008-01-19 21:27:02.000000000 +0100 
     304+++ madwifi-dfs-r3221/tools/Makefile    2008-01-19 21:27:08.000000000 +0100 
     305@@ -47,9 +47,12 @@ HAL=   $(TOP)/hal 
    306306 endif 
    307307  
    308308  
     
    316316 all:   $(ALL) 
    317317  
    318318 INCS=  -I. -I$(HAL) -I$(TOP) -I$(ATH_HAL) 
    319 @@ -59,25 +62,31 @@ 
     319@@ -59,25 +62,31 @@ LDFLAGS= 
    320320  
    321321 all:   $(ALL) 
    322322  
     
    367367  
    368368 install: $(ALL)  
    369369        install -d $(DESTDIR)$(BINDIR) 
    370 Index: madwifi-dfs-r3053/tools/wlanconfig.c 
     370Index: madwifi-dfs-r3221/tools/wlanconfig.c 
    371371=================================================================== 
    372 --- madwifi-dfs-r3053.orig/tools/wlanconfig.c   2007-12-13 05:25:10.850243788 +0100 
    373 +++ madwifi-dfs-r3053/tools/wlanconfig.c        2007-12-13 05:25:11.246266355 +0100 
     372--- madwifi-dfs-r3221.orig/tools/wlanconfig.c   2008-01-19 21:27:02.000000000 +0100 
     373+++ madwifi-dfs-r3221/tools/wlanconfig.c        2008-01-19 21:27:08.000000000 +0100 
    374374@@ -62,6 +62,10 @@ 
    375375 #include "net80211/ieee80211_crypto.h" 
    376376 #include "net80211/ieee80211_ioctl.h" 
     
    382382 /* 
    383383  * These are taken from ieee80211_node.h 
    384384  */ 
    385 @@ -99,9 +103,19 @@ 
     385@@ -99,9 +103,19 @@ size_t strlcat(char *, const char *, siz 
    386386  
    387387 static int verbose = 0; 
    388388  
     
    402402        const char *ifname, *cmd; 
    403403        unsigned char bnounit = 0; 
    404404        char *if_base = NULL; 
    405 Index: madwifi-dfs-r3053/tools/ath_info.c 
     405Index: madwifi-dfs-r3221/tools/ath_info.c 
    406406=================================================================== 
    407 --- madwifi-dfs-r3053.orig/tools/ath_info.c     2007-12-13 05:25:10.858244244 +0100 
    408 +++ madwifi-dfs-r3053/tools/ath_info.c  2007-12-13 05:25:11.246266355 +0100 
    409 @@ -738,7 +738,12 @@ 
     407--- madwifi-dfs-r3221.orig/tools/ath_info.c     2008-01-19 21:27:02.000000000 +0100 
     408+++ madwifi-dfs-r3221/tools/ath_info.c  2008-01-19 21:27:08.000000000 +0100 
     409@@ -738,7 +738,12 @@ static void usage(const char *n) 
    410410                "unlawful radio transmissions!\n\n"); 
    411411 } 
    412412  
  • package/madwifi/patches/100-kernel_cflags.patch

     
    1 Index: madwifi-dfs-r3053/hal/public/mips-be-elf.inc 
     1Index: madwifi-dfs-r3221/hal/public/mips-be-elf.inc 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/hal/public/mips-be-elf.inc   2007-12-13 05:25:10.890246068 +0100 
    4 +++ madwifi-dfs-r3053/hal/public/mips-be-elf.inc        2007-12-13 05:25:10.986251538 +0100 
    5 @@ -71,5 +71,5 @@ 
     3--- madwifi-dfs-r3221.orig/hal/public/mips-be-elf.inc   2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/hal/public/mips-be-elf.inc        2008-01-19 21:27:07.000000000 +0100 
     5@@ -71,5 +71,5 @@ AH_REGOPS_FUNC=1 
    66  
    77 LDOPTS=        -EB 
    88 COPTS+=        -DAH_BYTE_ORDER=AH_BIG_ENDIAN 
    99-COPTS+=        -G 0 -EB -mno-abicalls -fno-pic -mips2 -Wa,--trap \ 
    1010+COPTS+=        -G 0 -mno-abicalls -fno-pic -mips32 -Wa,--trap \ 
    1111        -fno-strict-aliasing -fno-common -fomit-frame-pointer -mlong-calls 
    12 Index: madwifi-dfs-r3053/hal/public/mips-le-elf.inc 
     12Index: madwifi-dfs-r3221/hal/public/mips-le-elf.inc 
    1313=================================================================== 
    14 --- madwifi-dfs-r3053.orig/hal/public/mips-le-elf.inc   2007-12-13 05:25:10.898246523 +0100 
    15 +++ madwifi-dfs-r3053/hal/public/mips-le-elf.inc        2007-12-13 05:25:10.994251993 +0100 
    16 @@ -68,5 +68,5 @@ 
     14--- madwifi-dfs-r3221.orig/hal/public/mips-le-elf.inc   2008-01-19 21:27:02.000000000 +0100 
     15+++ madwifi-dfs-r3221/hal/public/mips-le-elf.inc        2008-01-19 21:27:07.000000000 +0100 
     16@@ -68,5 +68,5 @@ AH_REGOPS_FUNC=1 
    1717  
    1818 LDOPTS=        -EL 
    1919 COPTS+=        -DAH_BYTE_ORDER=AH_LITTLE_ENDIAN 
    2020-COPTS+=        -G 0 -EL -mno-abicalls -fno-pic -mips2 -Wa,--trap \ 
    2121+COPTS+=        -G 0 -mno-abicalls -fno-pic -mips32 -Wa,--trap \ 
    2222        -fno-strict-aliasing -fno-common -fomit-frame-pointer -mlong-calls 
    23 Index: madwifi-dfs-r3053/hal/public/xscale-be-elf.inc 
     23Index: madwifi-dfs-r3221/hal/public/xscale-be-elf.inc 
    2424=================================================================== 
    25 --- madwifi-dfs-r3053.orig/hal/public/xscale-be-elf.inc 2007-12-13 05:25:10.906246979 +0100 
    26 +++ madwifi-dfs-r3053/hal/public/xscale-be-elf.inc      2007-12-13 05:25:10.998252222 +0100 
    27 @@ -77,5 +77,5 @@ 
     25--- madwifi-dfs-r3221.orig/hal/public/xscale-be-elf.inc 2008-01-19 21:27:02.000000000 +0100 
     26+++ madwifi-dfs-r3221/hal/public/xscale-be-elf.inc      2008-01-19 21:27:07.000000000 +0100 
     27@@ -77,5 +77,5 @@ AH_REGOPS_FUNC=1 
    2828  
    2929 LDOPTS=        -EB 
    3030 COPTS+=        -DAH_BYTE_ORDER=AH_BIG_ENDIAN 
  • package/madwifi/patches/305-pureg_fix.patch

     
    1 Index: madwifi-dfs-r3053/ath/if_ath.c 
     1Index: madwifi-dfs-r3221/ath/if_ath.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:13.662404044 +0100 
    4 +++ madwifi-dfs-r3053/ath/if_ath.c      2007-12-13 05:25:13.934419543 +0100 
    5 @@ -3973,7 +3973,9 @@ 
     3--- madwifi-dfs-r3221.orig/ath/if_ath.c 2008-01-19 21:27:13.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath/if_ath.c      2008-01-19 21:27:13.000000000 +0100 
     5@@ -4084,7 +4084,9 @@ ath_calcrxfilter(struct ath_softc *sc) 
    66                rfilt |= HAL_RX_FILTER_PROM; 
    77        if (ic->ic_opmode == IEEE80211_M_STA || 
    88            sc->sc_opmode == HAL_M_IBSS ||      /* NB: AHDEMO too */ 
     
    1313                rfilt |= HAL_RX_FILTER_BEACON; 
    1414        if (sc->sc_nmonvaps > 0) 
    1515                rfilt |= (HAL_RX_FILTER_CONTROL | HAL_RX_FILTER_BEACON | 
    16 Index: madwifi-dfs-r3053/net80211/ieee80211_input.c 
     16Index: madwifi-dfs-r3221/net80211/ieee80211_input.c 
    1717=================================================================== 
    18 --- madwifi-dfs-r3053.orig/net80211/ieee80211_input.c   2007-12-13 05:25:13.674404726 +0100 
    19 +++ madwifi-dfs-r3053/net80211/ieee80211_input.c        2007-12-13 05:25:13.938419772 +0100 
    20 @@ -329,11 +329,12 @@ 
     18--- madwifi-dfs-r3221.orig/net80211/ieee80211_input.c   2008-01-19 21:27:13.000000000 +0100 
     19+++ madwifi-dfs-r3221/net80211/ieee80211_input.c        2008-01-19 21:27:13.000000000 +0100 
     20@@ -346,11 +346,12 @@ ieee80211_input(struct ieee80211vap * va 
    2121                                bssid = wh->i_addr3; 
    2222                        } 
    2323                        /* 
    2424-                        * Validate the bssid. 
    25 +                        * Validate the bssid. Let beacons get through though for 11g protection mode. 
     25+                        * Validate the bssid. Let beacons get through though for 11g protection mode. 
    2626                         */ 
    2727 #ifdef ATH_SUPERG_XR 
    28                         if (!IEEE80211_ADDR_EQ(bssid, vap->iv_bss->ni_bssid) && 
     28                        if (!IEEE80211_ADDR_EQ(bssid, vap->iv_bssid) && 
    2929-                           !IEEE80211_ADDR_EQ(bssid, dev->broadcast)) { 
    3030+                           !IEEE80211_ADDR_EQ(bssid, dev->broadcast) && 
    31 +                               (subtype != IEEE80211_FC0_SUBTYPE_BEACON)) { 
     31+                               (subtype != IEEE80211_FC0_SUBTYPE_BEACON)) { 
    3232                                /* 
    3333                                 * allow MGT frames to vap->iv_xrvap. 
    3434                                 * this will allow roaming between  XR and normal vaps 
    35 @@ -352,7 +353,8 @@ 
     35@@ -369,7 +370,8 @@ ieee80211_input(struct ieee80211vap * va 
    3636                        } 
    3737 #else 
    38                         if (!IEEE80211_ADDR_EQ(bssid, vap->iv_bss->ni_bssid) && 
     38                        if (!IEEE80211_ADDR_EQ(bssid, vap->iv_bssid) && 
    3939-                           !IEEE80211_ADDR_EQ(bssid, dev->broadcast)) { 
    40 +                           !IEEE80211_ADDR_EQ(bssid, dev->broadcast) && 
    41 +                               (subtype != IEEE80211_FC0_SUBTYPE_BEACON)) { 
     40+                           !IEEE80211_ADDR_EQ(bssid, dev->broadcast) && 
     41+                               (subtype != IEEE80211_FC0_SUBTYPE_BEACON)) { 
    4242                                /* not interested in */ 
    4343                                IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, 
    4444                                        bssid, NULL, "%s", "not to bss"); 
    45 @@ -2971,7 +2973,7 @@ 
     45@@ -3030,7 +3032,7 @@ ieee80211_recv_mgmt(struct ieee80211vap  
    4646        u_int8_t *frm, *efrm; 
    4747        u_int8_t *ssid, *rates, *xrates, *suppchan, *wpa, *rsn, *wme, *ath; 
    4848        u_int8_t rate; 
     
    5151        u_int8_t qosinfo; 
    5252  
    5353        if (ni_or_null == NULL) 
    54 @@ -2996,11 +2998,15 @@ 
     54@@ -3060,11 +3062,15 @@ ieee80211_recv_mgmt(struct ieee80211vap  
    5555                 *    o station mode when associated (to collect state 
    5656                 *      updates such as 802.11g slot time), or 
    5757                 *    o adhoc mode (to discover neighbors) 
     
    6868                        vap->iv_stats.is_rx_mgtdiscard++; 
    6969                        return; 
    7070                } 
    71 @@ -3083,6 +3089,7 @@ 
     71@@ -3147,6 +3153,7 @@ ieee80211_recv_mgmt(struct ieee80211vap  
    7272                                        break; 
    7373                                } 
    7474                                scan.erp = frm[2]; 
     
    7676                                break; 
    7777                        case IEEE80211_ELEMID_RSN: 
    7878                                scan.rsn = frm; 
    79 @@ -3300,6 +3307,20 @@ 
     79@@ -3364,6 +3371,20 @@ ieee80211_recv_mgmt(struct ieee80211vap  
    8080                                ieee80211_bg_scan(vap); 
    8181                        return; 
    8282                } 
     
    9797                /* 
    9898                 * If scanning, just pass information to the scan module. 
    9999                 */ 
    100 Index: madwifi-dfs-r3053/net80211/ieee80211_node.c 
     100Index: madwifi-dfs-r3221/net80211/ieee80211_node.c 
    101101=================================================================== 
    102 --- madwifi-dfs-r3053.orig/net80211/ieee80211_node.c    2007-12-13 05:25:10.314213240 +0100 
    103 +++ madwifi-dfs-r3053/net80211/ieee80211_node.c 2007-12-13 05:25:13.938419772 +0100 
    104 @@ -380,10 +380,16 @@ 
     102--- madwifi-dfs-r3221.orig/net80211/ieee80211_node.c    2008-01-19 21:27:02.000000000 +0100 
     103+++ madwifi-dfs-r3221/net80211/ieee80211_node.c 2008-01-19 21:27:13.000000000 +0100 
     104@@ -383,10 +383,16 @@ ieee80211_create_ibss(struct ieee80211va 
    105105        /* Update country ie information */ 
    106106        ieee80211_build_countryie(ic); 
    107107  
     
    120120  
    121121        (void) ieee80211_sta_join1(PASS_NODE(ni)); 
    122122 } 
    123 Index: madwifi-dfs-r3053/net80211/ieee80211_proto.c 
     123Index: madwifi-dfs-r3221/net80211/ieee80211_proto.c 
    124124=================================================================== 
    125 --- madwifi-dfs-r3053.orig/net80211/ieee80211_proto.c   2007-12-13 05:25:10.322213696 +0100 
    126 +++ madwifi-dfs-r3053/net80211/ieee80211_proto.c        2007-12-13 05:25:13.942420001 +0100 
    127 @@ -584,6 +584,28 @@ 
     125--- madwifi-dfs-r3221.orig/net80211/ieee80211_proto.c   2008-01-19 21:27:02.000000000 +0100 
     126+++ madwifi-dfs-r3221/net80211/ieee80211_proto.c        2008-01-19 21:27:13.000000000 +0100 
     127@@ -595,6 +595,28 @@ static const struct ieee80211_rateset ba 
    128128        { 4, { 2, 4, 11, 22 } },        /* IEEE80211_MODE_TURBO_G (mixed b/g) */ 
    129129 }; 
    130130  
     
    153153 /* 
    154154  * Mark the basic rates for the 11g rate table based on the 
    155155  * specified mode.  For 11b compatibility we mark only 11b 
    156 Index: madwifi-dfs-r3053/net80211/ieee80211_var.h 
     156Index: madwifi-dfs-r3221/net80211/ieee80211_var.h 
    157157=================================================================== 
    158 --- madwifi-dfs-r3053.orig/net80211/ieee80211_var.h     2007-12-13 05:25:10.330214154 +0100 
    159 +++ madwifi-dfs-r3053/net80211/ieee80211_var.h  2007-12-13 05:25:13.942420001 +0100 
    160 @@ -668,6 +668,7 @@ 
     158--- madwifi-dfs-r3221.orig/net80211/ieee80211_var.h     2008-01-19 21:27:02.000000000 +0100 
     159+++ madwifi-dfs-r3221/net80211/ieee80211_var.h  2008-01-19 21:27:13.000000000 +0100 
     160@@ -685,6 +685,7 @@ int ieee80211_media_setup(struct ieee802 
    161161 void ieee80211_build_sc_ie(struct ieee80211com *); 
    162162 void ieee80211_dfs_action(struct ieee80211com *); 
    163163 void ieee80211_expire_channel_non_occupancy_restrictions(struct ieee80211com *); 
  • package/madwifi/patches/113-no_ibss_pwrsave.patch

     
    1 Index: madwifi-dfs-r3053/net80211/ieee80211_scan.c 
     1Index: madwifi-dfs-r3221/net80211/ieee80211_scan.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/net80211/ieee80211_scan.c    2007-12-13 05:25:10.658232846 +0100 
    4 +++ madwifi-dfs-r3053/net80211/ieee80211_scan.c 2007-12-13 05:25:12.214321521 +0100 
    5 @@ -291,7 +291,8 @@ 
     3--- madwifi-dfs-r3221.orig/net80211/ieee80211_scan.c    2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/net80211/ieee80211_scan.c 2008-01-19 21:27:10.000000000 +0100 
     5@@ -291,7 +291,8 @@ scan_restart_pwrsav(unsigned long arg) 
    66        struct ieee80211com *ic = vap->iv_ic; 
    77        int delay; 
    88  
  • package/madwifi/patches/122-replayfail_workaround.patch

     
    1 Index: madwifi-dfs-r3053/net80211/ieee80211_linux.c 
     1Index: madwifi-dfs-r3221/net80211/ieee80211_linux.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/net80211/ieee80211_linux.c   2007-12-13 05:25:10.626231021 +0100 
    4 +++ madwifi-dfs-r3053/net80211/ieee80211_linux.c        2007-12-13 05:25:12.422333377 +0100 
    5 @@ -331,6 +331,9 @@ 
     3--- madwifi-dfs-r3221.orig/net80211/ieee80211_linux.c   2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/net80211/ieee80211_linux.c        2008-01-19 21:27:11.000000000 +0100 
     5@@ -331,6 +331,9 @@ ieee80211_notify_replay_failure(struct i 
    66                k->wk_cipher->ic_name, k->wk_keyix, 
    7                 (unsigned long long)rsc ); 
     7                (unsigned long long)rsc); 
    88  
    99+       /* disabled for now due to bogus events for unknown reasons */ 
    1010+       return; 
  • package/madwifi/patches/123-ccmp_checks.patch

     
    1 Index: madwifi-dfs-r3053/net80211/ieee80211_crypto_ccmp.c 
     1Index: madwifi-dfs-r3221/net80211/ieee80211_crypto_ccmp.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/net80211/ieee80211_crypto_ccmp.c     2007-12-13 05:25:10.594229197 +0100 
    4 +++ madwifi-dfs-r3053/net80211/ieee80211_crypto_ccmp.c  2007-12-13 05:25:12.634345457 +0100 
    5 @@ -475,6 +475,9 @@ 
     3--- madwifi-dfs-r3221.orig/net80211/ieee80211_crypto_ccmp.c     2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/net80211/ieee80211_crypto_ccmp.c  2008-01-19 21:27:11.000000000 +0100 
     5@@ -475,6 +475,9 @@ ccmp_encrypt(struct ieee80211_key *key,  
    66        uint8_t *mic, *pos; 
    77        u_int space; 
    88  
     
    1212        ctx->cc_vap->iv_stats.is_crypto_ccmp++; 
    1313  
    1414        skb = skb0; 
    15 @@ -589,6 +592,9 @@ 
     15@@ -589,6 +592,9 @@ ccmp_decrypt(struct ieee80211_key *key,  
    1616        uint8_t *pos, *mic; 
    1717        u_int space; 
    1818  
  • package/madwifi/patches/126-rxerr_frames.patch

     
    1 Index: madwifi-dfs-r3053/ath/if_ath.c 
     1Index: madwifi-dfs-r3221/ath/if_ath.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:12.854357994 +0100 
    4 +++ madwifi-dfs-r3053/ath/if_ath.c      2007-12-13 05:25:13.122373270 +0100 
    5 @@ -6410,8 +6410,9 @@ 
     3--- madwifi-dfs-r3221.orig/ath/if_ath.c 2008-01-19 21:27:12.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath/if_ath.c      2008-01-19 21:27:12.000000000 +0100 
     5@@ -6534,8 +6534,9 @@ ath_rx_tasklet(TQUEUE_ARG data) 
    66                        /* 
    77                         * Reject error frames if we have no vaps that 
    88                         * are operating in monitor mode. 
  • package/madwifi/patches/309-micfail_detect.patch

     
    1 Index: madwifi-dfs-r3053/ath/if_ath.c 
     1Index: madwifi-dfs-r3221/ath/if_ath.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:13.934419543 +0100 
    4 +++ madwifi-dfs-r3053/ath/if_ath.c      2007-12-13 05:25:14.210435274 +0100 
    5 @@ -6322,6 +6322,7 @@ 
     3--- madwifi-dfs-r3221.orig/ath/if_ath.c 2008-01-19 21:27:13.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath/if_ath.c      2008-01-19 21:27:14.000000000 +0100 
     5@@ -6443,6 +6443,7 @@ ath_rx_poll(struct net_device *dev, int  
    66        u_int phyerr; 
    77        u_int processed = 0, early_stop = 0; 
    88        u_int rx_limit = dev->quota; 
     
    1010  
    1111        DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s\n", __func__); 
    1212 process_rx_again: 
    13 @@ -6418,24 +6419,8 @@ 
     13@@ -6542,24 +6543,8 @@ process_rx_again: 
    1414                        } 
    1515                        if (rs->rs_status & HAL_RXERR_MIC) { 
    1616                                sc->sc_stats.ast_rx_badmic++; 
     
    2626-#if 0 
    2727-/* XXX revalidate MIC, lookup ni to find VAP */ 
    2828-                                       ieee80211_notify_michael_failure(ic, 
    29 -                                           (struct ieee80211_frame *) skb->data, 
     29-                                           (struct ieee80211_frame *)skb->data, 
    3030-                                           sc->sc_splitmic ? 
    3131-                                               rs->rs_keyix - 32 : rs->rs_keyix 
    3232-                                       ); 
     
    3737                        } 
    3838                        /* 
    3939                         * Reject error frames if we have no vaps that 
    40 @@ -6494,8 +6479,9 @@ 
     40@@ -6612,8 +6597,9 @@ rx_accept: 
    4141                /* 
    4242                 * Finished monitor mode handling, now reject 
    4343                 * error frames before passing to other vaps 
     
    4848                        ieee80211_dev_kfree_skb(&skb); 
    4949                        goto rx_next; 
    5050                } 
    51 @@ -6503,6 +6489,26 @@ 
     51@@ -6621,6 +6607,26 @@ rx_accept: 
    5252                /* remove the CRC */ 
    5353                skb_trim(skb, skb->len - IEEE80211_CRC_LEN); 
    5454  
     
    7575                /* 
    7676                 * From this point on we assume the frame is at least 
    7777                 * as large as ieee80211_frame_min; verify that. 
    78 @@ -6524,6 +6530,7 @@ 
    79                                    sc->sc_hwmap[rs->rs_rate].ieeerate, 
    80                                    rs->rs_rssi); 
     78@@ -6633,6 +6639,7 @@ rx_accept: 
     79                        goto rx_next; 
     80                } 
    8181  
    8282+               /* MIC failure. Drop the packet in any case */ 
    8383                /* 
    84                  * Locate the node for sender, track state, and then 
    85                  * pass the (referenced) node up to the 802.11 layer 
    86 Index: madwifi-dfs-r3053/net80211/ieee80211_crypto_ccmp.c 
     84                 * Normal receive. 
     85                 */ 
     86Index: madwifi-dfs-r3221/net80211/ieee80211_crypto_ccmp.c 
    8787=================================================================== 
    88 --- madwifi-dfs-r3053.orig/net80211/ieee80211_crypto_ccmp.c     2007-12-13 05:25:12.634345457 +0100 
    89 +++ madwifi-dfs-r3053/net80211/ieee80211_crypto_ccmp.c  2007-12-13 05:25:14.210435274 +0100 
    90 @@ -73,7 +73,7 @@ 
     88--- madwifi-dfs-r3221.orig/net80211/ieee80211_crypto_ccmp.c     2008-01-19 21:27:11.000000000 +0100 
     89+++ madwifi-dfs-r3221/net80211/ieee80211_crypto_ccmp.c  2008-01-19 21:27:14.000000000 +0100 
     90@@ -73,7 +73,7 @@ static int ccmp_setkey(struct ieee80211_ 
    9191 static int ccmp_encap(struct ieee80211_key *, struct sk_buff *, u_int8_t); 
    9292 static int ccmp_decap(struct ieee80211_key *, struct sk_buff *, int); 
    9393 static int ccmp_enmic(struct ieee80211_key *, struct sk_buff *, int); 
     
    9696  
    9797 static const struct ieee80211_cipher ccmp = { 
    9898        .ic_name        = "AES-CCM", 
    99 @@ -308,7 +308,7 @@ 
     99@@ -308,7 +308,7 @@ ccmp_decap(struct ieee80211_key *k, stru 
    100100  * Verify and strip MIC from the frame. 
    101101  */ 
    102102 static int 
     
    105105 { 
    106106        return 1; 
    107107 } 
    108 Index: madwifi-dfs-r3053/net80211/ieee80211_crypto.h 
     108Index: madwifi-dfs-r3221/net80211/ieee80211_crypto.h 
    109109=================================================================== 
    110 --- madwifi-dfs-r3053.orig/net80211/ieee80211_crypto.h  2007-12-13 05:25:10.214207541 +0100 
    111 +++ madwifi-dfs-r3053/net80211/ieee80211_crypto.h       2007-12-13 05:25:14.210435274 +0100 
    112 @@ -145,7 +145,7 @@ 
     110--- madwifi-dfs-r3221.orig/net80211/ieee80211_crypto.h  2008-01-19 21:27:02.000000000 +0100 
     111+++ madwifi-dfs-r3221/net80211/ieee80211_crypto.h       2008-01-19 21:27:14.000000000 +0100 
     112@@ -145,7 +145,7 @@ struct ieee80211_cipher { 
    113113        int (*ic_encap)(struct ieee80211_key *, struct sk_buff *, u_int8_t); 
    114114        int (*ic_decap)(struct ieee80211_key *, struct sk_buff *, int); 
    115115        int (*ic_enmic)(struct ieee80211_key *, struct sk_buff *, int); 
     
    118118 }; 
    119119 extern const struct ieee80211_cipher ieee80211_cipher_none; 
    120120  
    121 @@ -163,10 +163,10 @@ 
     121@@ -163,10 +163,10 @@ struct ieee80211_key *ieee80211_crypto_d 
    122122  */ 
    123123 static __inline int 
    124124 ieee80211_crypto_demic(struct ieee80211vap *vap, struct ieee80211_key *k, 
     
    131131 } 
    132132  
    133133 /* 
    134 Index: madwifi-dfs-r3053/net80211/ieee80211_crypto_none.c 
     134Index: madwifi-dfs-r3221/net80211/ieee80211_crypto_none.c 
    135135=================================================================== 
    136 --- madwifi-dfs-r3053.orig/net80211/ieee80211_crypto_none.c     2007-12-13 05:25:10.218207770 +0100 
    137 +++ madwifi-dfs-r3053/net80211/ieee80211_crypto_none.c  2007-12-13 05:25:14.214435503 +0100 
    138 @@ -52,7 +52,7 @@ 
     136--- madwifi-dfs-r3221.orig/net80211/ieee80211_crypto_none.c     2008-01-19 21:27:02.000000000 +0100 
     137+++ madwifi-dfs-r3221/net80211/ieee80211_crypto_none.c  2008-01-19 21:27:14.000000000 +0100 
     138@@ -52,7 +52,7 @@ static int none_setkey(struct ieee80211_ 
    139139 static int none_encap(struct ieee80211_key *, struct sk_buff *, u_int8_t); 
    140140 static int none_decap(struct ieee80211_key *, struct sk_buff *, int); 
    141141 static int none_enmic(struct ieee80211_key *, struct sk_buff *, int); 
     
    144144  
    145145 const struct ieee80211_cipher ieee80211_cipher_none = { 
    146146        .ic_name        = "NONE", 
    147 @@ -137,7 +137,7 @@ 
     147@@ -137,7 +137,7 @@ none_enmic(struct ieee80211_key *k, stru 
    148148 } 
    149149  
    150150 static int 
     
    153153 { 
    154154        struct ieee80211vap *vap = k->wk_private; 
    155155  
    156 Index: madwifi-dfs-r3053/net80211/ieee80211_crypto_tkip.c 
     156Index: madwifi-dfs-r3221/net80211/ieee80211_crypto_tkip.c 
    157157=================================================================== 
    158 --- madwifi-dfs-r3053.orig/net80211/ieee80211_crypto_tkip.c     2007-12-13 05:25:10.226208226 +0100 
    159 +++ madwifi-dfs-r3053/net80211/ieee80211_crypto_tkip.c  2007-12-13 05:25:14.214435503 +0100 
    160 @@ -57,7 +57,7 @@ 
     158--- madwifi-dfs-r3221.orig/net80211/ieee80211_crypto_tkip.c     2008-01-19 21:27:02.000000000 +0100 
     159+++ madwifi-dfs-r3221/net80211/ieee80211_crypto_tkip.c  2008-01-19 21:27:14.000000000 +0100 
     160@@ -57,7 +57,7 @@ static int tkip_setkey(struct ieee80211_ 
    161161 static int tkip_encap(struct ieee80211_key *, struct sk_buff *, u_int8_t); 
    162162 static int tkip_enmic(struct ieee80211_key *, struct sk_buff *, int); 
    163163 static int tkip_decap(struct ieee80211_key *, struct sk_buff *, int); 
     
    166166  
    167167 static const struct ieee80211_cipher tkip  = { 
    168168        .ic_name        = "TKIP", 
    169 @@ -339,7 +339,7 @@ 
     169@@ -339,7 +339,7 @@ tkip_decap(struct ieee80211_key *k, stru 
    170170  * Verify and strip MIC from the frame. 
    171171  */ 
    172172 static int 
     
    175175 { 
    176176        struct tkip_ctx *ctx = k->wk_private; 
    177177        struct sk_buff *skb; 
    178 @@ -355,7 +355,7 @@ 
     178@@ -355,7 +355,7 @@ tkip_demic(struct ieee80211_key *k, stru 
    179179        } 
    180180        wh = (struct ieee80211_frame *) skb0->data; 
    181181        /* NB: skb left pointing at last in chain */ 
     
    184184                struct ieee80211vap *vap = ctx->tc_vap; 
    185185                u8 mic[IEEE80211_WEP_MICLEN]; 
    186186                u8 mic0[IEEE80211_WEP_MICLEN]; 
    187 Index: madwifi-dfs-r3053/net80211/ieee80211_crypto_wep.c 
     187Index: madwifi-dfs-r3221/net80211/ieee80211_crypto_wep.c 
    188188=================================================================== 
    189 --- madwifi-dfs-r3053.orig/net80211/ieee80211_crypto_wep.c      2007-12-13 05:25:10.234208681 +0100 
    190 +++ madwifi-dfs-r3053/net80211/ieee80211_crypto_wep.c   2007-12-13 05:25:14.214435503 +0100 
    191 @@ -54,7 +54,7 @@ 
     189--- madwifi-dfs-r3221.orig/net80211/ieee80211_crypto_wep.c      2008-01-19 21:27:02.000000000 +0100 
     190+++ madwifi-dfs-r3221/net80211/ieee80211_crypto_wep.c   2008-01-19 21:27:14.000000000 +0100 
     191@@ -54,7 +54,7 @@ static int wep_setkey(struct ieee80211_k 
    192192 static int wep_encap(struct ieee80211_key *, struct sk_buff *, u_int8_t); 
    193193 static int wep_decap(struct ieee80211_key *, struct sk_buff *, int); 
    194194 static int wep_enmic(struct ieee80211_key *, struct sk_buff *, int); 
     
    197197  
    198198 static const struct ieee80211_cipher wep = { 
    199199        .ic_name        = "WEP", 
    200 @@ -244,7 +244,7 @@ 
     200@@ -244,7 +244,7 @@ wep_decap(struct ieee80211_key *k, struc 
    201201  * Verify and strip MIC from the frame. 
    202202  */ 
    203203 static int 
     
    206206 { 
    207207        return 1; 
    208208 } 
    209 Index: madwifi-dfs-r3053/net80211/ieee80211_input.c 
     209Index: madwifi-dfs-r3221/net80211/ieee80211_input.c 
    210210=================================================================== 
    211 --- madwifi-dfs-r3053.orig/net80211/ieee80211_input.c   2007-12-13 05:25:13.938419772 +0100 
    212 +++ madwifi-dfs-r3053/net80211/ieee80211_input.c        2007-12-13 05:25:14.218435729 +0100 
    213 @@ -646,7 +646,7 @@ 
     211--- madwifi-dfs-r3221.orig/net80211/ieee80211_input.c   2008-01-19 21:27:13.000000000 +0100 
     212+++ madwifi-dfs-r3221/net80211/ieee80211_input.c        2008-01-19 21:27:14.000000000 +0100 
     213@@ -674,7 +674,7 @@ ieee80211_input(struct ieee80211vap * va 
    214214                 * Next strip any MSDU crypto bits. 
    215215                 */ 
    216216                if (key != NULL && 
     
    219219                        IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, 
    220220                                ni->ni_macaddr, "data", "%s", "demic error"); 
    221221                        IEEE80211_NODE_STAT(ni, rx_demicfail); 
    222 @@ -4168,6 +4168,47 @@ 
     222@@ -4233,6 +4233,47 @@ ath_eth_type_trans(struct sk_buff *skb,  
    223223 } 
    224224 #endif 
    225225  
     
    267267 #ifdef IEEE80211_DEBUG 
    268268 /* 
    269269  * Debugging support. 
    270 Index: madwifi-dfs-r3053/net80211/ieee80211_proto.h 
     270Index: madwifi-dfs-r3221/net80211/ieee80211_proto.h 
    271271=================================================================== 
    272 --- madwifi-dfs-r3053.orig/net80211/ieee80211_proto.h   2007-12-13 05:25:10.246209365 +0100 
    273 +++ madwifi-dfs-r3053/net80211/ieee80211_proto.h        2007-12-13 05:25:14.218435729 +0100 
    274 @@ -91,6 +91,7 @@ 
     272--- madwifi-dfs-r3221.orig/net80211/ieee80211_proto.h   2008-01-19 21:27:02.000000000 +0100 
     273+++ madwifi-dfs-r3221/net80211/ieee80211_proto.h        2008-01-19 21:27:14.000000000 +0100 
     274@@ -90,6 +90,7 @@ int ieee80211_iserp_rateset(struct ieee8 
    275275 void ieee80211_set11gbasicrates(struct ieee80211_rateset *, enum ieee80211_phymode); 
    276276 enum ieee80211_phymode ieee80211_get11gbasicrates(struct ieee80211_rateset *); 
    277277 void ieee80211_send_pspoll(struct ieee80211_node *); 
     
    279279  
    280280 /* 
    281281  * Return the size of the 802.11 header for a management or data frame. 
    282 Index: madwifi-dfs-r3053/net80211/ieee80211_linux.c 
     282Index: madwifi-dfs-r3221/net80211/ieee80211_linux.c 
    283283=================================================================== 
    284 --- madwifi-dfs-r3053.orig/net80211/ieee80211_linux.c   2007-12-13 05:25:12.422333377 +0100 
    285 +++ madwifi-dfs-r3053/net80211/ieee80211_linux.c        2007-12-13 05:25:14.218435729 +0100 
    286 @@ -337,8 +337,8 @@ 
     284--- madwifi-dfs-r3221.orig/net80211/ieee80211_linux.c   2008-01-19 21:27:11.000000000 +0100 
     285+++ madwifi-dfs-r3221/net80211/ieee80211_linux.c        2008-01-19 21:27:14.000000000 +0100 
     286@@ -337,8 +337,8 @@ ieee80211_notify_replay_failure(struct i 
    287287        /* TODO: needed parameters: count, keyid, key type, src address, TSC */ 
    288288        snprintf(buf, sizeof(buf), "%s(keyid=%d %scast addr=%s)", tag, 
    289289                k->wk_keyix, 
     
    294294        memset(&wrqu, 0, sizeof(wrqu)); 
    295295        wrqu.data.length = strlen(buf); 
    296296        wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf); 
    297 Index: madwifi-dfs-r3053/net80211/ieee80211_output.c 
     297Index: madwifi-dfs-r3221/net80211/ieee80211_output.c 
    298298=================================================================== 
    299 --- madwifi-dfs-r3053.orig/net80211/ieee80211_output.c  2007-12-13 05:25:10.262210276 +0100 
    300 +++ madwifi-dfs-r3053/net80211/ieee80211_output.c       2007-12-13 05:25:14.222435959 +0100 
    301 @@ -1092,13 +1092,16 @@ 
     299--- madwifi-dfs-r3221.orig/net80211/ieee80211_output.c  2008-01-19 21:27:02.000000000 +0100 
     300+++ madwifi-dfs-r3221/net80211/ieee80211_output.c       2008-01-19 21:27:14.000000000 +0100 
     301@@ -1083,13 +1083,16 @@ ieee80211_encap(struct ieee80211_node *n 
    302302                        cip = (struct ieee80211_cipher *) key->wk_cipher; 
    303303                        ciphdrsize = cip->ic_header; 
    304304                        tailsize += (cip->ic_trailer + cip->ic_miclen); 
     
    318318  
    319319                /* 
    320320                 * Allocate sk_buff for each subsequent fragment; First fragment 
    321 Index: madwifi-dfs-r3053/net80211/ieee80211_node.c 
     321Index: madwifi-dfs-r3221/net80211/ieee80211_node.c 
    322322=================================================================== 
    323 --- madwifi-dfs-r3053.orig/net80211/ieee80211_node.c    2007-12-13 05:25:13.938419772 +0100 
    324 +++ madwifi-dfs-r3053/net80211/ieee80211_node.c 2007-12-13 05:25:14.222435959 +0100 
    325 @@ -2236,11 +2236,13 @@ 
     323--- madwifi-dfs-r3221.orig/net80211/ieee80211_node.c    2008-01-19 21:27:13.000000000 +0100 
     324+++ madwifi-dfs-r3221/net80211/ieee80211_node.c 2008-01-19 21:27:14.000000000 +0100 
     325@@ -2259,11 +2259,13 @@ ieee80211_node_leave(struct ieee80211_no 
    326326        /* From this point onwards we can no longer find the node, 
    327327         * so no more references are generated 
    328328         */ 
  • package/madwifi/patches/300-napi_polling.patch

     
    1 Index: madwifi-dfs-r3053/ath/if_ath.c 
     1Index: madwifi-dfs-r3221/ath/if_ath.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:13.342385808 +0100 
    4 +++ madwifi-dfs-r3053/ath/if_ath.c      2007-12-13 05:25:13.662404044 +0100 
    5 @@ -189,7 +189,7 @@ 
     3--- madwifi-dfs-r3221.orig/ath/if_ath.c 2008-01-19 21:27:12.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath/if_ath.c      2008-01-19 21:27:13.000000000 +0100 
     5@@ -188,7 +188,7 @@ static void ath_recv_mgmt(struct ieee802 
    66        struct sk_buff *, int, int, u_int64_t); 
    77 static void ath_setdefantenna(struct ath_softc *, u_int); 
    88 static struct ath_txq *ath_txq_setup(struct ath_softc *, int, int); 
     
    1111 static int ath_hardstart(struct sk_buff *, struct net_device *); 
    1212 static int ath_mgtstart(struct ieee80211com *, struct sk_buff *); 
    1313 #ifdef ATH_SUPERG_COMP 
    14 @@ -535,7 +535,6 @@ 
     14@@ -544,7 +544,6 @@ ath_attach(u_int16_t devid, struct net_d 
    1515        ATH_TXBUF_LOCK_INIT(sc); 
    1616        ATH_RXBUF_LOCK_INIT(sc); 
    1717  
    1818-       ATH_INIT_TQUEUE(&sc->sc_rxtq,     ath_rx_tasklet,       dev); 
    19         ATH_INIT_TQUEUE(&sc->sc_txtq,     ath_tx_tasklet,       dev); 
     19        ATH_INIT_TQUEUE(&sc->sc_txtq,     ath_tx_tasklet,       dev); 
    2020        ATH_INIT_TQUEUE(&sc->sc_bmisstq,  ath_bmiss_tasklet,    dev); 
    2121        ATH_INIT_TQUEUE(&sc->sc_bstucktq, ath_bstuck_tasklet,   dev); 
    22 @@ -808,6 +807,8 @@ 
     22@@ -821,6 +820,8 @@ ath_attach(u_int16_t devid, struct net_d 
    2323        dev->set_mac_address = ath_set_mac_address; 
    2424        dev->change_mtu = ath_change_mtu; 
    2525        dev->tx_queue_len = ATH_TXBUF - ATH_TXBUF_MGT_RESERVED; 
     
    2828 #ifdef USE_HEADERLEN_RESV 
    2929        dev->hard_header_len += sizeof(struct ieee80211_qosframe) + 
    3030                                sizeof(struct llc) + 
    31 @@ -2150,6 +2151,7 @@ 
    32                 (status & HAL_INT_RXPHY)   ? " HAL_INT_RXPHY"   : "", 
    33                 (status & HAL_INT_SWBA)    ? " HAL_INT_SWBA"    : ""); 
     31@@ -2231,6 +2232,7 @@ ath_intr(int irq, void *dev_id, struct p 
     32                (status & HAL_INT_GLOBAL)       ? " HAL_INT_GLOBAL"     : "" 
     33                ); 
    3434  
    3535+       sc->sc_isr = status; 
    3636        status &= sc->sc_imask;                 /* discard unasked for bits */ 
    3737        if (status & HAL_INT_FATAL) { 
    3838                sc->sc_stats.ast_hardware++; 
    39 @@ -2201,7 +2203,14 @@ 
     39@@ -2282,7 +2284,14 @@ ath_intr(int irq, void *dev_id, struct p 
    4040                } 
    4141                if (status & (HAL_INT_RX | HAL_INT_RXPHY)) { 
    4242                        ath_uapsd_processtriggers(sc); 
     
    5252                } 
    5353                if (status & HAL_INT_TX) { 
    5454 #ifdef ATH_SUPERG_DYNTURBO 
    55 @@ -2227,6 +2236,11 @@ 
     55@@ -2308,6 +2317,11 @@ ath_intr(int irq, void *dev_id, struct p 
    5656                                } 
    5757                        } 
    5858 #endif 
     
    6464                        ATH_SCHEDULE_TQUEUE(&sc->sc_txtq, &needmark); 
    6565                } 
    6666                if (status & HAL_INT_BMISS) { 
    67 @@ -3904,10 +3918,10 @@ 
     67@@ -4015,10 +4029,10 @@ ath_key_update_begin(struct ieee80211vap 
    6868         * 
    6969         * XXX Using in_softirq is not right since we might 
    7070         * be called from other soft irq contexts than 
     
    7777        netif_stop_queue(dev); 
    7878 } 
    7979  
    80 @@ -3920,7 +3934,7 @@ 
     80@@ -4031,7 +4045,7 @@ ath_key_update_end(struct ieee80211vap * 
    8181        DPRINTF(sc, ATH_DEBUG_KEYCACHE, "%s:\n", __func__); 
    8282        netif_start_queue(dev); 
    8383        if (!in_softirq())              /* NB: see above */ 
     
    8686 } 
    8787  
    8888 /* 
    89 @@ -6287,13 +6301,12 @@ 
     89@@ -6408,13 +6422,12 @@ ath_setdefantenna(struct ath_softc *sc,  
    9090        sc->sc_rxotherant = 0; 
    9191 } 
    9292  
     
    102102        struct ath_buf *bf; 
    103103        struct ath_softc *sc = dev->priv; 
    104104        struct ieee80211com *ic = &sc->sc_ic; 
    105 @@ -6305,8 +6318,11 @@ 
     105@@ -6426,8 +6439,11 @@ ath_rx_tasklet(TQUEUE_ARG data) 
    106106        unsigned int len; 
    107107        int type; 
    108108        u_int phyerr; 
     
    114114        do { 
    115115                bf = STAILQ_FIRST(&sc->sc_rxbuf); 
    116116                if (bf == NULL) {               /* XXX ??? can this happen */ 
    117 @@ -6330,6 +6346,13 @@ 
     117@@ -6451,6 +6467,13 @@ ath_rx_tasklet(TQUEUE_ARG data) 
    118118                        /* NB: never process the self-linked entry at the end */ 
    119119                        break; 
    120120                } 
     
    128128                skb = bf->bf_skb; 
    129129                if (skb == NULL) { 
    130130                        printk("%s: no skbuff (%s)\n", DEV_NAME(dev), __func__); 
    131 @@ -6374,6 +6397,7 @@ 
     131@@ -6498,6 +6521,7 @@ ath_rx_tasklet(TQUEUE_ARG data) 
    132132                                sc->sc_stats.ast_rx_phyerr++; 
    133133                                phyerr = rs->rs_phyerr & 0x1f; 
    134134                                sc->sc_stats.ast_rx_phy[phyerr]++; 
     
    136136                        } 
    137137                        if (rs->rs_status & HAL_RXERR_DECRYPT) { 
    138138                                /* 
    139 @@ -6571,9 +6595,33 @@ 
     139@@ -6708,9 +6732,33 @@ rx_next: 
    140140                STAILQ_INSERT_TAIL(&sc->sc_rxbuf, bf, bf_list); 
    141141                ATH_RXBUF_UNLOCK_IRQ(sc); 
    142142        } while (ath_rxbuf_init(sc, bf) == 0); 
     
    170170 #undef PA2DESC 
    171171 } 
    172172  
    173 @@ -8192,11 +8240,22 @@ 
     173@@ -8359,11 +8407,22 @@ ath_tx_tasklet_q0(TQUEUE_ARG data) 
    174174        struct net_device *dev = (struct net_device *)data; 
    175175        struct ath_softc *sc = dev->priv; 
    176176  
     
    193193        netif_wake_queue(dev); 
    194194  
    195195        if (sc->sc_softled) 
    196 @@ -8213,6 +8272,7 @@ 
     196@@ -8380,6 +8439,7 @@ ath_tx_tasklet_q0123(TQUEUE_ARG data) 
    197197        struct net_device *dev = (struct net_device *)data; 
    198198        struct ath_softc *sc = dev->priv; 
    199199  
     
    201201        /* 
    202202         * Process each active queue. 
    203203         */ 
    204 @@ -8233,6 +8293,16 @@ 
     204@@ -8400,6 +8460,16 @@ ath_tx_tasklet_q0123(TQUEUE_ARG data) 
    205205        if (sc->sc_uapsdq && txqactive(sc->sc_ah, sc->sc_uapsdq->axq_qnum)) 
    206206                ath_tx_processq(sc, sc->sc_uapsdq); 
    207207  
     
    218218        netif_wake_queue(dev); 
    219219  
    220220        if (sc->sc_softled) 
    221 @@ -8250,6 +8320,7 @@ 
    222         unsigned int i; 
     221@@ -8418,10 +8488,21 @@ ath_tx_tasklet(TQUEUE_ARG data) 
    223222  
    224         /* Process each active queue. */ 
     223        /* Process each active queue. This includes sc_cabq, sc_xrtq and 
     224         * sc_uapsdq */ 
    225225+process_tx_again: 
    226226        for (i = 0; i < HAL_NUM_TX_QUEUES; i++) 
    227227                if (ATH_TXQ_SETUP(sc, i) && txqactive(sc->sc_ah, i)) 
    228228                        ath_tx_processq(sc, &sc->sc_txq[i]); 
    229 @@ -8258,6 +8329,16 @@ 
    230                 ath_tx_processq(sc, sc->sc_xrtxq); 
    231  #endif 
    232229  
    233230+       ATH_DISABLE_INTR(); 
    234231+       if (sc->sc_isr & HAL_INT_TX) { 
     
    243240        netif_wake_queue(dev); 
    244241  
    245242        if (sc->sc_softled) 
    246 @@ -8332,6 +8413,7 @@ 
     243@@ -8496,6 +8577,7 @@ static void 
    247244 ath_draintxq(struct ath_softc *sc) 
    248245 { 
    249246        struct ath_hal *ah = sc->sc_ah; 
     
    251248        unsigned int i; 
    252249  
    253250        /* XXX return value */ 
    254 @@ -10095,9 +10177,9 @@ 
     251@@ -10361,9 +10443,9 @@ ath_change_mtu(struct net_device *dev, i 
    255252        dev->mtu = mtu; 
    256253        if ((dev->flags & IFF_RUNNING) && !sc->sc_invalid) { 
    257254                /* NB: the rx buffers may need to be reallocated */ 
     
    263260        } 
    264261        ATH_UNLOCK(sc); 
    265262  
    266 Index: madwifi-dfs-r3053/ath/if_athvar.h 
     263Index: madwifi-dfs-r3221/ath/if_athvar.h 
    267264=================================================================== 
    268 --- madwifi-dfs-r3053.orig/ath/if_athvar.h      2007-12-13 05:25:12.842357313 +0100 
    269 +++ madwifi-dfs-r3053/ath/if_athvar.h   2007-12-13 05:25:13.666404270 +0100 
     265--- madwifi-dfs-r3221.orig/ath/if_athvar.h      2008-01-19 21:27:12.000000000 +0100 
     266+++ madwifi-dfs-r3221/ath/if_athvar.h   2008-01-19 21:27:13.000000000 +0100 
    270267@@ -50,6 +50,10 @@ 
    271268 #include <asm/io.h> 
    272269 #include <linux/list.h> 
     
    278275 /* 
    279276  * Deduce if tasklets are available.  If not then 
    280277  * fall back to using the immediate work queue. 
    281 @@ -728,7 +732,6 @@ 
     278@@ -728,7 +732,6 @@ struct ath_softc { 
    282279        struct ath_buf *sc_rxbufcur;            /* current rx buffer */ 
    283280        u_int32_t *sc_rxlink;                   /* link ptr in last RX desc */ 
    284281        spinlock_t sc_rxbuflock; 
     
    286283        struct ATH_TQ_STRUCT sc_rxorntq;        /* rxorn intr tasklet */ 
    287284        u_int8_t sc_defant;                     /* current default antenna */ 
    288285        u_int8_t sc_rxotherant;                 /* RXs on non-default antenna */ 
    289 @@ -741,6 +744,7 @@ 
     286@@ -741,6 +744,7 @@ struct ath_softc { 
    290287        u_int sc_txintrperiod;                  /* tx interrupt batching */ 
    291288        struct ath_txq sc_txq[HAL_NUM_TX_QUEUES]; 
    292289        struct ath_txq *sc_ac2q[WME_NUM_AC];    /* WME AC -> h/w qnum */ 
     
    294291        struct ATH_TQ_STRUCT sc_txtq;           /* tx intr tasklet */ 
    295292        u_int8_t sc_grppoll_str[GRPPOLL_RATE_STR_LEN]; 
    296293        struct ath_descdma sc_bdma;             /* beacon descriptors */ 
    297 @@ -853,6 +857,8 @@ 
     294@@ -854,6 +858,8 @@ typedef void (*ath_callback) (struct ath 
    298295 #define        ATH_TXBUF_LOCK_CHECK(_sc) 
    299296 #endif 
    300297  
     
    303300  
    304301 #define        ATH_RXBUF_LOCK_INIT(_sc)        spin_lock_init(&(_sc)->sc_rxbuflock) 
    305302 #define        ATH_RXBUF_LOCK_DESTROY(_sc) 
    306 Index: madwifi-dfs-r3053/net80211/ieee80211_input.c 
     303Index: madwifi-dfs-r3221/net80211/ieee80211_input.c 
    307304=================================================================== 
    308 --- madwifi-dfs-r3053.orig/net80211/ieee80211_input.c   2007-12-13 05:25:10.374216660 +0100 
    309 +++ madwifi-dfs-r3053/net80211/ieee80211_input.c        2007-12-13 05:25:13.674404726 +0100 
    310 @@ -1178,7 +1178,7 @@ 
     305--- madwifi-dfs-r3221.orig/net80211/ieee80211_input.c   2008-01-19 21:27:02.000000000 +0100 
     306+++ madwifi-dfs-r3221/net80211/ieee80211_input.c        2008-01-19 21:27:13.000000000 +0100 
     307@@ -1203,7 +1203,7 @@ ieee80211_deliver_data(struct ieee80211_ 
    311308                        /* attach vlan tag */ 
    312309                        struct ieee80211_node *ni_tmp = SKB_CB(skb)->ni; 
    313310                        if (vlan_hwaccel_receive_skb(skb, vap->iv_vlgrp, ni->ni_vlan) == NET_RX_DROP) { 
     
    316313                                 * device was too busy */ 
    317314                                if (ni_tmp != NULL) { 
    318315                                        /* node reference was leaked */ 
    319 @@ -1189,8 +1189,8 @@ 
     316@@ -1214,8 +1214,8 @@ ieee80211_deliver_data(struct ieee80211_ 
    320317                        skb = NULL; /* SKB is no longer ours */ 
    321318                } else { 
    322319                        struct ieee80211_node *ni_tmp = SKB_CB(skb)->ni; 
     
    327324                                 * device was too busy */ 
    328325                                if (ni_tmp != NULL) { 
    329326                                        /* node reference was leaked */ 
    330 @@ -2299,8 +2299,8 @@ 
     327@@ -2320,8 +2320,8 @@ forward_mgmt_to_app(struct ieee80211vap  
    331328                skb1->protocol = __constant_htons(0x0019);  /* ETH_P_80211_RAW */ 
    332329  
    333330                ni_tmp = SKB_CB(skb1)->ni; 
     
    338335                         * device was too busy */ 
    339336                        if (ni_tmp != NULL) { 
    340337                                /* node reference was leaked */ 
    341 Index: madwifi-dfs-r3053/net80211/ieee80211_monitor.c 
     338Index: madwifi-dfs-r3221/net80211/ieee80211_monitor.c 
    342339=================================================================== 
    343 --- madwifi-dfs-r3053.orig/net80211/ieee80211_monitor.c 2007-12-13 05:25:10.386217344 +0100 
    344 +++ madwifi-dfs-r3053/net80211/ieee80211_monitor.c      2007-12-13 05:25:13.678404955 +0100 
    345 @@ -577,7 +577,7 @@ 
    346                         skb1->protocol = __constant_htons(0x0019); /* ETH_P_80211_RAW */ 
     340--- madwifi-dfs-r3221.orig/net80211/ieee80211_monitor.c 2008-01-19 21:27:02.000000000 +0100 
     341+++ madwifi-dfs-r3221/net80211/ieee80211_monitor.c      2008-01-19 21:27:13.000000000 +0100 
     342@@ -586,7 +586,7 @@ ieee80211_input_monitor(struct ieee80211 
     343                        skb1->protocol =  
     344                                __constant_htons(0x0019); /* ETH_P_80211_RAW */ 
    347345  
    348                         ni_tmp = SKB_CB(skb1)->ni; 
    349346-                       if (netif_rx(skb1) == NET_RX_DROP) { 
    350347+                       if (netif_receive_skb(skb1) == NET_RX_DROP) { 
    351348                                /* If netif_rx dropped the packet because  
    352                                  * device was too busy */ 
    353                                 if (ni_tmp != NULL) { 
     349                                 * device was too busy, reclaim the ref. in  
     350                                 * the skb. */ 
  • package/madwifi/patches/124-linux24_compat.patch

     
    1 Index: madwifi-dfs-r3053/ath/if_athvar.h 
     1Index: madwifi-dfs-r3221/ath/if_athvar.h 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath/if_athvar.h      2007-12-13 05:25:10.534225778 +0100 
    4 +++ madwifi-dfs-r3053/ath/if_athvar.h   2007-12-13 05:25:12.842357313 +0100 
    5 @@ -128,6 +128,11 @@ 
     3--- madwifi-dfs-r3221.orig/ath/if_athvar.h      2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath/if_athvar.h   2008-01-19 21:27:12.000000000 +0100 
     5@@ -128,6 +128,11 @@ typedef void irqreturn_t; 
    66 #define        NETDEV_TX_BUSY  1 
    77 #endif 
    88  
     
    1414 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23) 
    1515 static inline struct net_device *_alloc_netdev(int sizeof_priv, const char *mask, 
    1616                                               void (*setup)(struct net_device *)) 
    17 Index: madwifi-dfs-r3053/ath/if_ath_radar.c 
     17Index: madwifi-dfs-r3221/ath/if_ath_radar.c 
    1818=================================================================== 
    19 --- madwifi-dfs-r3053.orig/ath/if_ath_radar.c   2007-12-13 05:25:10.538226007 +0100 
    20 +++ madwifi-dfs-r3053/ath/if_ath_radar.c        2007-12-13 05:25:12.850357768 +0100 
     19--- madwifi-dfs-r3221.orig/ath/if_ath_radar.c   2008-01-19 21:27:02.000000000 +0100 
     20+++ madwifi-dfs-r3221/ath/if_ath_radar.c        2008-01-19 21:27:12.000000000 +0100 
    2121@@ -92,6 +92,13 @@ 
    2222 #define nofloat_pct(_value, _pct) \ 
    2323        ( (_value * (1000 + _pct)) / 1000 ) 
     
    3232 struct radar_pattern_specification { 
    3333        /* The name of the rule/specification (i.e. what did we detect) */ 
    3434        const char *name; 
    35 Index: madwifi-dfs-r3053/ath/if_ath.c 
     35Index: madwifi-dfs-r3221/ath/if_ath.c 
    3636=================================================================== 
    37 --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:11.582285503 +0100 
    38 +++ madwifi-dfs-r3053/ath/if_ath.c      2007-12-13 05:25:12.854357994 +0100 
    39 @@ -4595,6 +4595,46 @@ 
     37--- madwifi-dfs-r3221.orig/ath/if_ath.c 2008-01-19 21:27:09.000000000 +0100 
     38+++ madwifi-dfs-r3221/ath/if_ath.c      2008-01-19 21:27:12.000000000 +0100 
     39@@ -4696,6 +4696,46 @@ ath_beacon_setup(struct ath_softc *sc, s 
    4040 #undef USE_SHPREAMBLE 
    4141 } 
    4242  
     
    8383 /* 
    8484  * Generate beacon frame and queue cab data for a VAP. 
    8585  */ 
    86 Index: madwifi-dfs-r3053/net80211/ieee80211_scan_ap.c 
     86Index: madwifi-dfs-r3221/net80211/ieee80211_scan_ap.c 
    8787=================================================================== 
    88 --- madwifi-dfs-r3053.orig/net80211/ieee80211_scan_ap.c 2007-12-13 05:25:10.554226918 +0100 
    89 +++ madwifi-dfs-r3053/net80211/ieee80211_scan_ap.c      2007-12-13 05:25:12.858358223 +0100 
     88--- madwifi-dfs-r3221.orig/net80211/ieee80211_scan_ap.c 2008-01-19 21:27:02.000000000 +0100 
     89+++ madwifi-dfs-r3221/net80211/ieee80211_scan_ap.c      2008-01-19 21:27:12.000000000 +0100 
    9090@@ -46,12 +46,16 @@ 
    9191 #include <linux/netdevice.h> 
    9292 #include <linux/init.h> 
     
    106106 #define        AP_PURGE_SCANS  2               /* age for purging entries (scans) */ 
    107107 #define RSSI_LPF_LEN   10 
    108108 #define        RSSI_EP_MULTIPLIER      (1<<7)  /* pow2 to optimize out * and / */ 
    109 Index: madwifi-dfs-r3053/net80211/sort.c 
     109Index: madwifi-dfs-r3221/net80211/sort.c 
    110110=================================================================== 
    111111--- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    112 +++ madwifi-dfs-r3053/net80211/sort.c   2007-12-13 05:25:12.862358452 +0100 
     112+++ madwifi-dfs-r3221/net80211/sort.c   2008-01-19 21:27:12.000000000 +0100 
    113113@@ -0,0 +1,120 @@ 
    114114+/* 
    115115+ * A fast, small, non-recursive O(nlog n) sort for the Linux kernel 
  • package/madwifi/patches/111-minstrel_crash.patch

     
    1 Index: madwifi-dfs-r3053/ath_rate/minstrel/minstrel.c 
     1Index: madwifi-dfs-r3221/ath_rate/minstrel/minstrel.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath_rate/minstrel/minstrel.c 2007-12-13 05:25:10.690234670 +0100 
    4 +++ madwifi-dfs-r3053/ath_rate/minstrel/minstrel.c      2007-12-13 05:25:12.006309667 +0100 
    5 @@ -393,6 +393,9 @@ 
     3--- madwifi-dfs-r3221.orig/ath_rate/minstrel/minstrel.c 2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath_rate/minstrel/minstrel.c      2008-01-19 21:27:10.000000000 +0100 
     5@@ -393,6 +393,9 @@ ath_rate_get_mrr(struct ath_softc *sc, s 
    66                struct minstrel_node *sn = ATH_NODE_MINSTREL(an); 
    77                int rc1, rc2, rc3;         /* Index into the rate table, so for example, it is  0..11 */ 
    88  
  • package/madwifi/patches/310-noise_get.patch

     
    1 Index: madwifi-dfs-r3053/ath/if_ath.c 
     1Index: madwifi-dfs-r3221/ath/if_ath.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:14.210435274 +0100 
    4 +++ madwifi-dfs-r3053/ath/if_ath.c      2007-12-13 05:25:14.558455106 +0100 
    5 @@ -1648,7 +1648,6 @@ 
    6         /* XXXAPSD: build in check against max triggers we could see 
    7          *          based on ic->ic_uapsdmaxtriggers. */ 
     3--- madwifi-dfs-r3221.orig/ath/if_ath.c 2008-01-19 21:27:14.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath/if_ath.c      2008-01-19 21:27:15.000000000 +0100 
     5@@ -1691,7 +1691,6 @@ ath_uapsd_processtriggers(struct ath_sof 
     6         * Wireshark and Kismet. 
     7         */ 
    88        hw_tsf = ath_hal_gettsf64(ah); 
    99-       ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); 
    1010  
    1111        ATH_RXBUF_LOCK_IRQ(sc); 
    1212        if (sc->sc_rxbufcur == NULL) 
    13 @@ -8815,6 +8814,7 @@ 
     13@@ -8978,6 +8977,7 @@ if (!sc->sc_beacons && 
    1414                if (ath_calinterval == ATH_LONG_CALINTERVAL) 
    1515                        ath_calinterval = ATH_SHORT_CALINTERVAL; 
    1616        } 
     
    1818  
    1919        DPRINTF(sc, ATH_DEBUG_CALIBRATE, "%s: channel %u/%x -- IQ %s.\n", 
    2020                __func__, sc->sc_curchan.channel, sc->sc_curchan.channelFlags, 
    21 @@ -8869,6 +8869,7 @@ 
     21@@ -9032,6 +9032,7 @@ ath_set_channel(struct ieee80211com *ic) 
    2222        struct ath_softc *sc = dev->priv; 
    2323  
    2424        (void) ath_chan_set(sc, ic->ic_curchan); 
     
    2626        /* 
    2727         * If we are returning to our bss channel then mark state 
    2828         * so the next recv'd beacon's TSF will be used to sync the 
    29 @@ -9095,6 +9096,7 @@ 
     29@@ -9299,6 +9300,7 @@ ath_newstate(struct ieee80211vap *vap, e 
    3030                } 
    3131  
    3232                ath_hal_process_noisefloor(ah); 
  • package/madwifi/patches/104-autocreate_none.patch

     
    1 Index: madwifi-dfs-r3053/ath/if_ath.c 
     1Index: madwifi-dfs-r3221/ath/if_ath.c 
    22=================================================================== 
    3 --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:10.754238316 +0100 
    4 +++ madwifi-dfs-r3053/ath/if_ath.c      2007-12-13 05:25:11.582285503 +0100 
    5 @@ -512,7 +512,7 @@ 
     3--- madwifi-dfs-r3221.orig/ath/if_ath.c 2008-01-19 21:27:02.000000000 +0100 
     4+++ madwifi-dfs-r3221/ath/if_ath.c      2008-01-19 21:27:09.000000000 +0100 
     5@@ -517,7 +517,7 @@ ath_attach(u_int16_t devid, struct net_d 
    66        HAL_STATUS status; 
    77        int error = 0; 
    88        unsigned int i; 
  • package/madwifi/Makefile

     
    1010include $(INCLUDE_DIR)/kernel.mk 
    1111 
    1212PKG_NAME:=madwifi 
    13 PKG_REV:=3053 
     13PKG_REV:=3221 
    1414PKG_VERSION:=r$(PKG_REV) 
    1515PKG_BRANCH:=madwifi-dfs 
    16 PKG_RELEASE:=1 
     16PKG_RELEASE:=2 
    1717 
    1818PKG_SOURCE_PROTO:=svn 
    1919PKG_SOURCE_VERSION:=$(PKG_REV)