From 4d144eee67a94959f1a5d875678e466775782c14 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 18 Jul 2008 22:49:27 +0000 Subject: [PATCH] fix some madwifi-testing bugs SVN-Revision: 11865 --- package/madwifi/Makefile | 2 +- .../patches-r3776/102-multicall_binary.patch | 98 +++++++------------ .../patches-r3776/201-no_debug_extra.patch | 25 +---- .../patches-r3776/300-napi_polling.patch | 53 +++++----- 4 files changed, 65 insertions(+), 113 deletions(-) diff --git a/package/madwifi/Makefile b/package/madwifi/Makefile index a27af52ab1..0711e6d578 100644 --- a/package/madwifi/Makefile +++ b/package/madwifi/Makefile @@ -120,7 +120,7 @@ ifeq ($(findstring PCI,$(BUS)),PCI) MADWIFI_AUTOLOAD+= ath_pci endif -MADWIFI_APPLETS:=80211stats,athchans,athctrl,athkey,athstats,wlanconfig,ath_info +MADWIFI_APPLETS:=80211stats,athchans,athctrl,athkey,athstats,wlanconfig,$(if $(CONFIG_MADWIFI_TESTING),ath_info/)ath_info ifdef CONFIG_MADWIFI_DEBUG MADWIFI_APPLETS:=$(strip $(MADWIFI_APPLETS)),athdebug,80211debug endif diff --git a/package/madwifi/patches-r3776/102-multicall_binary.patch b/package/madwifi/patches-r3776/102-multicall_binary.patch index 3dcbb04f98..7ddd45632b 100644 --- a/package/madwifi/patches-r3776/102-multicall_binary.patch +++ b/package/madwifi/patches-r3776/102-multicall_binary.patch @@ -1,7 +1,5 @@ -Index: madwifi-trunk-r3776/tools/80211debug.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/80211debug.c 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/80211debug.c 2008-07-17 00:23:16.000000000 +0200 +--- a/tools/80211debug.c ++++ b/tools/80211debug.c @@ -48,6 +48,7 @@ #include #include @@ -19,10 +17,8 @@ Index: madwifi-trunk-r3776/tools/80211debug.c { const char *ifname = "ath0"; const char *cp, *tp; -Index: madwifi-trunk-r3776/tools/80211stats.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/80211stats.c 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/80211stats.c 2008-07-17 00:23:16.000000000 +0200 +--- a/tools/80211stats.c ++++ b/tools/80211stats.c @@ -59,6 +59,7 @@ #include "net80211/ieee80211.h" #include "net80211/ieee80211_crypto.h" @@ -40,10 +36,8 @@ Index: madwifi-trunk-r3776/tools/80211stats.c { int c, len; struct ieee80211req_sta_info *si; -Index: madwifi-trunk-r3776/tools/athchans.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/athchans.c 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/athchans.c 2008-07-17 00:23:16.000000000 +0200 +--- a/tools/athchans.c ++++ b/tools/athchans.c @@ -58,6 +58,7 @@ #include "net80211/ieee80211.h" #include "net80211/ieee80211_crypto.h" @@ -63,10 +57,8 @@ Index: madwifi-trunk-r3776/tools/athchans.c { const char *ifname = "wifi0"; struct ieee80211req_chanlist chanlist; -Index: madwifi-trunk-r3776/tools/athctrl.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/athctrl.c 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/athctrl.c 2008-07-17 00:23:16.000000000 +0200 +--- a/tools/athctrl.c ++++ b/tools/athctrl.c @@ -52,6 +52,7 @@ #include @@ -84,10 +76,8 @@ Index: madwifi-trunk-r3776/tools/athctrl.c { char device[IFNAMSIZ + 1]; int distance = -1; -Index: madwifi-trunk-r3776/tools/athdebug.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/athdebug.c 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/athdebug.c 2008-07-17 00:23:16.000000000 +0200 +--- a/tools/athdebug.c ++++ b/tools/athdebug.c @@ -51,6 +51,7 @@ #include #include @@ -105,10 +95,8 @@ Index: madwifi-trunk-r3776/tools/athdebug.c { #ifdef __linux__ const char *ifname = "wifi0"; -Index: madwifi-trunk-r3776/tools/athkey.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/athkey.c 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/athkey.c 2008-07-17 00:23:16.000000000 +0200 +--- a/tools/athkey.c ++++ b/tools/athkey.c @@ -58,6 +58,7 @@ #include "net80211/ieee80211.h" #include "net80211/ieee80211_crypto.h" @@ -127,10 +115,8 @@ Index: madwifi-trunk-r3776/tools/athkey.c { const char *ifname = "wifi0"; struct ieee80211req_key setkey; -Index: madwifi-trunk-r3776/tools/athstats.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/athstats.c 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/athstats.c 2008-07-17 00:23:16.000000000 +0200 +--- a/tools/athstats.c ++++ b/tools/athstats.c @@ -65,6 +65,7 @@ #undef ARRAY_SIZE @@ -148,10 +134,8 @@ Index: madwifi-trunk-r3776/tools/athstats.c { #ifdef __linux__ const char *ifname = "wifi0"; -Index: madwifi-trunk-r3776/tools/do_multi.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ madwifi-trunk-r3776/tools/do_multi.c 2008-07-17 00:46:52.000000000 +0200 +--- /dev/null ++++ b/tools/do_multi.c @@ -0,0 +1,36 @@ +#include +#include "do_multi.h" @@ -189,10 +173,8 @@ Index: madwifi-trunk-r3776/tools/do_multi.c + + return ret; +} -Index: madwifi-trunk-r3776/tools/do_multi.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ madwifi-trunk-r3776/tools/do_multi.h 2008-07-17 00:23:16.000000000 +0200 +--- /dev/null ++++ b/tools/do_multi.h @@ -0,0 +1,15 @@ +#ifdef DO_MULTI +int a80211debug_init(int argc, char *argv[]); @@ -209,10 +191,8 @@ Index: madwifi-trunk-r3776/tools/do_multi.h +#else +#define CMD(name) main +#endif -Index: madwifi-trunk-r3776/tools/Makefile -=================================================================== ---- madwifi-trunk-r3776.orig/tools/Makefile 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/Makefile 2008-07-17 00:45:15.000000000 +0200 +--- a/tools/Makefile ++++ b/tools/Makefile @@ -50,42 +50,43 @@ PROGRAMS = athstats 80211stats athkey athchans athctrl \ athdebug 80211debug wlanconfig wpakey @@ -296,10 +276,8 @@ Index: madwifi-trunk-r3776/tools/Makefile for d in $(SUBDIRS); do \ $(MAKE) -C $$d clean; \ done -Index: madwifi-trunk-r3776/tools/wlanconfig.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/wlanconfig.c 2008-07-17 00:22:03.000000000 +0200 -+++ madwifi-trunk-r3776/tools/wlanconfig.c 2008-07-17 00:45:42.000000000 +0200 +--- a/tools/wlanconfig.c ++++ b/tools/wlanconfig.c @@ -61,6 +61,7 @@ #include "net80211/ieee80211.h" #include "net80211/ieee80211_crypto.h" @@ -317,19 +295,21 @@ Index: madwifi-trunk-r3776/tools/wlanconfig.c { const char *ifname, *cmd; unsigned char bnounit = 0; -Index: madwifi-trunk-r3776/tools/ath_info/Makefile -=================================================================== ---- madwifi-trunk-r3776.orig/tools/ath_info/Makefile 2008-07-17 00:21:42.000000000 +0200 -+++ madwifi-trunk-r3776/tools/ath_info/Makefile 2008-07-17 00:36:23.000000000 +0200 -@@ -15,13 +15,13 @@ - PROGRAMS = ath_info - MANS = ath_info.8 +--- a/tools/ath_info/Makefile ++++ b/tools/ath_info/Makefile +@@ -17,11 +17,18 @@ --all: $(PROGRAMS) -+all: $(if $(DO_MULTI),ath_info.o,$(PROGRAMS)) + all: $(PROGRAMS) ++ ++ifneq ($(DO_MULTI),) ++ath_info: ath_info.o ++ rm -f $@ ++ ln -s ../madwifi_multi $@ ++else ath_info: ath_info.o $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< ++endif .c.o: - $(CC) $(CFLAGS) -c $< @@ -337,10 +317,8 @@ Index: madwifi-trunk-r3776/tools/ath_info/Makefile clean: rm -f *.o $(PROGRAMS) -Index: madwifi-trunk-r3776/tools/ath_info/ath_info.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/ath_info/ath_info.c 2008-07-17 00:24:08.000000000 +0200 -+++ madwifi-trunk-r3776/tools/ath_info/ath_info.c 2008-07-17 00:24:15.000000000 +0200 +--- a/tools/ath_info/ath_info.c ++++ b/tools/ath_info/ath_info.c @@ -28,6 +28,7 @@ #include #include @@ -359,10 +337,8 @@ Index: madwifi-trunk-r3776/tools/ath_info/ath_info.c { unsigned long long dev_addr; u_int16_t srev, phy_rev_5ghz, phy_rev_2ghz, ee_magic; -Index: madwifi-trunk-r3776/tools/wpakey.c -=================================================================== ---- madwifi-trunk-r3776.orig/tools/wpakey.c 2008-07-17 00:21:30.000000000 +0200 -+++ madwifi-trunk-r3776/tools/wpakey.c 2008-07-17 00:46:18.000000000 +0200 +--- a/tools/wpakey.c ++++ b/tools/wpakey.c @@ -25,6 +25,7 @@ #include diff --git a/package/madwifi/patches-r3776/201-no_debug_extra.patch b/package/madwifi/patches-r3776/201-no_debug_extra.patch index 693c1f9eec..f1fe4aff52 100644 --- a/package/madwifi/patches-r3776/201-no_debug_extra.patch +++ b/package/madwifi/patches-r3776/201-no_debug_extra.patch @@ -33,27 +33,4 @@ Index: madwifi-trunk-r3776/ath/if_ath.c ic->ic_wme.wme_update = ath_wme_update; ic->ic_uapsd_flush = ath_uapsd_flush; -Index: madwifi-trunk-r3776/net80211/ieee80211_scan_ap.c -=================================================================== ---- madwifi-trunk-r3776.orig/net80211/ieee80211_scan_ap.c 2008-07-17 00:21:29.000000000 +0200 -+++ madwifi-trunk-r3776/net80211/ieee80211_scan_ap.c 2008-07-17 01:25:32.000000000 +0200 -@@ -790,15 +790,18 @@ - struct ap_state *as = ss->ss_priv; - struct channel chans[ss_last]; /* actually ss_last-1 is required */ - struct channel *c = NULL; -- struct pc_params params = { vap, ss, flags }; - int benefit = 0; - int sta_assoc = 0; - -+#ifdef IEEE80211_DEBUG -+ struct pc_params params = { vap, ss, flags }; -+ - for (i = 0; i < ss_last; i++) { - chans[i].chan = ss->ss_chans[i]; - chans[i].orig = i; - chans[i].params = ¶ms; - } -+#endif - - sort(chans, ss_last, sizeof(*chans), pc_cmp, pc_swap); - + diff --git a/package/madwifi/patches-r3776/300-napi_polling.patch b/package/madwifi/patches-r3776/300-napi_polling.patch index 25d02653a7..cf32b34c2d 100644 --- a/package/madwifi/patches-r3776/300-napi_polling.patch +++ b/package/madwifi/patches-r3776/300-napi_polling.patch @@ -1,7 +1,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c =================================================================== ---- madwifi-trunk-r3776.orig/ath/if_ath.c 2008-07-18 20:35:03.000000000 +0200 -+++ madwifi-trunk-r3776/ath/if_ath.c 2008-07-18 20:37:47.000000000 +0200 +--- madwifi-trunk-r3776.orig/ath/if_ath.c 2008-07-18 23:26:43.000000000 +0200 ++++ madwifi-trunk-r3776/ath/if_ath.c 2008-07-18 23:29:26.000000000 +0200 @@ -182,7 +182,11 @@ struct sk_buff *, int, int, u_int64_t); static void ath_setdefantenna(struct ath_softc *, u_int); @@ -174,13 +174,13 @@ Index: madwifi-trunk-r3776/ath/if_ath.c /* * Block/unblock tx+rx processing while a key change is done. * We assume the caller serializes key management operations -@@ -4119,33 +4195,26 @@ +@@ -4119,33 +4195,23 @@ ath_key_update_begin(struct ieee80211vap *vap) { struct net_device *dev = vap->iv_ic->ic_dev; - struct ath_softc *sc = dev->priv; - DPRINTF(sc, ATH_DEBUG_KEYCACHE, "Begin\n"); +- DPRINTF(sc, ATH_DEBUG_KEYCACHE, "Begin\n"); /* * When called from the rx tasklet we cannot use * tasklet_disable because it will block waiting @@ -203,17 +203,16 @@ Index: madwifi-trunk-r3776/ath/if_ath.c struct net_device *dev = vap->iv_ic->ic_dev; - struct ath_softc *sc = dev->priv; - DPRINTF(sc, ATH_DEBUG_KEYCACHE, "End\n"); +- DPRINTF(sc, ATH_DEBUG_KEYCACHE, "End\n"); - netif_wake_queue(dev); - if (!in_softirq()) /* NB: see above */ - tasklet_enable(&sc->sc_rxtq); -+ + if ((dev->flags & (IFF_UP|IFF_RUNNING)) == (IFF_UP|IFF_RUNNING)) + netif_wake_queue(dev); } /* -@@ -6405,15 +6474,25 @@ +@@ -6405,15 +6471,25 @@ sc->sc_numrxotherant = 0; } @@ -243,7 +242,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c struct ieee80211com *ic = &sc->sc_ic; struct ath_hal *ah = sc ? sc->sc_ah : NULL; struct ath_desc *ds; -@@ -6421,6 +6500,7 @@ +@@ -6421,6 +6497,7 @@ struct ieee80211_node *ni; struct sk_buff *skb = NULL; unsigned int len, phyerr, mic_fail = 0; @@ -251,7 +250,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c int type = -1; /* undefined */ int init_ret = 0; int bf_processed = 0; -@@ -6428,6 +6508,7 @@ +@@ -6428,6 +6505,7 @@ int errors = 0; DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s started...\n", __func__); @@ -259,7 +258,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c do { /* Get next RX buffer pending processing by RX tasklet... * -@@ -6457,6 +6538,10 @@ +@@ -6457,6 +6535,10 @@ break; bf_processed++; @@ -270,7 +269,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c ds = bf->bf_desc; #ifdef AR_DEBUG -@@ -6491,6 +6576,7 @@ +@@ -6491,6 +6573,7 @@ sc->sc_stats.ast_rx_phyerr++; phyerr = rs->rs_phyerr & 0x1f; sc->sc_stats.ast_rx_phy[phyerr]++; @@ -278,7 +277,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c } if (rs->rs_status & HAL_RXERR_DECRYPT) { /* Decrypt error. If the error occurred -@@ -6689,6 +6775,33 @@ +@@ -6689,6 +6772,33 @@ STAILQ_INSERT_TAIL(&sc->sc_rxbuf, bf, bf_list); ATH_RXBUF_UNLOCK_IRQ(sc); } while (1); @@ -312,7 +311,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c if (sc->sc_useintmit) ath_hal_rxmonitor(ah, &sc->sc_halstats, &sc->sc_curchan); -@@ -6701,6 +6814,12 @@ +@@ -6701,6 +6811,12 @@ " %d rx buf processed. %d were errors. %d skb accepted.\n", __func__, bf_processed, errors, skb_accepted); #undef PA2DESC @@ -325,7 +324,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c } #ifdef ATH_SUPERG_XR -@@ -8306,12 +8425,24 @@ +@@ -8306,12 +8422,24 @@ { struct net_device *dev = (struct net_device *)data; struct ath_softc *sc = dev->priv; @@ -350,7 +349,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c netif_wake_queue(dev); if (sc->sc_softled) -@@ -8327,7 +8458,9 @@ +@@ -8327,7 +8455,9 @@ { struct net_device *dev = (struct net_device *)data; struct ath_softc *sc = dev->priv; @@ -360,7 +359,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c /* * Process each active queue. */ -@@ -8357,6 +8490,16 @@ +@@ -8357,6 +8487,16 @@ if (sc->sc_uapsdq && txqactive(sc->sc_ah, sc->sc_uapsdq->axq_qnum)) ath_tx_processq(sc, sc->sc_uapsdq); @@ -377,7 +376,7 @@ Index: madwifi-trunk-r3776/ath/if_ath.c netif_wake_queue(dev); if (sc->sc_softled) -@@ -10322,9 +10465,9 @@ +@@ -10322,9 +10462,9 @@ dev->mtu = mtu; if ((dev->flags & IFF_RUNNING) && !sc->sc_invalid) { /* NB: the rx buffers may need to be reallocated */ @@ -391,8 +390,8 @@ Index: madwifi-trunk-r3776/ath/if_ath.c Index: madwifi-trunk-r3776/ath/if_athvar.h =================================================================== ---- madwifi-trunk-r3776.orig/ath/if_athvar.h 2008-07-18 20:35:03.000000000 +0200 -+++ madwifi-trunk-r3776/ath/if_athvar.h 2008-07-18 20:37:09.000000000 +0200 +--- madwifi-trunk-r3776.orig/ath/if_athvar.h 2008-07-18 23:26:22.000000000 +0200 ++++ madwifi-trunk-r3776/ath/if_athvar.h 2008-07-18 23:27:47.000000000 +0200 @@ -56,6 +56,10 @@ # include #endif @@ -441,8 +440,8 @@ Index: madwifi-trunk-r3776/ath/if_athvar.h #define ATH_RXBUF_LOCK_DESTROY(_sc) Index: madwifi-trunk-r3776/net80211/ieee80211_skb.c =================================================================== ---- madwifi-trunk-r3776.orig/net80211/ieee80211_skb.c 2008-07-18 20:32:42.000000000 +0200 -+++ madwifi-trunk-r3776/net80211/ieee80211_skb.c 2008-07-18 20:35:03.000000000 +0200 +--- madwifi-trunk-r3776.orig/net80211/ieee80211_skb.c 2008-07-18 23:26:22.000000000 +0200 ++++ madwifi-trunk-r3776/net80211/ieee80211_skb.c 2008-07-18 23:27:47.000000000 +0200 @@ -73,7 +73,7 @@ #undef dev_queue_xmit #undef kfree_skb @@ -474,8 +473,8 @@ Index: madwifi-trunk-r3776/net80211/ieee80211_skb.c EXPORT_SYMBOL(skb_clone_debug); Index: madwifi-trunk-r3776/net80211/ieee80211_skb.h =================================================================== ---- madwifi-trunk-r3776.orig/net80211/ieee80211_skb.h 2008-07-18 20:32:42.000000000 +0200 -+++ madwifi-trunk-r3776/net80211/ieee80211_skb.h 2008-07-18 20:35:03.000000000 +0200 +--- madwifi-trunk-r3776.orig/net80211/ieee80211_skb.h 2008-07-18 23:26:22.000000000 +0200 ++++ madwifi-trunk-r3776/net80211/ieee80211_skb.h 2008-07-18 23:27:47.000000000 +0200 @@ -115,7 +115,7 @@ int vlan_hwaccel_rx_debug(struct sk_buff *skb, struct vlan_group *grp, @@ -507,8 +506,8 @@ Index: madwifi-trunk-r3776/net80211/ieee80211_skb.h #define dev_alloc_skb(_length) \ Index: madwifi-trunk-r3776/net80211/ieee80211_input.c =================================================================== ---- madwifi-trunk-r3776.orig/net80211/ieee80211_input.c 2008-07-18 20:32:42.000000000 +0200 -+++ madwifi-trunk-r3776/net80211/ieee80211_input.c 2008-07-18 20:37:09.000000000 +0200 +--- madwifi-trunk-r3776.orig/net80211/ieee80211_input.c 2008-07-18 23:26:22.000000000 +0200 ++++ madwifi-trunk-r3776/net80211/ieee80211_input.c 2008-07-18 23:27:47.000000000 +0200 @@ -1185,7 +1185,7 @@ ret = vlan_hwaccel_rx(skb, vap->iv_vlgrp, ni->ni_vlan); @@ -529,8 +528,8 @@ Index: madwifi-trunk-r3776/net80211/ieee80211_input.c } Index: madwifi-trunk-r3776/net80211/ieee80211_monitor.c =================================================================== ---- madwifi-trunk-r3776.orig/net80211/ieee80211_monitor.c 2008-07-18 20:32:42.000000000 +0200 -+++ madwifi-trunk-r3776/net80211/ieee80211_monitor.c 2008-07-18 20:35:03.000000000 +0200 +--- madwifi-trunk-r3776.orig/net80211/ieee80211_monitor.c 2008-07-18 23:26:22.000000000 +0200 ++++ madwifi-trunk-r3776/net80211/ieee80211_monitor.c 2008-07-18 23:27:47.000000000 +0200 @@ -580,7 +580,7 @@ if (SKB_NI(skb1) != NULL)