From 5eef1e4f29c24803294fbbdd38bb528baab970d6 Mon Sep 17 00:00:00 2001
From: "Alexandros C. Couloumbis" <alex@ozo.com>
Date: Fri, 12 Nov 2010 15:14:27 +0000
Subject: [PATCH] package/madwifi: refresh madwifi patches

SVN-Revision: 23971
---
 package/madwifi/patches/123-ccmp_checks.patch |  4 +-
 package/madwifi/patches/200-no_debug.patch    |  2 +-
 .../madwifi/patches/202-debug_variables.patch |  6 +--
 .../madwifi/patches/300-napi_polling.patch    |  4 +-
 package/madwifi/patches/305-pureg_fix.patch   |  8 +--
 .../madwifi/patches/309-micfail_detect.patch  |  4 +-
 package/madwifi/patches/311-bssid_alloc.patch |  2 +-
 package/madwifi/patches/312-erpupdate.patch   |  2 +-
 .../madwifi/patches/325-channel_spam.patch    |  6 +--
 package/madwifi/patches/330-beaconcal.patch   |  4 +-
 package/madwifi/patches/334-input.patch       |  2 +-
 package/madwifi/patches/340-maxrate.patch     |  2 +-
 package/madwifi/patches/341-minrate.patch     |  2 +-
 package/madwifi/patches/342-performance.patch | 52 +++++++++----------
 .../patches/345-minstrel_sampling.patch       |  2 +-
 .../madwifi/patches/346-protmode_trig.patch   |  2 +-
 package/madwifi/patches/352-ani_fix.patch     |  2 +-
 .../madwifi/patches/357-bgscan_thresh.patch   |  2 +-
 package/madwifi/patches/360-sta_nodes.patch   |  2 +-
 .../madwifi/patches/361-bmiss_handling.patch  |  2 +-
 package/madwifi/patches/362-rssithr.patch     |  2 +-
 .../madwifi/patches/368-sta_ie_preserve.patch |  2 +-
 package/madwifi/patches/370-wdsvap.patch      | 22 ++++----
 package/madwifi/patches/372-queue_vif.patch   |  2 +-
 package/madwifi/patches/374-nbtt_fix.patch    |  2 +-
 .../madwifi/patches/375-atim_tsf_update.patch |  6 +--
 .../madwifi/patches/378-adhoc_crash_fix.patch |  2 +-
 .../patches/379-invalid_rate_fix.patch        |  2 +-
 .../madwifi/patches/380-noderef_hack.patch    |  2 +-
 package/madwifi/patches/381-ibss_modes.patch  |  4 +-
 package/madwifi/patches/383-ibss_hostap.patch |  2 +-
 package/madwifi/patches/384-hwdetect.patch    |  4 +-
 package/madwifi/patches/385-antenna_fix.patch |  2 +-
 .../madwifi/patches/386-acl_crashfix.patch    |  4 +-
 package/madwifi/patches/387-maxassoc.patch    |  6 +--
 package/madwifi/patches/389-autochannel.patch |  6 +--
 package/madwifi/patches/390-frame_type.patch  |  2 +-
 .../madwifi/patches/393-mbss_vap_auth.patch   | 10 ++--
 package/madwifi/patches/394-probereq.patch    |  2 +-
 package/madwifi/patches/396-napi_ff_fix.patch |  2 +-
 package/madwifi/patches/400-new_hal.patch     |  2 +-
 .../madwifi/patches/408-changeset_r3337.patch |  2 +-
 .../patches/411-autochannel_multi.patch       |  8 +--
 package/madwifi/patches/414-txpower.patch     |  2 +-
 package/madwifi/patches/416-wprobe.patch      |  4 +-
 .../madwifi/patches/420-diversity_fix.patch   |  2 +-
 .../patches/421-channel_handling.patch        | 16 +++---
 package/madwifi/patches/424-timing.patch      | 16 +++---
 package/madwifi/patches/425-rc_rexmit.patch   |  2 +-
 .../madwifi/patches/430-use_netdev_priv.patch | 26 +++++-----
 package/madwifi/patches/432-netdev_ops.patch  |  4 +-
 .../patches/436-injection_checks.patch        |  4 +-
 package/madwifi/patches/440-wme_cleanup.patch |  4 +-
 .../patches/441-fix_ibss_node_handling.patch  |  4 +-
 .../madwifi/patches/446-single_module.patch   |  2 +-
 .../patches/448-beacon_handling_fixes.patch   | 24 ++++-----
 .../madwifi/patches/451-ibss_race_fix.patch   |  8 +--
 .../patches/452-minstrel_no_timer.patch       |  2 +-
 .../madwifi/patches/455-beacon_watchdog.patch |  4 +-
 .../madwifi/patches/459-2.6.33_compile.patch  |  6 +--
 package/madwifi/patches/462-fix_ap_scan.patch |  4 +-
 ...ac_addresss_from_ath5k_platform_data.patch |  8 +--
 package/madwifi/patches/473-mutex_fix.patch   |  4 +-
 63 files changed, 179 insertions(+), 177 deletions(-)

diff --git a/package/madwifi/patches/123-ccmp_checks.patch b/package/madwifi/patches/123-ccmp_checks.patch
index d9a0ad4e2b..6178a3f786 100644
--- a/package/madwifi/patches/123-ccmp_checks.patch
+++ b/package/madwifi/patches/123-ccmp_checks.patch
@@ -59,7 +59,7 @@
  }
  
  /*
-@@ -475,6 +483,9 @@ ccmp_encrypt(struct ieee80211_key *key, 
+@@ -475,6 +483,9 @@ ccmp_encrypt(struct ieee80211_key *key,
  	uint8_t *mic, *pos;
  	u_int space;
  
@@ -69,7 +69,7 @@
  	ctx->cc_vap->iv_stats.is_crypto_ccmp++;
  
  	skb = skb0;
-@@ -589,6 +600,9 @@ ccmp_decrypt(struct ieee80211_key *key, 
+@@ -589,6 +600,9 @@ ccmp_decrypt(struct ieee80211_key *key,
  	uint8_t *pos, *mic;
  	u_int space;
  
diff --git a/package/madwifi/patches/200-no_debug.patch b/package/madwifi/patches/200-no_debug.patch
index d5f285c241..3f46ec88b4 100644
--- a/package/madwifi/patches/200-no_debug.patch
+++ b/package/madwifi/patches/200-no_debug.patch
@@ -43,7 +43,7 @@
  	ic->ic_set_dfs_testmode     = ath_set_dfs_testmode;
  	ic->ic_get_dfs_testmode     = ath_get_dfs_testmode;
  
-@@ -1297,12 +1301,14 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1297,12 +1301,14 @@ ath_vap_create(struct ieee80211com *ic,
  		/* If no default VAP debug flags are passed, allow a few to
  		 * transfer down from the driver to new VAPs so we can have load
  		 * time debugging for VAPs too. */
diff --git a/package/madwifi/patches/202-debug_variables.patch b/package/madwifi/patches/202-debug_variables.patch
index 041344ff0a..33e6efad13 100644
--- a/package/madwifi/patches/202-debug_variables.patch
+++ b/package/madwifi/patches/202-debug_variables.patch
@@ -10,7 +10,7 @@
  #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,52))
  MODULE_PARM(ath_debug, "i");
  #else
-@@ -465,8 +465,8 @@ static void ath_printrxbuf(const struct 
+@@ -465,8 +465,8 @@ static void ath_printrxbuf(const struct
  static void ath_printtxbuf(const struct ath_buf *, int);
  #endif /* defined(AR_DEBUG) */
  
@@ -118,7 +118,7 @@
  	struct ieee80211com *ic = &sc->sc_ic;
  	int required = 0;
  
-@@ -366,6 +370,7 @@ static struct ath_rp *pulse_prev(struct 
+@@ -366,6 +370,7 @@ static struct ath_rp *pulse_prev(struct
  #define MR_FAIL_MIN_PERIOD	4
  #define MR_FAIL_MAX_PERIOD	5
  
@@ -174,7 +174,7 @@
  	DPRINTF(sc, ATH_DEBUG_DOTHPULSES, "%s: ath_rp_record: "
 --- a/ath_rate/minstrel/minstrel.c
 +++ b/ath_rate/minstrel/minstrel.c
-@@ -931,7 +931,9 @@ ath_proc_read_nodes(struct ieee80211vap 
+@@ -931,7 +931,9 @@ ath_proc_read_nodes(struct ieee80211vap
  			    (struct ieee80211_node_table *) &vap->iv_ic->ic_sta;
  		unsigned int x = 0;
  		unsigned int this_tp, this_prob, this_eprob;
diff --git a/package/madwifi/patches/300-napi_polling.patch b/package/madwifi/patches/300-napi_polling.patch
index bc62d7b4a6..bde7684946 100644
--- a/package/madwifi/patches/300-napi_polling.patch
+++ b/package/madwifi/patches/300-napi_polling.patch
@@ -183,7 +183,7 @@
  }
  
  /*
-@@ -6360,15 +6426,25 @@ ath_setdefantenna(struct ath_softc *sc, 
+@@ -6360,15 +6426,25 @@ ath_setdefantenna(struct ath_softc *sc,
  	sc->sc_rxotherant = 0;
  }
  
@@ -448,7 +448,7 @@
  				 * device was too busy */
  				if (ni_tmp != NULL) {
  					/* node reference was leaked */
-@@ -2322,8 +2322,8 @@ forward_mgmt_to_app(struct ieee80211vap 
+@@ -2322,8 +2322,8 @@ forward_mgmt_to_app(struct ieee80211vap
  		skb1->protocol = __constant_htons(0x0019);  /* ETH_P_80211_RAW */
  
  		ni_tmp = SKB_CB(skb1)->ni;
diff --git a/package/madwifi/patches/305-pureg_fix.patch b/package/madwifi/patches/305-pureg_fix.patch
index 231ab081a4..8adb8a7162 100644
--- a/package/madwifi/patches/305-pureg_fix.patch
+++ b/package/madwifi/patches/305-pureg_fix.patch
@@ -49,7 +49,7 @@
  			break;
  		case IEEE80211_M_WDS:
  			if (skb->len < sizeof(struct ieee80211_frame_addr4)) {
-@@ -3066,7 +3063,7 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3066,7 +3063,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
  	u_int8_t *frm, *efrm;
  	u_int8_t *ssid, *rates, *xrates, *suppchan, *wpa, *rsn, *wme, *ath;
  	u_int8_t rate;
@@ -58,7 +58,7 @@
  	u_int8_t qosinfo;
  
  	if (ni_or_null == NULL)
-@@ -3096,11 +3093,15 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3096,11 +3093,15 @@ ieee80211_recv_mgmt(struct ieee80211vap
  		 *    o station mode when associated (to collect state
  		 *      updates such as 802.11g slot time), or
  		 *    o adhoc mode (to discover neighbors)
@@ -75,7 +75,7 @@
  			vap->iv_stats.is_rx_mgtdiscard++;
  			return;
  		}
-@@ -3184,6 +3185,7 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3184,6 +3185,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
  					break;
  				}
  				scan.erp = frm[2];
@@ -83,7 +83,7 @@
  				break;
  			case IEEE80211_ELEMID_RSN:
  				scan.rsn = frm;
-@@ -3421,6 +3423,20 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3421,6 +3423,20 @@ ieee80211_recv_mgmt(struct ieee80211vap
  				ieee80211_bg_scan(vap);
  			return;
  		}
diff --git a/package/madwifi/patches/309-micfail_detect.patch b/package/madwifi/patches/309-micfail_detect.patch
index d74a390d59..ca4103a206 100644
--- a/package/madwifi/patches/309-micfail_detect.patch
+++ b/package/madwifi/patches/309-micfail_detect.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -6457,6 +6457,7 @@ ath_rx_poll(struct net_device *dev, int 
+@@ -6457,6 +6457,7 @@ ath_rx_poll(struct net_device *dev, int
  	int type;
  	u_int phyerr;
  	u_int processed = 0, early_stop = 0;
@@ -205,7 +205,7 @@
  			IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
  				ni->ni_macaddr, "data", "%s", "demic error");
  			IEEE80211_NODE_STAT(ni, rx_demicfail);
-@@ -4293,6 +4293,47 @@ ath_eth_type_trans(struct sk_buff *skb, 
+@@ -4293,6 +4293,47 @@ ath_eth_type_trans(struct sk_buff *skb,
  }
  #endif
  
diff --git a/package/madwifi/patches/311-bssid_alloc.patch b/package/madwifi/patches/311-bssid_alloc.patch
index 8059b99e02..005a67738c 100644
--- a/package/madwifi/patches/311-bssid_alloc.patch
+++ b/package/madwifi/patches/311-bssid_alloc.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -1354,7 +1354,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1354,7 +1354,7 @@ ath_vap_create(struct ieee80211com *ic,
  		TAILQ_FOREACH(v, &ic->ic_vaps, iv_next)
  			id_mask |= (1 << ATH_GET_VAP_ID(v->iv_myaddr));
  
diff --git a/package/madwifi/patches/312-erpupdate.patch b/package/madwifi/patches/312-erpupdate.patch
index 34fae68dbd..f878acd8f4 100644
--- a/package/madwifi/patches/312-erpupdate.patch
+++ b/package/madwifi/patches/312-erpupdate.patch
@@ -15,7 +15,7 @@
  	/* if it is a mode change beacon for dynamic turbo case */
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -3431,9 +3431,12 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3431,9 +3431,12 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			/* Assume no ERP IE == 11b AP */
  			if ((!has_erp || (has_erp && (scan.erp & IEEE80211_ERP_NON_ERP_PRESENT))) &&
  				!(ic->ic_flags & IEEE80211_F_USEPROT)) {
diff --git a/package/madwifi/patches/325-channel_spam.patch b/package/madwifi/patches/325-channel_spam.patch
index a4b9463a29..e34b7a4092 100644
--- a/package/madwifi/patches/325-channel_spam.patch
+++ b/package/madwifi/patches/325-channel_spam.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -9792,7 +9792,9 @@ ath_getchannels(struct net_device *dev, 
+@@ -9792,7 +9792,9 @@ ath_getchannels(struct net_device *dev,
  	/*
  	 * Convert HAL channels to ieee80211 ones.
  	 */
@@ -10,7 +10,7 @@
  	for (i = 0; i < nchan; i++) {
  		HAL_CHANNEL *c = &chans[i];
  		struct ieee80211_channel *ichan = &ic->ic_channels[i];
-@@ -9819,6 +9821,7 @@ ath_getchannels(struct net_device *dev, 
+@@ -9819,6 +9821,7 @@ ath_getchannels(struct net_device *dev,
  		ic->ic_chan_non_occupy[i].tv_sec  = 0;
  		ic->ic_chan_non_occupy[i].tv_usec = 0;
  
@@ -18,7 +18,7 @@
  		IPRINTF(sc, "Channel %3d (%4d MHz) Max Tx Power %d dBm%s "
  				"[%d hw %d reg] Flags%s%s%s%s%s%s%s%s%s%s%s%s%"
  				"s%s%s%s%s%s%s%s%s%s%s%s\n",
-@@ -9907,6 +9910,7 @@ ath_getchannels(struct net_device *dev, 
+@@ -9907,6 +9910,7 @@ ath_getchannels(struct net_device *dev,
  				(c->privFlags & 0x0080 ? 
  				 " PF & (1 << 7)" : "")
  				);
diff --git a/package/madwifi/patches/330-beaconcal.patch b/package/madwifi/patches/330-beaconcal.patch
index 2b4895f359..a338dc743a 100644
--- a/package/madwifi/patches/330-beaconcal.patch
+++ b/package/madwifi/patches/330-beaconcal.patch
@@ -79,7 +79,7 @@
  
  		sc->sc_stats.ast_be_xmit++;		/* XXX per-VAP? */
  	}
-@@ -5403,6 +5431,7 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5403,6 +5431,7 @@ ath_beacon_config(struct ath_softc *sc,
  		ath_hal_beacontimers(ah, &bs);
  		sc->sc_imask |= HAL_INT_BMISS;
  		ath_hal_intrset(ah, sc->sc_imask);
@@ -87,7 +87,7 @@
  	} else {
  		ath_hal_intrset(ah, 0);
  		if (reset_tsf)
-@@ -5414,8 +5443,11 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5414,8 +5443,11 @@ ath_beacon_config(struct ath_softc *sc,
  			 */
  			intval |= HAL_BEACON_ENA;
  			sc->sc_imask |= HAL_INT_SWBA;
diff --git a/package/madwifi/patches/334-input.patch b/package/madwifi/patches/334-input.patch
index 1e1b2760f3..7c13367014 100644
--- a/package/madwifi/patches/334-input.patch
+++ b/package/madwifi/patches/334-input.patch
@@ -1,6 +1,6 @@
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -950,6 +950,9 @@ ieee80211_input_all(struct ieee80211com 
+@@ -950,6 +950,9 @@ ieee80211_input_all(struct ieee80211com
  	TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
  		struct sk_buff *skb1;
  
diff --git a/package/madwifi/patches/340-maxrate.patch b/package/madwifi/patches/340-maxrate.patch
index 4613ed3f56..ae93f02d26 100644
--- a/package/madwifi/patches/340-maxrate.patch
+++ b/package/madwifi/patches/340-maxrate.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -1307,6 +1307,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1307,6 +1307,7 @@ ath_vap_create(struct ieee80211com *ic,
  	vap->iv_key_set = ath_key_set;
  	vap->iv_key_update_begin = ath_key_update_begin;
  	vap->iv_key_update_end = ath_key_update_end;
diff --git a/package/madwifi/patches/341-minrate.patch b/package/madwifi/patches/341-minrate.patch
index 53567e2f57..cc04ae074c 100644
--- a/package/madwifi/patches/341-minrate.patch
+++ b/package/madwifi/patches/341-minrate.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -1308,6 +1308,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1308,6 +1308,7 @@ ath_vap_create(struct ieee80211com *ic,
  	vap->iv_key_update_begin = ath_key_update_begin;
  	vap->iv_key_update_end = ath_key_update_end;
  	vap->iv_maxrateindex = 0;
diff --git a/package/madwifi/patches/342-performance.patch b/package/madwifi/patches/342-performance.patch
index 8015643dcd..88cec182dd 100644
--- a/package/madwifi/patches/342-performance.patch
+++ b/package/madwifi/patches/342-performance.patch
@@ -73,6 +73,7 @@
 -		ieee80211_ref_node(SKB_CB(skb)->ni);
 -		/* Unshare the node, decrementing users in the old skb */
 -		skb = skb_unshare(skb, GFP_ATOMIC);
+-	}
 +	need_headroom -= skb_headroom(skb);
 +	if (isff)
 +		need_tailroom -= skb_tailroom(skb2);
@@ -83,42 +84,32 @@
 +		need_headroom = 0;
 +	if (need_tailroom < 0)
 +		need_tailroom = 0;
-+
-+	if (skb_cloned(skb) || (need_headroom > 0) ||
-+		(!isff && (need_tailroom > 0))) {
-+
-+		if (pskb_expand_head(skb, need_headroom, need_tailroom, GFP_ATOMIC)) {
-+			IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT,
-+				"%s: cannot expand storage (tail)\n", __func__);
-+			goto error;
-+		}
- 	}
  
- #ifdef ATH_SUPERG_FF
- 	if (isff) {
+-#ifdef ATH_SUPERG_FF
+-	if (isff) {
 -		if (skb == NULL) {
 -			IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT,
 -				"%s: cannot unshare for encapsulation\n",
 -				__func__);
 -			vap->iv_stats.is_tx_nobuf++;
 -			ieee80211_dev_kfree_skb(&skb2);
--
++	if (skb_cloned(skb) || (need_headroom > 0) ||
++		(!isff && (need_tailroom > 0))) {
+ 
 -			return NULL;
--		}
-+		inter_headroom -= skb_headroom(skb2);
-+		if (inter_headroom < 0)
-+			inter_headroom = 0;
-+		if ((skb_cloned(skb2) ||
-+			(inter_headroom > 0) || (need_tailroom > 0))) {
++		if (pskb_expand_head(skb, need_headroom, need_tailroom, GFP_ATOMIC)) {
++			IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT,
++				"%s: cannot expand storage (tail)\n", __func__);
++			goto error;
+ 		}
++	}
  
 -		/* first skb header */
 -		if (skb_headroom(skb) < need_headroom) {
 -			struct sk_buff *tmp = skb;
 -			skb = skb_realloc_headroom(skb, need_headroom);
 -			if (skb == NULL) {
-+			if (pskb_expand_head(skb2, inter_headroom,
-+				need_tailroom, GFP_ATOMIC)) {
- 				IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT,
+-				IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT,
 -					"%s: cannot expand storage (head1)\n",
 -					__func__);
 -				vap->iv_stats.is_tx_nobuf++;
@@ -130,7 +121,14 @@
 -			/* NB: cb[] area was copied, but not next ptr. must do that
 -			 *     prior to return on success. */
 -		}
--
++#ifdef ATH_SUPERG_FF
++	if (isff) {
++		inter_headroom -= skb_headroom(skb2);
++		if (inter_headroom < 0)
++			inter_headroom = 0;
++		if ((skb_cloned(skb2) ||
++			(inter_headroom > 0) || (need_tailroom > 0))) {
+ 
 -		/* second skb with header and tail adjustments possible */
 -		if (skb_tailroom(skb2) < need_tailroom) {
 -			int n = 0;
@@ -139,7 +137,9 @@
 -			if (pskb_expand_head(skb2, n,
 -			    need_tailroom - skb_tailroom(skb2), GFP_ATOMIC)) {
 -				ieee80211_dev_kfree_skb(&skb2);
--				IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT,
++			if (pskb_expand_head(skb2, inter_headroom,
++				need_tailroom, GFP_ATOMIC)) {
+ 				IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT,
 -					"%s: cannot expand storage (tail2)\n",
 -					__func__);
 -				vap->iv_stats.is_tx_nobuf++;
@@ -163,10 +163,10 @@
 -			} else
 -				ieee80211_skb_copy_noderef(tmp, skb);
 -			ieee80211_dev_kfree_skb(&tmp);
- 		}
+-		}
 -		if (skb) {
 -			skb->next = skb2;
--		}
+ 		}
 -		return skb;
 +		skb->next = skb2;
  	}
diff --git a/package/madwifi/patches/345-minstrel_sampling.patch b/package/madwifi/patches/345-minstrel_sampling.patch
index d89990c837..63fcb8a613 100644
--- a/package/madwifi/patches/345-minstrel_sampling.patch
+++ b/package/madwifi/patches/345-minstrel_sampling.patch
@@ -20,7 +20,7 @@
  	 *      multiple segments.
 --- a/ath_rate/minstrel/minstrel.c
 +++ b/ath_rate/minstrel/minstrel.c
-@@ -333,15 +333,19 @@ ath_rate_findrate(struct ath_softc *sc, 
+@@ -333,15 +333,19 @@ ath_rate_findrate(struct ath_softc *sc,
  		if (sn->static_rate_ndx >= 0) {
  			    ndx = sn->static_rate_ndx;
  		} else {
diff --git a/package/madwifi/patches/346-protmode_trig.patch b/package/madwifi/patches/346-protmode_trig.patch
index 830a6a852c..5b5cec6e98 100644
--- a/package/madwifi/patches/346-protmode_trig.patch
+++ b/package/madwifi/patches/346-protmode_trig.patch
@@ -13,7 +13,7 @@
  	TAILQ_INIT(&ic->ic_vaps);
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -3411,14 +3411,18 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3411,14 +3411,18 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			IEEE80211_IS_CHAN_ANYG(ic->ic_curchan)) {
  
  			/* Assume no ERP IE == 11b AP */
diff --git a/package/madwifi/patches/352-ani_fix.patch b/package/madwifi/patches/352-ani_fix.patch
index e8dce0cbe4..938d11c623 100644
--- a/package/madwifi/patches/352-ani_fix.patch
+++ b/package/madwifi/patches/352-ani_fix.patch
@@ -23,7 +23,7 @@
  	return 0;
  bad3:
  	ieee80211_ifdetach(ic);
-@@ -2428,6 +2431,43 @@ ath_chan2flags(struct ieee80211_channel 
+@@ -2428,6 +2431,43 @@ ath_chan2flags(struct ieee80211_channel
  	return flags;
  }
  
diff --git a/package/madwifi/patches/357-bgscan_thresh.patch b/package/madwifi/patches/357-bgscan_thresh.patch
index df0a6c29d9..bf3483776f 100644
--- a/package/madwifi/patches/357-bgscan_thresh.patch
+++ b/package/madwifi/patches/357-bgscan_thresh.patch
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  }
  
  static __inline int
-@@ -3258,6 +3260,25 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3258,6 +3260,25 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			/* record tsf of last beacon */
  			memcpy(ni->ni_tstamp.data, scan.tstamp,
  				sizeof(ni->ni_tstamp));
diff --git a/package/madwifi/patches/360-sta_nodes.patch b/package/madwifi/patches/360-sta_nodes.patch
index 2060001232..8d2dd9ddd6 100644
--- a/package/madwifi/patches/360-sta_nodes.patch
+++ b/package/madwifi/patches/360-sta_nodes.patch
@@ -219,7 +219,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  	return ret;
 --- a/net80211/ieee80211_wireless.c
 +++ b/net80211/ieee80211_wireless.c
-@@ -514,8 +514,9 @@ ieee80211_ioctl_siwap(struct net_device 
+@@ -514,8 +514,9 @@ ieee80211_ioctl_siwap(struct net_device
  			vap->iv_flags |= IEEE80211_F_DESBSSID;
  
  		IEEE80211_ADDR_COPY(vap->iv_des_bssid, &ap_addr->sa_data);
diff --git a/package/madwifi/patches/361-bmiss_handling.patch b/package/madwifi/patches/361-bmiss_handling.patch
index b33cc3f73e..15d238f7b4 100644
--- a/package/madwifi/patches/361-bmiss_handling.patch
+++ b/package/madwifi/patches/361-bmiss_handling.patch
@@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
 
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -3400,12 +3400,17 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3400,12 +3400,17 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			}
  
  			/* WDS/Repeater: re-schedule software beacon timer for 
diff --git a/package/madwifi/patches/362-rssithr.patch b/package/madwifi/patches/362-rssithr.patch
index 7e178e13ad..5a86833bb5 100644
--- a/package/madwifi/patches/362-rssithr.patch
+++ b/package/madwifi/patches/362-rssithr.patch
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  	{ IEEE80211_PARAM_UAPSDINFO,
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -3261,6 +3261,19 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3261,6 +3261,19 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			memcpy(ni->ni_tstamp.data, scan.tstamp,
  				sizeof(ni->ni_tstamp));
  
diff --git a/package/madwifi/patches/368-sta_ie_preserve.patch b/package/madwifi/patches/368-sta_ie_preserve.patch
index 4beef62228..fbd779ea0b 100644
--- a/package/madwifi/patches/368-sta_ie_preserve.patch
+++ b/package/madwifi/patches/368-sta_ie_preserve.patch
@@ -29,7 +29,7 @@
  	if (se->se_fails && (jiffies - se->se_lastfail) > STA_FAILS_AGE*HZ) {
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -3106,6 +3106,7 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3106,6 +3106,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
  		 */
  		IEEE80211_VERIFY_LENGTH(efrm - frm, 12);
  		memset(&scan, 0, sizeof(scan));
diff --git a/package/madwifi/patches/370-wdsvap.patch b/package/madwifi/patches/370-wdsvap.patch
index e507afb25d..8a0e823ae8 100644
--- a/package/madwifi/patches/370-wdsvap.patch
+++ b/package/madwifi/patches/370-wdsvap.patch
@@ -44,7 +44,7 @@
  
  	if (ic->ic_dev->flags & IFF_RUNNING) {
  		/* needs to disable hardware too */
-@@ -1271,8 +1269,12 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1271,8 +1269,12 @@ ath_vap_create(struct ieee80211com *ic,
  		} else
  			ic_opmode = opmode;
  		break;
@@ -58,7 +58,7 @@
  		/* permit multiple APs and/or WDS links */
  		/* XXX sta+ap for repeater/bridge application */
  		if ((sc->sc_nvaps != 0) && (ic->ic_opmode == IEEE80211_M_STA))
-@@ -1304,7 +1306,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1304,7 +1306,7 @@ ath_vap_create(struct ieee80211com *ic,
  	}
  
  	avp = dev->priv;
@@ -124,7 +124,7 @@
  {
  #define	IEEE80211_C_OPMODE \
  	(IEEE80211_C_IBSS | IEEE80211_C_HOSTAP | IEEE80211_C_AHDEMO | \
-@@ -510,9 +525,18 @@ ieee80211_vap_setup(struct ieee80211com 
+@@ -510,9 +525,18 @@ ieee80211_vap_setup(struct ieee80211com
  
  	vap->iv_monitor_crc_errors = 0;
  	vap->iv_monitor_phy_errors = 0;
@@ -528,7 +528,7 @@
  
  	switch (cmd) {
  	case SIOCG80211STATS:
-@@ -5921,8 +5922,20 @@ ieee80211_ioctl(struct net_device *dev, 
+@@ -5921,8 +5922,20 @@ ieee80211_ioctl(struct net_device *dev,
  	case SIOC80211IFDESTROY:
  		if (!capable(CAP_NET_ADMIN))
  			return -EPERM;
@@ -784,7 +784,7 @@
  					skb1 = skb;
  					skb = NULL;
  				}
-@@ -3084,8 +3133,7 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3084,8 +3133,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
  		    (vap->iv_opmode == IEEE80211_M_STA && ni->ni_associd) ||
  		    (vap->iv_opmode == IEEE80211_M_IBSS) ||
  			((subtype == IEEE80211_FC0_SUBTYPE_BEACON) &&
@@ -794,7 +794,7 @@
  			vap->iv_stats.is_rx_mgtdiscard++;
  			return;
  		}
-@@ -3471,13 +3519,56 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3471,13 +3519,56 @@ ieee80211_recv_mgmt(struct ieee80211vap
  		 */
  		if (ic->ic_flags & IEEE80211_F_SCAN) {
  			ieee80211_add_scan(vap, &scan, wh, subtype, rssi, rtsf);
@@ -856,7 +856,7 @@
  			} else {
  				/*
  				 * Copy data from beacon to neighbor table.
-@@ -3490,6 +3581,7 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3490,6 +3581,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
  				IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3);
  				memcpy(ni->ni_tstamp.data, scan.tstamp,
  					sizeof(ni->ni_tstamp));
@@ -1157,7 +1157,7 @@
  	/* calculate priority so drivers can find the TX queue */
  	if (ieee80211_classify(ni, skb)) {
  		IEEE80211_NOTE(vap, IEEE80211_MSG_OUTPUT, ni,
-@@ -334,20 +335,33 @@ void ieee80211_parent_queue_xmit(struct 
+@@ -334,20 +335,33 @@ void ieee80211_parent_queue_xmit(struct
   * constructing a frame as it sets i_fc[1]; other bits can
   * then be or'd in.
   */
@@ -1176,12 +1176,12 @@
 +	struct ieee80211_frame *wh;
 +	int len = sizeof(struct ieee80211_frame);
 +	int opmode = vap->iv_opmode;
- 
++
 +	if ((type & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_DATA) {
 +		if ((opmode == IEEE80211_M_STA) &&
 +			(vap->iv_flags_ext & IEEE80211_FEXT_WDS))
 +			opmode = IEEE80211_M_WDS;
-+
+ 
 +		if (opmode == IEEE80211_M_WDS)
 +			len = sizeof(struct ieee80211_frame_addr4);
 +	}
@@ -1482,7 +1482,7 @@
  	}
  }
  EXPORT_SYMBOL(ieee80211_stop_running);
-@@ -1342,9 +1398,9 @@ ieee80211_new_state(struct ieee80211vap 
+@@ -1342,9 +1398,9 @@ ieee80211_new_state(struct ieee80211vap
  	struct ieee80211com *ic = vap->iv_ic;
  	int rc;
  
diff --git a/package/madwifi/patches/372-queue_vif.patch b/package/madwifi/patches/372-queue_vif.patch
index aa32b1b227..8b13abc33c 100644
--- a/package/madwifi/patches/372-queue_vif.patch
+++ b/package/madwifi/patches/372-queue_vif.patch
@@ -24,7 +24,7 @@
  				vap->iv_devstats.tx_dropped++;
 --- a/net80211/ieee80211_output.c
 +++ b/net80211/ieee80211_output.c
-@@ -324,9 +324,10 @@ void ieee80211_parent_queue_xmit(struct 
+@@ -324,9 +324,10 @@ void ieee80211_parent_queue_xmit(struct
  	/* Dispatch the packet to the parent device */
  	skb->dev = vap->iv_ic->ic_dev;
  
diff --git a/package/madwifi/patches/374-nbtt_fix.patch b/package/madwifi/patches/374-nbtt_fix.patch
index 0a2982799f..38a1c59d55 100644
--- a/package/madwifi/patches/374-nbtt_fix.patch
+++ b/package/madwifi/patches/374-nbtt_fix.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -5486,6 +5486,9 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5486,6 +5486,9 @@ ath_beacon_config(struct ath_softc *sc,
  		ath_beacon_dturbo_config(vap, intval &
  				~(HAL_BEACON_RESET_TSF | HAL_BEACON_ENA));
  #endif
diff --git a/package/madwifi/patches/375-atim_tsf_update.patch b/package/madwifi/patches/375-atim_tsf_update.patch
index 9381f8a818..d1313aa564 100644
--- a/package/madwifi/patches/375-atim_tsf_update.patch
+++ b/package/madwifi/patches/375-atim_tsf_update.patch
@@ -81,7 +81,7 @@
  /*
   * Reset the hardware w/o losing operational state.  This is
   * basically a more efficient way of doing ath_stop, ath_init,
-@@ -5294,6 +5361,7 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5294,6 +5361,7 @@ ath_beacon_config(struct ath_softc *sc,
  	u_int64_t tsf, hw_tsf;
  	u_int32_t tsftu, hw_tsftu;
  	u_int32_t intval, nexttbtt = 0;
@@ -89,7 +89,7 @@
  	int reset_tsf = 0;
  
  	if (vap == NULL)
-@@ -5301,6 +5369,9 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5301,6 +5369,9 @@ ath_beacon_config(struct ath_softc *sc,
  
  	ni = vap->iv_bss;
  
@@ -99,7 +99,7 @@
  	hw_tsf = ath_hal_gettsf64(ah);
  	tsf = le64_to_cpu(ni->ni_tstamp.tsf);
  	hw_tsftu = hw_tsf >> 10;
-@@ -5490,15 +5561,27 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5490,15 +5561,27 @@ ath_beacon_config(struct ath_softc *sc,
  				<= ath_hal_sw_beacon_response_time)
  			nexttbtt += intval;
  		sc->sc_nexttbtt = nexttbtt;
diff --git a/package/madwifi/patches/378-adhoc_crash_fix.patch b/package/madwifi/patches/378-adhoc_crash_fix.patch
index 1d699a5ffa..5b91683674 100644
--- a/package/madwifi/patches/378-adhoc_crash_fix.patch
+++ b/package/madwifi/patches/378-adhoc_crash_fix.patch
@@ -1,6 +1,6 @@
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -3529,6 +3529,11 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3529,6 +3529,11 @@ ieee80211_recv_mgmt(struct ieee80211vap
  		if (ic->ic_flags & IEEE80211_F_SCAN) {
  			ieee80211_add_scan(vap, &scan, wh, subtype, rssi, rtsf);
  		}
diff --git a/package/madwifi/patches/379-invalid_rate_fix.patch b/package/madwifi/patches/379-invalid_rate_fix.patch
index 3ee2ed2c46..c96c04daff 100644
--- a/package/madwifi/patches/379-invalid_rate_fix.patch
+++ b/package/madwifi/patches/379-invalid_rate_fix.patch
@@ -173,7 +173,7 @@
  
  		_MOD_INC_USE(THIS_MODULE, return NULL);
  		osc = kmalloc(sizeof(struct minstrel_softc), GFP_ATOMIC);
-@@ -963,7 +949,7 @@ ath_proc_read_nodes(struct ieee80211vap 
+@@ -963,7 +949,7 @@ ath_proc_read_nodes(struct ieee80211vap
  					p += sprintf(p, "out of room for node " MAC_FMT "\n\n", MAC_ADDR(ni->ni_macaddr));
  					break;
  				}
diff --git a/package/madwifi/patches/380-noderef_hack.patch b/package/madwifi/patches/380-noderef_hack.patch
index e9397724e7..7c082d4143 100644
--- a/package/madwifi/patches/380-noderef_hack.patch
+++ b/package/madwifi/patches/380-noderef_hack.patch
@@ -1,6 +1,6 @@
 --- a/net80211/ieee80211_node.c
 +++ b/net80211/ieee80211_node.c
-@@ -427,8 +427,8 @@ ieee80211_reset_bss(struct ieee80211vap 
+@@ -427,8 +427,8 @@ ieee80211_reset_bss(struct ieee80211vap
  			  __func__, ni, MAC_ADDR(vap->iv_myaddr));
  	KASSERT(ni != NULL, ("unable to setup inital BSS node"));
  
diff --git a/package/madwifi/patches/381-ibss_modes.patch b/package/madwifi/patches/381-ibss_modes.patch
index f904ed9721..38969b0532 100644
--- a/package/madwifi/patches/381-ibss_modes.patch
+++ b/package/madwifi/patches/381-ibss_modes.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -1260,7 +1260,10 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1260,7 +1260,10 @@ ath_vap_create(struct ieee80211com *ic,
  	case IEEE80211_M_IBSS:
  		if ((sc->sc_nvaps != 0) && (ic->ic_opmode == IEEE80211_M_STA))
  			return NULL;
@@ -12,7 +12,7 @@
  		break;
  	case IEEE80211_M_AHDEMO:
  	case IEEE80211_M_MONITOR:
-@@ -1455,7 +1458,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1455,7 +1458,7 @@ ath_vap_create(struct ieee80211com *ic,
  	 * frames.  Other modes carry over directly to the HAL.
  	 */
  	if (ic->ic_opmode == IEEE80211_M_AHDEMO)
diff --git a/package/madwifi/patches/383-ibss_hostap.patch b/package/madwifi/patches/383-ibss_hostap.patch
index a91753cc15..d449c3037a 100644
--- a/package/madwifi/patches/383-ibss_hostap.patch
+++ b/package/madwifi/patches/383-ibss_hostap.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -1452,6 +1452,23 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1452,6 +1452,23 @@ ath_vap_create(struct ieee80211com *ic,
  		sc->sc_nstavaps++;
  	else if (opmode == IEEE80211_M_MONITOR)
  		sc->sc_nmonvaps++;
diff --git a/package/madwifi/patches/384-hwdetect.patch b/package/madwifi/patches/384-hwdetect.patch
index b327e786c3..3b67615b05 100644
--- a/package/madwifi/patches/384-hwdetect.patch
+++ b/package/madwifi/patches/384-hwdetect.patch
@@ -33,7 +33,7 @@
  	/* Allocate space for dynamically determined maximum VAP count */
  	sc->sc_bslot = 
  		kmalloc(ath_maxvaps * sizeof(struct ieee80211vap*), GFP_KERNEL);
-@@ -1508,6 +1520,29 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1508,6 +1520,29 @@ ath_vap_create(struct ieee80211com *ic,
  	return vap;
  }
  
@@ -226,7 +226,7 @@
  
  #include <asm/io.h>
  #include <asm/uaccess.h>
-@@ -181,12 +182,32 @@ exit_ath_wmac(u_int16_t wlanNum, struct 
+@@ -181,12 +182,32 @@ exit_ath_wmac(u_int16_t wlanNum, struct
  	return 0;
  }
  
diff --git a/package/madwifi/patches/385-antenna_fix.patch b/package/madwifi/patches/385-antenna_fix.patch
index e3899643be..16c7d95c76 100644
--- a/package/madwifi/patches/385-antenna_fix.patch
+++ b/package/madwifi/patches/385-antenna_fix.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -6669,6 +6669,7 @@ ath_setdefantenna(struct ath_softc *sc, 
+@@ -6669,6 +6669,7 @@ ath_setdefantenna(struct ath_softc *sc,
  	struct ath_hal *ah = sc->sc_ah;
  
  	/* XXX block beacon interrupts */
diff --git a/package/madwifi/patches/386-acl_crashfix.patch b/package/madwifi/patches/386-acl_crashfix.patch
index f4ef4ca27f..04a1ec9110 100644
--- a/package/madwifi/patches/386-acl_crashfix.patch
+++ b/package/madwifi/patches/386-acl_crashfix.patch
@@ -37,7 +37,7 @@ Signed-off-by: Sebastian Gottschall <brainslayer@dd-wrt.com>
  	return NULL;
  }
  
-@@ -176,11 +183,11 @@ acl_add(struct ieee80211vap *vap, const 
+@@ -176,11 +183,11 @@ acl_add(struct ieee80211vap *vap, const
  		return -ENOMEM;
  	}
  
@@ -51,7 +51,7 @@ Signed-off-by: Sebastian Gottschall <brainslayer@dd-wrt.com>
  			FREE(new, M_80211_ACL);
  			IEEE80211_DPRINTF(vap, IEEE80211_MSG_ACL,
  				"ACL: add " MAC_FMT " failed, already present\n",
-@@ -191,7 +198,7 @@ acl_add(struct ieee80211vap *vap, const 
+@@ -191,7 +198,7 @@ acl_add(struct ieee80211vap *vap, const
  	IEEE80211_ADDR_COPY(new->acl_macaddr, mac);
  	TAILQ_INSERT_TAIL(&as->as_list, new, acl_list);
  	LIST_INSERT_HEAD(&as->as_hash[hash], new, acl_hash);
diff --git a/package/madwifi/patches/387-maxassoc.patch b/package/madwifi/patches/387-maxassoc.patch
index df2b7fd1f2..79e5b2f4fc 100644
--- a/package/madwifi/patches/387-maxassoc.patch
+++ b/package/madwifi/patches/387-maxassoc.patch
@@ -56,14 +56,14 @@
  	/*
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -4020,7 +4020,26 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -4020,7 +4020,26 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			vap->iv_stats.is_rx_assoc_norate++;
  			return;
  		}
 +		if (vap->iv_max_nodes > 0) {
 +			unsigned int active_nodes = 0;
 +			struct ieee80211_node *tni;
-+
+ 
 +			IEEE80211_NODE_TABLE_LOCK_IRQ(&ic->ic_sta);
 +			TAILQ_FOREACH(tni, &ic->ic_sta.nt_node, ni_list) {
 +				if (tni->ni_vap != vap)
@@ -73,7 +73,7 @@
 +				active_nodes++;
 +			}
 +			IEEE80211_NODE_TABLE_UNLOCK_IRQ(&ic->ic_sta);
- 
++
 +			if (active_nodes >= vap->iv_max_nodes) {
 +				/* too many nodes connected */
 +				ieee80211_node_leave(ni);
diff --git a/package/madwifi/patches/389-autochannel.patch b/package/madwifi/patches/389-autochannel.patch
index 06c5c12a7d..548f09e7d6 100644
--- a/package/madwifi/patches/389-autochannel.patch
+++ b/package/madwifi/patches/389-autochannel.patch
@@ -16,7 +16,7 @@
  	sc->sc_curchan.channel = ic->ic_curchan->ic_freq;
  	sc->sc_curchan.channelFlags = ath_chan2flags(ic->ic_curchan);
  	if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_FALSE, &status)) {
-@@ -2914,6 +2916,48 @@ ath_hw_check_atim(struct ath_softc *sc, 
+@@ -2914,6 +2916,48 @@ ath_hw_check_atim(struct ath_softc *sc,
  	return 0;
  }
  
@@ -118,7 +118,7 @@
  #define	IEEE80211_CHAN_MAX	255
 --- a/net80211/ieee80211_scan_ap.c
 +++ b/net80211/ieee80211_scan_ap.c
-@@ -417,6 +417,19 @@ pc_cmp_rssi(struct ap_state *as, struct 
+@@ -417,6 +417,19 @@ pc_cmp_rssi(struct ap_state *as, struct
  
  /* This function must be invoked with locks acquired */
  static int
@@ -196,7 +196,7 @@
  	}
  
  	if (best != NULL) {
-@@ -599,6 +583,9 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -599,6 +583,9 @@ ap_end(struct ieee80211_scan_state *ss,
  		("wrong opmode %u", vap->iv_opmode));
  
  	ic = vap->iv_ic;
diff --git a/package/madwifi/patches/390-frame_type.patch b/package/madwifi/patches/390-frame_type.patch
index 0987f7c5df..6de01102c6 100644
--- a/package/madwifi/patches/390-frame_type.patch
+++ b/package/madwifi/patches/390-frame_type.patch
@@ -1,6 +1,6 @@
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -4443,7 +4443,9 @@ ath_eth_type_trans(struct sk_buff *skb, 
+@@ -4443,7 +4443,9 @@ ath_eth_type_trans(struct sk_buff *skb,
  		if (memcmp(eth->h_dest, dev->dev_addr, ETH_ALEN))
  			skb->pkt_type = PACKET_OTHERHOST;
  
diff --git a/package/madwifi/patches/393-mbss_vap_auth.patch b/package/madwifi/patches/393-mbss_vap_auth.patch
index 0e3ecaf69f..a2637cccbb 100644
--- a/package/madwifi/patches/393-mbss_vap_auth.patch
+++ b/package/madwifi/patches/393-mbss_vap_auth.patch
@@ -291,7 +291,7 @@
  		if (TAILQ_NEXT(vap, iv_next) != NULL) {
  			skb1 = skb_copy(skb, GFP_ATOMIC);
  			if (skb1 == NULL) {
-@@ -950,8 +957,12 @@ ieee80211_input_all(struct ieee80211com 
+@@ -950,8 +957,12 @@ ieee80211_input_all(struct ieee80211com
  			skb1 = skb;
  			skb = NULL;
  		}
@@ -319,7 +319,7 @@
  					!ni1->ni_subif &&
  				    ni1 != vap->iv_bss) {
  
-@@ -3520,6 +3529,7 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3520,6 +3529,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
  				 (vap->iv_opmode == IEEE80211_M_WDS)) &&
  				(scan.capinfo & IEEE80211_CAPINFO_ESS))) {
  			struct ieee80211vap *avp = NULL;
@@ -327,7 +327,7 @@
  			int found = 0;
  
  			IEEE80211_LOCK_IRQ(vap->iv_ic);
-@@ -3553,10 +3563,12 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3553,10 +3563,12 @@ ieee80211_recv_mgmt(struct ieee80211vap
  					ni->ni_associd |= 0xc000;
  					avp->iv_wdsnode = ieee80211_ref_node(ni);
  					IEEE80211_UNLOCK_IRQ(ic);
@@ -341,7 +341,7 @@
  			} else {
  				/*
  				 * Copy data from beacon to neighbor table.
-@@ -3595,6 +3607,8 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3595,6 +3607,8 @@ ieee80211_recv_mgmt(struct ieee80211vap
  				ni->ni_rssi = rssi;
  				ni->ni_rtsf = rtsf;
  				ni->ni_last_rx = jiffies;
@@ -363,7 +363,7 @@
  	         (const struct ieee80211_frame_min *)skb->data);
  	if (ni == NULL) {
  		DPRINTF(sc, ATH_DEBUG_BEACON, "Dropping; node unknown.\n");
-@@ -6746,7 +6745,9 @@ ath_rx_poll(struct net_device *dev, int 
+@@ -6746,7 +6745,9 @@ ath_rx_poll(struct net_device *dev, int
  	struct ath_desc *ds;
  	struct ath_rx_status *rs;
  	struct sk_buff *skb = NULL;
diff --git a/package/madwifi/patches/394-probereq.patch b/package/madwifi/patches/394-probereq.patch
index c754bfa9f0..706d5a5ac3 100644
--- a/package/madwifi/patches/394-probereq.patch
+++ b/package/madwifi/patches/394-probereq.patch
@@ -1,6 +1,6 @@
 --- a/net80211/ieee80211_input.c
 +++ b/net80211/ieee80211_input.c
-@@ -3621,6 +3621,8 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3621,6 +3621,8 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			vap->iv_stats.is_rx_mgtdiscard++;
  			return;
  		}
diff --git a/package/madwifi/patches/396-napi_ff_fix.patch b/package/madwifi/patches/396-napi_ff_fix.patch
index f84c4b4d77..ca35d4ccac 100644
--- a/package/madwifi/patches/396-napi_ff_fix.patch
+++ b/package/madwifi/patches/396-napi_ff_fix.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -6734,10 +6734,10 @@ ath_rx_poll(struct net_device *dev, int 
+@@ -6734,10 +6734,10 @@ ath_rx_poll(struct net_device *dev, int
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
  	struct ath_softc *sc = container_of(napi, struct ath_softc, sc_napi);
  	struct net_device *dev = sc->sc_dev;
diff --git a/package/madwifi/patches/400-new_hal.patch b/package/madwifi/patches/400-new_hal.patch
index dca312597a..3989b0fb4d 100644
--- a/package/madwifi/patches/400-new_hal.patch
+++ b/package/madwifi/patches/400-new_hal.patch
@@ -15,7 +15,7 @@
  	/*
  	 * Check if the MAC has multi-rate retry support.
  	 * We do this by trying to setup a fake extended
-@@ -7568,7 +7576,7 @@ ath_txq_setup(struct ath_softc *sc, int 
+@@ -7568,7 +7576,7 @@ ath_txq_setup(struct ath_softc *sc, int
  	if (qtype == HAL_TX_QUEUE_UAPSD)
  		qi.tqi_qflags = HAL_TXQ_TXDESCINT_ENABLE;
  	else
diff --git a/package/madwifi/patches/408-changeset_r3337.patch b/package/madwifi/patches/408-changeset_r3337.patch
index c78daf4c69..53e76a9e8a 100644
--- a/package/madwifi/patches/408-changeset_r3337.patch
+++ b/package/madwifi/patches/408-changeset_r3337.patch
@@ -10,7 +10,7 @@
  Please let us know if you think your name should be mentioned here!
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -3147,7 +3147,7 @@ ath_tx_startraw(struct net_device *dev, 
+@@ -3147,7 +3147,7 @@ ath_tx_startraw(struct net_device *dev,
  	struct ath_softc *sc = dev->priv;
  	struct ath_hal *ah = sc->sc_ah;
  	struct ieee80211_phy_params *ph = (struct ieee80211_phy_params *)
diff --git a/package/madwifi/patches/411-autochannel_multi.patch b/package/madwifi/patches/411-autochannel_multi.patch
index 6e6d678fd4..d05c447f7b 100644
--- a/package/madwifi/patches/411-autochannel_multi.patch
+++ b/package/madwifi/patches/411-autochannel_multi.patch
@@ -307,7 +307,7 @@
  }
  
  
-@@ -575,6 +583,7 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -575,6 +583,7 @@ ap_end(struct ieee80211_scan_state *ss,
  	struct ap_state *as = ss->ss_priv;
  	struct ieee80211_channel *bestchan = NULL;
  	struct ieee80211com *ic = NULL;
@@ -315,7 +315,7 @@
  	int res = 1;
  
  	SCAN_AP_LOCK_IRQ(as);
-@@ -586,8 +595,11 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -586,8 +595,11 @@ ap_end(struct ieee80211_scan_state *ss,
  
  	/* record stats for the channel that was scanned last */
  	ic->ic_set_channel(ic);
@@ -327,7 +327,7 @@
  		if (ss->ss_last > 0) {
  			/* no suitable channel, should not happen */
  			printk(KERN_ERR "%s: %s: no suitable channel! "
-@@ -606,6 +618,7 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -606,6 +618,7 @@ ap_end(struct ieee80211_scan_state *ss,
  					bestchan->ic_freq, bestchan->ic_flags &
  					~IEEE80211_CHAN_TURBO)) == NULL) {
  				/* should never happen ?? */
@@ -335,7 +335,7 @@
  				SCAN_AP_UNLOCK_IRQ_EARLY(as);
  				return 0;
  			}
-@@ -618,6 +631,9 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -618,6 +631,9 @@ ap_end(struct ieee80211_scan_state *ss,
  			as->as_action = action;
  		as->as_selbss = se;
  
diff --git a/package/madwifi/patches/414-txpower.patch b/package/madwifi/patches/414-txpower.patch
index 6b33b8b1c0..3c18bd6fe0 100644
--- a/package/madwifi/patches/414-txpower.patch
+++ b/package/madwifi/patches/414-txpower.patch
@@ -180,7 +180,7 @@
  
  static void ath_poll_disable(struct net_device *dev);
  static void ath_poll_enable(struct net_device *dev);
-@@ -3168,7 +3167,7 @@ ath_tx_startraw(struct net_device *dev, 
+@@ -3168,7 +3167,7 @@ ath_tx_startraw(struct net_device *dev,
  	try0 = ph->try0;
  	rt = sc->sc_currates;
  	txrate = dot11_to_ratecode(sc, rt, ph->rate0);
diff --git a/package/madwifi/patches/416-wprobe.patch b/package/madwifi/patches/416-wprobe.patch
index 6c871f4257..0b378d7e26 100644
--- a/package/madwifi/patches/416-wprobe.patch
+++ b/package/madwifi/patches/416-wprobe.patch
@@ -444,7 +444,7 @@
  static int beacon_cal = 1;
  
  static const struct ath_hw_detect generic_hw_info = {
-@@ -1525,6 +1526,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1525,6 +1526,7 @@ ath_vap_create(struct ieee80211com *ic,
  		ath_hal_intrset(ah, sc->sc_imask);
  	}
  
@@ -509,7 +509,7 @@
  				if (bf->bf_skb->priority == WME_AC_VO ||
  				    bf->bf_skb->priority == WME_AC_VI)
  					ni->ni_ic->ic_wme.wme_hipri_traffic++;
-@@ -10111,6 +10124,7 @@ ath_newassoc(struct ieee80211_node *ni, 
+@@ -10111,6 +10124,7 @@ ath_newassoc(struct ieee80211_node *ni,
  	struct ath_softc *sc = ic->ic_dev->priv;
  
  	sc->sc_rc->ops->newassoc(sc, ATH_NODE(ni), isnew);
diff --git a/package/madwifi/patches/420-diversity_fix.patch b/package/madwifi/patches/420-diversity_fix.patch
index 4a5c0b093a..90bcd0e160 100644
--- a/package/madwifi/patches/420-diversity_fix.patch
+++ b/package/madwifi/patches/420-diversity_fix.patch
@@ -54,7 +54,7 @@
  	if (bfaddr != 0) {
  		/*
  		 * Stop any current DMA and put the new frame(s) on the queue.
-@@ -6734,9 +6708,8 @@ ath_setdefantenna(struct ath_softc *sc, 
+@@ -6734,9 +6708,8 @@ ath_setdefantenna(struct ath_softc *sc,
  {
  	struct ath_hal *ah = sc->sc_ah;
  
diff --git a/package/madwifi/patches/421-channel_handling.patch b/package/madwifi/patches/421-channel_handling.patch
index 8424321d76..2a8ec27ce3 100644
--- a/package/madwifi/patches/421-channel_handling.patch
+++ b/package/madwifi/patches/421-channel_handling.patch
@@ -8,7 +8,7 @@
  static void ath_updateslot(struct net_device *);
  static int ath_beaconq_setup(struct ath_softc *);
  static int ath_beacon_alloc(struct ath_softc *, struct ieee80211_node *);
-@@ -240,7 +239,7 @@ static void ath_setup_stationkey(struct 
+@@ -240,7 +239,7 @@ static void ath_setup_stationkey(struct
  static void ath_setup_stationwepkey(struct ieee80211_node *);
  static void ath_setup_keycacheslot(struct ath_softc *, struct ieee80211_node *);
  static void ath_newassoc(struct ieee80211_node *, int);
@@ -263,7 +263,7 @@
  
  	ath_rate_setup(dev, mode);
  	ath_setcurmode(sc, mode);
-@@ -10124,8 +10142,7 @@ ath_newassoc(struct ieee80211_node *ni, 
+@@ -10124,8 +10142,7 @@ ath_newassoc(struct ieee80211_node *ni,
  }
  
  static int
@@ -273,7 +273,7 @@
  {
  	struct ath_softc *sc = dev->priv;
  	struct ieee80211com *ic = &sc->sc_ic;
-@@ -10139,17 +10156,31 @@ ath_getchannels(struct net_device *dev, 
+@@ -10139,17 +10156,31 @@ ath_getchannels(struct net_device *dev,
  		EPRINTF(sc, "Insufficient memory for channel table!\n");
  		return -ENOMEM;
  	}
@@ -674,7 +674,7 @@
  	  .procname     = "rp",
  	  .mode         = 0200,
  	  .proc_handler = ath_sysctl_halparam,
-@@ -11669,13 +11801,6 @@ static ctl_table ath_static_sysctls[] = 
+@@ -11669,13 +11801,6 @@ static ctl_table ath_static_sysctls[] =
  	},
  #endif
  	{ .ctl_name	= CTL_AUTO,
@@ -688,7 +688,7 @@
  	  .procname	= "maxvaps",
  	  .mode		= 0444,
  	  .data		= &ath_maxvaps,
-@@ -11683,13 +11808,6 @@ static ctl_table ath_static_sysctls[] = 
+@@ -11683,13 +11808,6 @@ static ctl_table ath_static_sysctls[] =
  	  .proc_handler	= proc_dointvec
  	},
  	{ .ctl_name	= CTL_AUTO,
@@ -1109,7 +1109,7 @@
  	nrs = &ni->ni_rates;
  	fixedrate = IEEE80211_FIXED_RATE_NONE;
  	for (i = 0; i < nrs->rs_nrates;) {
-@@ -1407,6 +1407,7 @@ ieee80211_new_state(struct ieee80211vap 
+@@ -1407,6 +1407,7 @@ ieee80211_new_state(struct ieee80211vap
  	IEEE80211_VAPS_UNLOCK_IRQ(ic);
  	return rc;
  }
@@ -1294,7 +1294,7 @@
  	return best;
  }
  
-@@ -609,6 +611,7 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -609,6 +611,7 @@ ap_end(struct ieee80211_scan_state *ss,
  		res = 1; /* Do NOT restart scan */
  	} else {
  		struct ieee80211_scan_entry se;
@@ -1302,7 +1302,7 @@
  		/* XXX: notify all VAPs? */
  		/* if this is a dynamic turbo frequency , start with normal 
  		 * mode first */
-@@ -623,6 +626,11 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -623,6 +626,11 @@ ap_end(struct ieee80211_scan_state *ss,
  				return 0;
  			}
  		}
diff --git a/package/madwifi/patches/424-timing.patch b/package/madwifi/patches/424-timing.patch
index a8b82fa104..8369db6185 100644
--- a/package/madwifi/patches/424-timing.patch
+++ b/package/madwifi/patches/424-timing.patch
@@ -196,10 +196,12 @@
  static inline void ath_hal_beaconinit(struct ath_hal *ah, u_int32_t nexttbtt,
  				      u_int32_t intval)
  {
-@@ -841,6 +852,17 @@ static inline HAL_BOOL ath_hal_setslotti
+@@ -839,6 +850,17 @@ static inline HAL_BOOL ath_hal_setslotti
+ 	ath_hal_set_function(NULL);
+ 	ATH_HAL_UNLOCK_IRQ(ah->ah_sc);
  	return ret;
- }
- 
++}
++
 +static inline HAL_BOOL ath_hal_seteifstime(struct ath_hal *ah, u_int a1)
 +{
 +	HAL_BOOL ret;
@@ -209,11 +211,9 @@
 +	ath_hal_set_function(NULL);
 +	ATH_HAL_UNLOCK_IRQ(ah->ah_sc);
 +	return ret;
-+}
-+
+ }
+ 
  static inline void ath_hal_setledstate(struct ath_hal *ah, HAL_LED_STATE a1)
- {
- 	ATH_HAL_LOCK_IRQ(ah->ah_sc);
 --- a/ath/if_athvar.h
 +++ b/ath/if_athvar.h
 @@ -613,6 +613,15 @@ struct ath_rp {
@@ -446,7 +446,7 @@
  {
 --- a/ath_rate/sample/sample.c
 +++ b/ath_rate/sample/sample.c
-@@ -137,92 +137,6 @@ rate_to_ndx(struct sample_node *sn, int 
+@@ -137,92 +137,6 @@ rate_to_ndx(struct sample_node *sn, int
  	return -1;
  }
  
diff --git a/package/madwifi/patches/425-rc_rexmit.patch b/package/madwifi/patches/425-rc_rexmit.patch
index 10a6f9c511..252767a8cf 100644
--- a/package/madwifi/patches/425-rc_rexmit.patch
+++ b/package/madwifi/patches/425-rc_rexmit.patch
@@ -303,7 +303,7 @@
  		/* don't use a bit-rate that has been failing */
  		if (sn->stats[size_bin][x].successive_failures > 3)
  			continue;
-@@ -234,10 +230,6 @@ pick_sample_ndx(struct sample_node *sn, 
+@@ -234,10 +230,6 @@ pick_sample_ndx(struct sample_node *sn,
  		if (sn->rates[ndx].rate > 22 && ndx > current_ndx + 2)
  			continue;
  
diff --git a/package/madwifi/patches/430-use_netdev_priv.patch b/package/madwifi/patches/430-use_netdev_priv.patch
index 642a9d21d2..3f65424a5c 100644
--- a/package/madwifi/patches/430-use_netdev_priv.patch
+++ b/package/madwifi/patches/430-use_netdev_priv.patch
@@ -67,7 +67,7 @@
  	struct ath_hal *ah = sc->sc_ah;
  	struct net_device *dev;
  	struct ath_vap *avp;
-@@ -1344,7 +1344,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1344,7 +1344,7 @@ ath_vap_create(struct ieee80211com *ic,
  		return NULL;
  	}
  
@@ -175,7 +175,7 @@
  	struct ieee80211com *ic = &sc->sc_ic;
  	struct ath_hal *ah = sc->sc_ah;
  	struct ieee80211_channel *c;
-@@ -3164,7 +3164,7 @@ dot11_to_ratecode(struct ath_softc *sc, 
+@@ -3164,7 +3164,7 @@ dot11_to_ratecode(struct ath_softc *sc,
  static int
  ath_tx_startraw(struct net_device *dev, struct ath_buf *bf, struct sk_buff *skb)
  {
@@ -372,7 +372,7 @@
  #ifdef AR_DEBUG
          struct ieee80211_frame *wh = (struct ieee80211_frame *)skb->data;
  #endif
-@@ -6780,7 +6780,7 @@ ath_rx_poll(struct net_device *dev, int 
+@@ -6780,7 +6780,7 @@ ath_rx_poll(struct net_device *dev, int
  	struct net_device *dev = sc->sc_dev;
  	int rx_limit = budget;
  #else
@@ -543,7 +543,7 @@
  	ieee80211_keyix_t keyix;
  
  	keyix = ath_key_alloc(vap, &ni->ni_ucastkey);
-@@ -10177,7 +10177,7 @@ ath_newassoc(struct ieee80211_node *ni, 
+@@ -10177,7 +10177,7 @@ ath_newassoc(struct ieee80211_node *ni,
  {
  	struct ieee80211com *ic = ni->ni_ic;
  	struct ieee80211vap *vap = ni->ni_vap;
@@ -552,7 +552,7 @@
  
  	sc->sc_rc->ops->newassoc(sc, ATH_NODE(ni), isnew);
  	ath_wprobe_node_join(ni->ni_vap, ni);
-@@ -10208,7 +10208,7 @@ ath_newassoc(struct ieee80211_node *ni, 
+@@ -10208,7 +10208,7 @@ ath_newassoc(struct ieee80211_node *ni,
  static int
  ath_getchannels(struct net_device *dev)
  {
@@ -723,7 +723,7 @@
  	if (sc->sc_txcont_rate != new_rate) {
  		/*  NOTE: This value is sanity checked and dropped down to 
  		 *  closest rate in txcont_on. */
-@@ -12539,7 +12539,7 @@ ath_set_txcont_rate(struct ieee80211com 
+@@ -12539,7 +12539,7 @@ ath_set_txcont_rate(struct ieee80211com
  ath_get_txcont_rate(struct ieee80211com *ic)
  {
  	struct net_device *dev = ic->ic_dev;
@@ -786,7 +786,7 @@
  	ath_hal_dump_map(sc->sc_ah);
  	return 0;
  }
-@@ -12724,7 +12724,7 @@ ath_rcv_dev_event(struct notifier_block 
+@@ -12724,7 +12724,7 @@ ath_rcv_dev_event(struct notifier_block
  	void *ptr)
  {
  	struct net_device *dev = (struct net_device *)ptr;
@@ -938,7 +938,7 @@
  		}
  }
  
-@@ -822,7 +822,7 @@ ath_proc_read_nodes(struct ieee80211vap 
+@@ -822,7 +822,7 @@ ath_proc_read_nodes(struct ieee80211vap
  		unsigned int x = 0;
  		unsigned int this_tp, this_prob, this_eprob;
  #ifdef AR_DEBUG
@@ -1002,7 +1002,7 @@
  #define skb_tail_pointer(_skb) ((_skb)->tail)
 --- a/net80211/ieee80211.c
 +++ b/net80211/ieee80211.c
-@@ -458,7 +458,7 @@ ieee80211_vap_setup(struct ieee80211com 
+@@ -458,7 +458,7 @@ ieee80211_vap_setup(struct ieee80211com
  #define	IEEE80211_C_OPMODE \
  	(IEEE80211_C_IBSS | IEEE80211_C_HOSTAP | IEEE80211_C_AHDEMO | \
  	 IEEE80211_C_MONITOR)
@@ -1029,7 +1029,7 @@
  	struct ieee80211vap *vap;
  	struct ifmedia_entry *ime = ic->ic_media.ifm_cur;
  	enum ieee80211_phymode newphymode;
-@@ -1511,7 +1511,7 @@ checkrate(struct ieee80211com *ic, enum 
+@@ -1511,7 +1511,7 @@ checkrate(struct ieee80211com *ic, enum
  int
  ieee80211_media_change(struct net_device *dev)
  {
@@ -1552,7 +1552,7 @@
         struct ieee80211com *ic = vap->iv_ic;
         params[0] = ic->ic_dump_hal_map(ic);
         return 0;
-@@ -1545,7 +1545,7 @@ ieee80211_ioctl_radar(struct net_device 
+@@ -1545,7 +1545,7 @@ ieee80211_ioctl_radar(struct net_device
  	void *w, char *extra)
  {
  	int *params = (int*) extra;
@@ -1633,7 +1633,7 @@
  	struct ieee80211com *ic = vap->iv_ic;
  	struct ifreq ifr;
  	char s[6];		/* big enough for ``11adt'' */
-@@ -2222,10 +2222,10 @@ ieee80211_setathcap(struct ieee80211vap 
+@@ -2222,10 +2222,10 @@ ieee80211_setathcap(struct ieee80211vap
  static int
  ieee80211_set_turbo(struct net_device *dev, int flag)
  {
@@ -1862,7 +1862,7 @@
  	struct ieee80211com *ic = vap->iv_ic;
  	struct ieee80211_node *ni;
  	u_int8_t macaddr[IEEE80211_ADDR_LEN];
-@@ -4428,7 +4428,7 @@ get_scan_result(void *arg, const struct 
+@@ -4428,7 +4428,7 @@ get_scan_result(void *arg, const struct
  static int
  ieee80211_ioctl_getscanresults(struct net_device *dev, struct iwreq *iwr)
  {
diff --git a/package/madwifi/patches/432-netdev_ops.patch b/package/madwifi/patches/432-netdev_ops.patch
index 2e542bfece..af829b164a 100644
--- a/package/madwifi/patches/432-netdev_ops.patch
+++ b/package/madwifi/patches/432-netdev_ops.patch
@@ -53,7 +53,7 @@ http://madwifi-project.org/changeset/4005
  	unregister_netdev(dev);
  	return 0;
  }
-@@ -12732,8 +12749,13 @@ ath_rcv_dev_event(struct notifier_block 
+@@ -12732,8 +12749,13 @@ ath_rcv_dev_event(struct notifier_block
  	struct net_device *dev = (struct net_device *)ptr;
  	struct ath_softc *sc = (struct ath_softc *)netdev_priv(dev);
  
@@ -88,7 +88,7 @@ http://madwifi-project.org/changeset/4005
  int
  ieee80211_vap_setup(struct ieee80211com *ic, struct net_device *dev,
  	const char *name, int opmode, int flags, struct ieee80211vap *master)
-@@ -471,16 +483,21 @@ ieee80211_vap_setup(struct ieee80211com 
+@@ -471,16 +483,21 @@ ieee80211_vap_setup(struct ieee80211com
  		} else
  			strncpy(dev->name, name, sizeof(dev->name));
  	}
diff --git a/package/madwifi/patches/436-injection_checks.patch b/package/madwifi/patches/436-injection_checks.patch
index 7bdd82c0f9..2748731115 100644
--- a/package/madwifi/patches/436-injection_checks.patch
+++ b/package/madwifi/patches/436-injection_checks.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -3199,7 +3199,13 @@ ath_tx_startraw(struct net_device *dev, 
+@@ -3199,7 +3199,13 @@ ath_tx_startraw(struct net_device *dev,
  	struct ieee80211_frame *wh;
  
  	wh = (struct ieee80211_frame *)skb->data;
@@ -14,7 +14,7 @@
  	rt = sc->sc_currates;
  	txrate = dot11_to_ratecode(sc, rt, ph->rate0);
  	power = ph->power > 63 ? 63 : ph->power;
-@@ -3224,7 +3230,8 @@ ath_tx_startraw(struct net_device *dev, 
+@@ -3224,7 +3230,8 @@ ath_tx_startraw(struct net_device *dev,
  	rt = sc->sc_currates;
  	KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
  
diff --git a/package/madwifi/patches/440-wme_cleanup.patch b/package/madwifi/patches/440-wme_cleanup.patch
index d6c1b26838..bb81ac7f81 100644
--- a/package/madwifi/patches/440-wme_cleanup.patch
+++ b/package/madwifi/patches/440-wme_cleanup.patch
@@ -36,13 +36,13 @@
  	struct ieee80211vap *vap = ni->ni_vap;
 -	struct ether_header *eh = (struct ether_header *) skb->data;
 -	int v_wme_ac = 0, d_wme_ac = 0;
--
+ 
 -	/* default priority */
 -	skb->priority = WME_AC_BE;
 -
 -	if (!(ni->ni_flags & IEEE80211_NODE_QOS))
 -		return 0;
- 
+-
 -	/* 
 -	 * If node has a vlan tag then all traffic
 -	 * to it must have a matching vlan id.
diff --git a/package/madwifi/patches/441-fix_ibss_node_handling.patch b/package/madwifi/patches/441-fix_ibss_node_handling.patch
index b12930fbdf..20d59de26b 100644
--- a/package/madwifi/patches/441-fix_ibss_node_handling.patch
+++ b/package/madwifi/patches/441-fix_ibss_node_handling.patch
@@ -44,7 +44,7 @@
  			if (dir != IEEE80211_FC1_DIR_NODS) {
  				IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY,
  					wh, "data", "invalid dir 0x%x", dir);
-@@ -3558,6 +3563,11 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3558,6 +3563,11 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			} else if ((vap->iv_opmode == IEEE80211_M_WDS) && vap->iv_wdsnode) {
  				found = 1;
  				ni = ni_or_null = vap->iv_wdsnode;
@@ -56,7 +56,7 @@
  			}
  			IEEE80211_UNLOCK_IRQ(vap->iv_ic);
  
-@@ -3686,19 +3696,8 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3686,19 +3696,8 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			vap->iv_stats.is_rx_ssidmismatch++; /*XXX*/
  			return;
  		}
diff --git a/package/madwifi/patches/446-single_module.patch b/package/madwifi/patches/446-single_module.patch
index e546b054a8..b2898ca7eb 100644
--- a/package/madwifi/patches/446-single_module.patch
+++ b/package/madwifi/patches/446-single_module.patch
@@ -89,7 +89,7 @@
  {
 --- a/net80211/ieee80211_crypto_ccmp.c
 +++ b/net80211/ieee80211_crypto_ccmp.c
-@@ -686,6 +686,8 @@ ccmp_decrypt(struct ieee80211_key *key, 
+@@ -686,6 +686,8 @@ ccmp_decrypt(struct ieee80211_key *key,
  }
  #undef CCMP_DECRYPT
  
diff --git a/package/madwifi/patches/448-beacon_handling_fixes.patch b/package/madwifi/patches/448-beacon_handling_fixes.patch
index 3fa97e2e64..9c0f912e45 100644
--- a/package/madwifi/patches/448-beacon_handling_fixes.patch
+++ b/package/madwifi/patches/448-beacon_handling_fixes.patch
@@ -1,6 +1,6 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -160,7 +160,7 @@ static int ath_check_beacon_done(struct 
+@@ -160,7 +160,7 @@ static int ath_check_beacon_done(struct
  static void ath_beacon_send(struct ath_softc *, int *, uint64_t hw_tsf);
  static void ath_beacon_return(struct ath_softc *, struct ath_buf *);
  static void ath_beacon_free(struct ath_softc *);
@@ -81,7 +81,7 @@
  	if (xchanmode != -1)
  		ath_xchanmode = xchanmode;
  	error = ath_getchannels(dev);
-@@ -1349,12 +1337,6 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1349,12 +1337,6 @@ ath_vap_create(struct ieee80211com *ic,
  		return NULL;
  	}
  
@@ -94,7 +94,7 @@
  	dev = alloc_etherdev(sizeof(struct ath_vap) + sc->sc_rc->arc_vap_space);
  	if (dev == NULL) {
  		/* XXX msg */
-@@ -1424,7 +1406,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1424,7 +1406,7 @@ ath_vap_create(struct ieee80211com *ic,
  		TAILQ_FOREACH(v, &ic->ic_vaps, iv_next)
  			id_mask |= (1 << ATH_GET_VAP_ID(v->iv_myaddr));
  
@@ -103,7 +103,7 @@
  			/* get the first available slot */
  			if ((id_mask & (1 << id)) == 0) {
  				ATH_SET_VAP_BSSID(vap->iv_myaddr, id);
-@@ -1451,11 +1433,11 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1451,11 +1433,11 @@ ath_vap_create(struct ieee80211com *ic,
  		/* Assign the VAP to a beacon xmit slot.  As
  		 * above, this cannot fail to find one. */
  		avp->av_bslot = 0;
@@ -117,7 +117,7 @@
  				    sc->sc_bslot[slot+1] == NULL) {
  					avp->av_bslot = slot + 1;
  					break;
-@@ -1463,8 +1445,11 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1463,8 +1445,11 @@ ath_vap_create(struct ieee80211com *ic,
  				avp->av_bslot = slot;
  				/* NB: keep looking for a double slot */
  			}
@@ -131,7 +131,7 @@
  		sc->sc_bslot[avp->av_bslot] = vap;
  		sc->sc_nbcnvaps++;
  
-@@ -1475,15 +1460,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1475,15 +1460,7 @@ ath_vap_create(struct ieee80211com *ic,
  			 * of staggered beacons.
  			 */
  			/* XXX check for beacon interval too small */
@@ -148,7 +148,7 @@
  		}
  		DPRINTF(sc, ATH_DEBUG_BEACON, "sc->sc_stagbeacons %sabled\n", 
  				(sc->sc_stagbeacons ? "en" : "dis"));
-@@ -1553,7 +1530,7 @@ ath_vap_create(struct ieee80211com *ic, 
+@@ -1553,7 +1530,7 @@ ath_vap_create(struct ieee80211com *ic,
  		if (ath_startrecv(sc) != 0)	/* restart recv */
  			EPRINTF(sc, "Unable to start receive logic.\n");
  		if (sc->sc_beacons)
@@ -231,7 +231,7 @@
  {
  	struct ieee80211com *ic = &sc->sc_ic;
  	struct ath_hal *ah = sc->sc_ah;
-@@ -5553,7 +5530,7 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5553,7 +5530,7 @@ ath_beacon_config(struct ath_softc *sc,
  	/* We should reset hw TSF only once, so we increment
  	 * ni_tstamp.tsf to avoid resetting the hw TSF multiple
  	 * times */
@@ -240,7 +240,7 @@
  		reset_tsf = 1;
  		ni->ni_tstamp.tsf = cpu_to_le64(1);
  	}
-@@ -5567,7 +5544,7 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5567,7 +5544,7 @@ ath_beacon_config(struct ath_softc *sc,
  		/* NB: the beacon interval is kept internally in TUs */
  		intval = ic->ic_lintval & HAL_BEACON_PERIOD;
  		if (sc->sc_stagbeacons)
@@ -249,7 +249,7 @@
  		if ((sc->sc_nostabeacons) &&
  		    (vap->iv_opmode == IEEE80211_M_HOSTAP))
  			reset_tsf = 1;
-@@ -5583,31 +5560,24 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5583,31 +5560,24 @@ ath_beacon_config(struct ath_softc *sc,
  		 * time */
  		nexttbtt = intval;
  	} else if (intval) {	/* NB: can be 0 for monitor mode */
@@ -299,7 +299,7 @@
  		}
  	}
  
-@@ -5730,9 +5700,6 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5730,9 +5700,6 @@ ath_beacon_config(struct ath_softc *sc,
  		ath_beacon_dturbo_config(vap, intval &
  				~(HAL_BEACON_RESET_TSF | HAL_BEACON_ENA));
  #endif
@@ -378,7 +378,7 @@
  	  .procname	= "regdomain",
  	  .mode		= 0644,
  	  .proc_handler	= ath_sysctl_halparam,
-@@ -11928,13 +11883,6 @@ static ctl_table ath_static_sysctls[] = 
+@@ -11928,13 +11883,6 @@ static ctl_table ath_static_sysctls[] =
  	},
  #endif
  	{ .ctl_name	= CTL_AUTO,
diff --git a/package/madwifi/patches/451-ibss_race_fix.patch b/package/madwifi/patches/451-ibss_race_fix.patch
index 8349b318f2..27e1b47dad 100644
--- a/package/madwifi/patches/451-ibss_race_fix.patch
+++ b/package/madwifi/patches/451-ibss_race_fix.patch
@@ -43,7 +43,7 @@
  				}
  			}
  			iwspy_event(vap, ni, rssi);
-@@ -3553,8 +3546,8 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3553,8 +3546,8 @@ ieee80211_recv_mgmt(struct ieee80211vap
  				(((vap->iv_opmode == IEEE80211_M_HOSTAP) ||
  				 (vap->iv_opmode == IEEE80211_M_WDS)) &&
  				(scan.capinfo & IEEE80211_CAPINFO_ESS))) {
@@ -53,7 +53,7 @@
  			int found = 0;
  
  			IEEE80211_LOCK_IRQ(vap->iv_ic);
-@@ -3570,14 +3563,12 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3570,14 +3563,12 @@ ieee80211_recv_mgmt(struct ieee80211vap
  					}
  				}
  				if (found)
@@ -72,7 +72,7 @@
  				found = 1;
  			}
  			IEEE80211_UNLOCK_IRQ(vap->iv_ic);
-@@ -3585,20 +3576,21 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3585,20 +3576,21 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			if (!found)
  				break;
  
@@ -100,7 +100,7 @@
  			} else {
  				/*
  				 * Copy data from beacon to neighbor table.
-@@ -3606,39 +3598,38 @@ ieee80211_recv_mgmt(struct ieee80211vap 
+@@ -3606,39 +3598,38 @@ ieee80211_recv_mgmt(struct ieee80211vap
  				 * ieee80211_add_neighbor(), so we just copy
  				 * everything over to be safe.
  				 */
diff --git a/package/madwifi/patches/452-minstrel_no_timer.patch b/package/madwifi/patches/452-minstrel_no_timer.patch
index b9b5c9f074..f0f5c26f93 100644
--- a/package/madwifi/patches/452-minstrel_no_timer.patch
+++ b/package/madwifi/patches/452-minstrel_no_timer.patch
@@ -27,7 +27,7 @@
  
  
  #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,52))
-@@ -204,6 +202,11 @@ ath_rate_findrate(struct ath_softc *sc, 
+@@ -204,6 +202,11 @@ ath_rate_findrate(struct ath_softc *sc,
  		unsigned int ndx, offset;
  		int mrr;
  
diff --git a/package/madwifi/patches/455-beacon_watchdog.patch b/package/madwifi/patches/455-beacon_watchdog.patch
index e399564dfc..d0b4fa63e1 100644
--- a/package/madwifi/patches/455-beacon_watchdog.patch
+++ b/package/madwifi/patches/455-beacon_watchdog.patch
@@ -62,7 +62,7 @@
  /*
   * Configure the beacon and sleep timers.
   *
-@@ -5523,6 +5543,7 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5523,6 +5543,7 @@ ath_beacon_config(struct ath_softc *sc,
  	if (vap == NULL)
  		vap = TAILQ_FIRST(&ic->ic_vaps);   /* XXX */
  
@@ -70,7 +70,7 @@
  	ni = vap->iv_bss;
  
  	/* TSF calculation is timing critical - we don't want to be interrupted here */
-@@ -5699,6 +5720,9 @@ ath_beacon_config(struct ath_softc *sc, 
+@@ -5699,6 +5720,9 @@ ath_beacon_config(struct ath_softc *sc,
  			sc->sc_imask |= HAL_INT_SWBA;
  			ath_set_beacon_cal(sc, 1);
  			ath_beaconq_config(sc);
diff --git a/package/madwifi/patches/459-2.6.33_compile.patch b/package/madwifi/patches/459-2.6.33_compile.patch
index e3b94b1c8a..4e08a011a4 100644
--- a/package/madwifi/patches/459-2.6.33_compile.patch
+++ b/package/madwifi/patches/459-2.6.33_compile.patch
@@ -15,7 +15,7 @@
  char *uts_release = UTS_RELEASE;
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -11580,227 +11580,231 @@ static int mincalibrate = 1;		/* once a 
+@@ -11580,227 +11580,231 @@ static int mincalibrate = 1;		/* once a
  static int maxint = 0x7fffffff;		/* 32-bit big */
  
  static const ctl_table ath_sysctl_template[] = {
@@ -309,7 +309,7 @@
  	  .procname	= "debug",
  	  .mode		= 0644,
  	  .data		= &ath_debug,
-@@ -11974,14 +11982,14 @@ static ctl_table ath_static_sysctls[] = 
+@@ -11974,14 +11982,14 @@ static ctl_table ath_static_sysctls[] =
  	  .proc_handler	= proc_dointvec
  	},
  #endif
@@ -326,7 +326,7 @@
  	  .procname	= "calibrate",
  	  .mode		= 0644,
  	  .data		= &ath_calinterval,
-@@ -11993,14 +12001,14 @@ static ctl_table ath_static_sysctls[] = 
+@@ -11993,14 +12001,14 @@ static ctl_table ath_static_sysctls[] =
  	{ 0 }
  };
  static ctl_table ath_ath_table[] = {
diff --git a/package/madwifi/patches/462-fix_ap_scan.patch b/package/madwifi/patches/462-fix_ap_scan.patch
index 8a14f5b662..8798f534ec 100644
--- a/package/madwifi/patches/462-fix_ap_scan.patch
+++ b/package/madwifi/patches/462-fix_ap_scan.patch
@@ -1,6 +1,6 @@
 --- a/net80211/ieee80211_scan_ap.c
 +++ b/net80211/ieee80211_scan_ap.c
-@@ -595,6 +595,14 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -595,6 +595,14 @@ ap_end(struct ieee80211_scan_state *ss,
  
  	ic = vap->iv_ic;
  
@@ -15,7 +15,7 @@
  	/* record stats for the channel that was scanned last */
  	ic->ic_set_channel(ic);
  	spin_lock_irqsave(&channel_lock, sflags);
-@@ -648,6 +656,8 @@ ap_end(struct ieee80211_scan_state *ss, 
+@@ -648,6 +656,8 @@ ap_end(struct ieee80211_scan_state *ss,
  		IEEE80211_SCHEDULE_TQUEUE(&as->as_actiontq);
  		res = 1;
  	}
diff --git a/package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch b/package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch
index c963403ebc..2bcd09d863 100644
--- a/package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch
+++ b/package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch
@@ -1,5 +1,5 @@
---- a/ath/if_ath.c	2010-07-13 22:58:23.000000000 +0200
-+++ b/ath/if_ath.c	2010-07-13 23:03:20.000000000 +0200
+--- a/ath/if_ath.c
++++ b/ath/if_ath.c
 @@ -63,6 +63,8 @@
  #include <linux/rtnetlink.h>
  #include <linux/time.h>
@@ -9,7 +9,7 @@
  #include <asm/uaccess.h>
  
  #include "if_ethersubr.h"		/* for ETHER_IS_MULTICAST */
-@@ -587,6 +589,10 @@
+@@ -587,6 +589,10 @@ ath_attach(u_int16_t devid, struct net_d
  	unsigned int i;
  	int autocreatemode = -1;
  	u_int8_t csz;
@@ -20,7 +20,7 @@
  
  	sc->devid = devid;
  #ifdef AR_DEBUG
-@@ -648,6 +654,13 @@
+@@ -648,6 +654,13 @@ ath_attach(u_int16_t devid, struct net_d
  	}
  	sc->sc_ah = ah;
  
diff --git a/package/madwifi/patches/473-mutex_fix.patch b/package/madwifi/patches/473-mutex_fix.patch
index 8ba985fb76..22cea46a26 100644
--- a/package/madwifi/patches/473-mutex_fix.patch
+++ b/package/madwifi/patches/473-mutex_fix.patch
@@ -1,9 +1,11 @@
 --- a/ath/if_athvar.h
 +++ b/ath/if_athvar.h
-@@ -991,5 +991,5 @@
+@@ -974,7 +974,7 @@ typedef void (*ath_callback) (struct ath
  #endif
+ 
  /* Protects the device from concurrent accesses */
 -#define	ATH_LOCK_INIT(_sc)		init_MUTEX(&(_sc)->sc_lock)
 +#define	ATH_LOCK_INIT(_sc)		sema_init(&(_sc)->sc_lock, 1)
  #define	ATH_LOCK_DESTROY(_sc)
  #define	ATH_LOCK(_sc)			down(&(_sc)->sc_lock)
+ #define	ATH_UNLOCK(_sc)			up(&(_sc)->sc_lock)
-- 
GitLab