From 3ccd1aeab7ecc6374a80f050857d6da97f39abc5 Mon Sep 17 00:00:00 2001
From: Matteo Croce <rootkit85@yahoo.it>
Date: Wed, 3 Mar 2010 13:52:28 +0000
Subject: [PATCH] 2.6.33 fixes for atheros and madwifi

SVN-Revision: 19963
---
 .../madwifi/patches/459-2.6.33_compile.patch  | 536 ++++++++++++++++++
 .../atheros/patches-2.6.33/100-board.patch    | 140 +++--
 .../patches-2.6.33/110-ar2313_ethernet.patch  |   2 +-
 3 files changed, 628 insertions(+), 50 deletions(-)
 create mode 100644 package/madwifi/patches/459-2.6.33_compile.patch

diff --git a/package/madwifi/patches/459-2.6.33_compile.patch b/package/madwifi/patches/459-2.6.33_compile.patch
new file mode 100644
index 0000000000..493db55346
--- /dev/null
+++ b/package/madwifi/patches/459-2.6.33_compile.patch
@@ -0,0 +1,536 @@
+Index: madwifi-trunk-r3314/kernelversion.c
+===================================================================
+--- madwifi-trunk-r3314.orig/kernelversion.c	2010-03-03 11:24:57.250287480 +0100
++++ madwifi-trunk-r3314/kernelversion.c	2010-03-03 11:25:30.255287207 +0100
+@@ -10,7 +10,11 @@
+ 
+ /* Linux 2.6.18+ uses <linux/utsrelease.h> */
+ #ifndef UTS_RELEASE
+-#include <linux/utsrelease.h>
++  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++    #include <generated/utsrelease.h>
++  #else
++    #include <linux/utsrelease.h>
++  #endif
+ #endif
+ 
+ char *uts_release = UTS_RELEASE;
+Index: madwifi-trunk-r3314/ath/if_ath.c
+===================================================================
+--- madwifi-trunk-r3314.orig/ath/if_ath.c	2010-03-03 11:25:33.266287431 +0100
++++ madwifi-trunk-r3314/ath/if_ath.c	2010-03-03 12:07:39.606288303 +0100
+@@ -11580,227 +11580,231 @@
+ static int maxint = 0x7fffffff;		/* 32-bit big */
+ 
+ static const ctl_table ath_sysctl_template[] = {
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "dev_vendor",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_hwinfo,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
+ 	  .strategy   = &sysctl_string,
++#endif
+ 	  .data		= "N/A",
+ 	  .maxlen   = 1,
+ 	  .extra2	= (void *)ATH_CARD_VENDOR,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "dev_name",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_hwinfo,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
+ 	  .strategy   = &sysctl_string,
++#endif
+ 	  .data		= "N/A",
+ 	  .maxlen   = 1,
+ 	  .extra2	= (void *)ATH_CARD_NAME,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "slottime",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_SLOTTIME,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "acktimeout",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_ACKTIMEOUT,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "ctstimeout",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_CTSTIMEOUT,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "distance",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_DISTANCE,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "silent",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_SILENT,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "softled",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_SOFTLED,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "ledpin",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_LEDPIN,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "countrycode",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_COUNTRYCODE,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "outdoor",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_OUTDOOR,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "regdomain",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_REGDOMAIN,
+ 	},
+ #ifdef AR_DEBUG
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "debug",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_DEBUG,
+ 	},
+ #endif
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "poweroffset",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_POWEROFFSET,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "txantenna",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_TXANTENNA,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "rxantenna",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RXANTENNA,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "diversity",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_DIVERSITY,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "txintrperiod",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_TXINTRPERIOD,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "fftxqmin",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_FFTXQMIN,
+ 	},
+ #ifdef ATH_SUPERG_XR
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "xrpollperiod",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_XR_POLL_PERIOD,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "xrpollcount",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_XR_POLL_COUNT,
+ 	},
+ #endif
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "ackrate",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_ACKRATE,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "channelbw",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_CHANBW,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "rp",
+ 	  .mode         = 0200,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RP,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "radar_print",
+ 	  .mode         = 0200,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RP_PRINT,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "radar_print_all",
+ 	  .mode         = 0200,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RP_PRINT_ALL,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "radar_dump",
+ 	  .mode         = 0200,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RP_PRINT_MEM,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "radar_dump_all",
+ 	  .mode         = 0200,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RP_PRINT_MEM_ALL,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "rp_flush",
+ 	  .mode         = 0200,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RP_FLUSH,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "panic",
+ 	  .mode         = 0200,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_PANIC,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "rp_ignored",
+ 	  .mode         = 0644,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RP_IGNORED,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "radar_ignored",
+ 	  .mode         = 0644,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_RADAR_IGNORED,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "intmit",
+ 	  .mode         = 0644,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_INTMIT,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "noise_immunity",
+ 	  .mode         = 0644,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_NOISE_IMMUNITY,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "ofdm_weak_det",
+ 	  .mode         = 0644,
+ 	  .proc_handler = ath_sysctl_halparam,
+ 	  .extra2	= (void *)ATH_OFDM_WEAK_DET,
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname     = "cca_thresh",
+ 	  .mode         = 0644,
+ 	  .proc_handler = ath_sysctl_halparam,
+@@ -11838,12 +11842,16 @@
+ 
+ 	/* setup the table */
+ 	memset(sc->sc_sysctls, 0, space);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
+ 	sc->sc_sysctls[0].ctl_name = CTL_DEV;
++#endif
+ 	sc->sc_sysctls[0].procname = "dev";
+ 	sc->sc_sysctls[0].mode = 0555;
+ 	sc->sc_sysctls[0].child = &sc->sc_sysctls[2];
+ 	/* [1] is NULL terminator */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
+ 	sc->sc_sysctls[2].ctl_name = CTL_AUTO;
++#endif
+ 	sc->sc_sysctls[2].procname = dev_name;
+ 	sc->sc_sysctls[2].mode = 0555;
+ 	sc->sc_sysctls[2].child = &sc->sc_sysctls[4];
+@@ -11966,7 +11974,7 @@
+  */
+ static ctl_table ath_static_sysctls[] = {
+ #ifdef AR_DEBUG
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "debug",
+ 	  .mode		= 0644,
+ 	  .data		= &ath_debug,
+@@ -11974,14 +11982,14 @@
+ 	  .proc_handler	= proc_dointvec
+ 	},
+ #endif
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "xchanmode",
+ 	  .mode		= 0444,
+ 	  .data		= &ath_xchanmode,
+ 	  .maxlen	= sizeof(ath_xchanmode),
+ 	  .proc_handler	= proc_dointvec
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "calibrate",
+ 	  .mode		= 0644,
+ 	  .data		= &ath_calinterval,
+@@ -11993,14 +12001,14 @@
+ 	{ 0 }
+ };
+ static ctl_table ath_ath_table[] = {
+-	{ .ctl_name	= DEV_ATH,
++	{ CTLNAME(DEV_ATH)
+ 	  .procname	= "ath",
+ 	  .mode		= 0555,
+ 	  .child	= ath_static_sysctls
+ 	}, { 0 }
+ };
+ static ctl_table ath_root_table[] = {
+-	{ .ctl_name	= CTL_DEV,
++	{ CTLNAME(CTL_DEV)
+ 	  .procname	= "dev",
+ 	  .mode		= 0555,
+ 	  .child	= ath_ath_table
+Index: madwifi-trunk-r3314/ath/if_ath_ahb.h
+===================================================================
+--- madwifi-trunk-r3314.orig/ath/if_ath_ahb.h	2010-03-03 11:32:20.295286997 +0100
++++ madwifi-trunk-r3314/ath/if_ath_ahb.h	2010-03-03 11:32:56.782287828 +0100
+@@ -112,7 +112,11 @@
+ 	do { (void) (start); (void) (size); } while (0)
+ #endif
+ 
++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9)
++#define bus_dma_sync_single	dma_sync_single_for_cpu
++#else
+ #define bus_dma_sync_single	dma_sync_single
++#endif
+ #define bus_map_single		dma_map_single
+ #define bus_unmap_single	dma_unmap_single
+ #define bus_alloc_consistent(_hwdev, _sz, _hdma)		\
+Index: madwifi-trunk-r3314/ath_hal/ah_os.c
+===================================================================
+--- madwifi-trunk-r3314.orig/ath_hal/ah_os.c	2010-03-03 12:12:00.246286932 +0100
++++ madwifi-trunk-r3314/ath_hal/ah_os.c	2010-03-03 12:12:59.503287204 +0100
+@@ -518,7 +518,7 @@
+ 
+ static ctl_table ath_hal_sysctls[] = {
+ #ifdef AH_DEBUG
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "debug",
+ 	  .mode		= 0644,
+ 	  .data		= &ath_hal_debug,
+@@ -526,21 +526,21 @@
+ 	  .proc_handler	= proc_dointvec
+ 	},
+ #endif
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "dma_beacon_response_time",
+ 	  .data		= &ath_hal_dma_beacon_response_time,
+ 	  .maxlen	= sizeof(ath_hal_dma_beacon_response_time),
+ 	  .mode		= 0644,
+ 	  .proc_handler	= proc_dointvec
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "sw_beacon_response_time",
+ 	  .mode		= 0644,
+ 	  .data		= &ath_hal_sw_beacon_response_time,
+ 	  .maxlen	= sizeof(ath_hal_sw_beacon_response_time),
+ 	  .proc_handler	= proc_dointvec
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "swba_backoff",
+ 	  .mode		= 0644,
+ 	  .data		= &ath_hal_additional_swba_backoff,
+@@ -548,19 +548,19 @@
+ 	  .proc_handler	= proc_dointvec
+ 	},
+ #ifdef AH_DEBUG_ALQ
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "alq",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= sysctl_hw_ath_hal_log
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "alq_size",
+ 	  .mode		= 0644,
+ 	  .data		= &ath_hal_alq_qsize,
+ 	  .maxlen	= sizeof(ath_hal_alq_qsize),
+ 	  .proc_handler	= proc_dointvec
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "alq_lost",
+ 	  .mode		= 0644,
+ 	  .data		= &ath_hal_alq_lost,
+@@ -571,21 +571,21 @@
+ 	{ 0 }
+ };
+ static ctl_table ath_hal_table[] = {
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "hal",
+ 	  .mode		= 0555,
+ 	  .child	= ath_hal_sysctls
+ 	}, { 0 }
+ };
+ static ctl_table ath_ath_table[] = {
+-	{ .ctl_name	= DEV_ATH,
++	{ CTLNAME(DEV_ATH)
+ 	  .procname	= "ath",
+ 	  .mode		= 0555,
+ 	  .child	= ath_hal_table
+ 	}, { 0 }
+ };
+ static ctl_table ath_root_table[] = {
+-	{ .ctl_name	= CTL_DEV,
++	{ CTLNAME(CTL_DEV)
+ 	  .procname	= "dev",
+ 	  .mode		= 0555,
+ 	  .child	= ath_ath_table
+Index: madwifi-trunk-r3314/include/compat.h
+===================================================================
+--- madwifi-trunk-r3314.orig/include/compat.h	2010-03-03 11:58:09.526287574 +0100
++++ madwifi-trunk-r3314/include/compat.h	2010-03-03 12:09:53.194286975 +0100
+@@ -193,6 +193,12 @@
+ #define __skb_queue_after(_list, _old, _new)	__skb_append(_old, _new, _list)
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
++#define CTLNAME(x)	.ctl_name	= x,
++#else
++#define CTLNAME(x)
++#endif
++
+ #endif /* __KERNEL__ */
+ 
+ #endif /* _ATH_COMPAT_H_ */
+Index: madwifi-trunk-r3314/net80211/ieee80211_linux.c
+===================================================================
+--- madwifi-trunk-r3314.orig/net80211/ieee80211_linux.c	2010-03-03 11:56:37.423286722 +0100
++++ madwifi-trunk-r3314/net80211/ieee80211_linux.c	2010-03-03 12:11:06.962288262 +0100
+@@ -699,39 +699,39 @@
+ 
+ static const ctl_table ieee80211_sysctl_template[] = {
+ #ifdef IEEE80211_DEBUG
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "debug",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ieee80211_sysctl_debug
+ 	},
+ #endif
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "dev_type",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ieee80211_sysctl_dev_type
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "monitor_nods_only",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ieee80211_sysctl_monitor_nods_only
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "monitor_txf_len",
+ 	  .mode		= 0644,
+ 	  .proc_handler	= ieee80211_sysctl_monitor_txf_len
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "monitor_phy_errors",
+ 	  .mode		= 0644,
+ 	  .proc_handler = ieee80211_sysctl_monitor_phy_errors
+ 	},
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "monitor_crc_errors",
+ 	  .mode		= 0644,
+ 	  .proc_handler = ieee80211_sysctl_monitor_crc_errors
+ 	},
+ 	/* NB: must be last entry before NULL */
+-	{ .ctl_name	= CTL_AUTO,
++	{ CTLNAME(CTL_AUTO)
+ 	  .procname	= "%parent",
+ 	  .maxlen	= IFNAMSIZ,
+ 	  .mode		= 0444,
+@@ -786,12 +786,16 @@
+ 
+ 	/* setup the table */
+ 	memset(vap->iv_sysctls, 0, space);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
+ 	vap->iv_sysctls[0].ctl_name = CTL_NET;
++#endif
+ 	vap->iv_sysctls[0].procname = "net";
+ 	vap->iv_sysctls[0].mode = 0555;
+ 	vap->iv_sysctls[0].child = &vap->iv_sysctls[2];
+ 	/* [1] is NULL terminator */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
+ 	vap->iv_sysctls[2].ctl_name = CTL_AUTO;
++#endif
+ 	vap->iv_sysctls[2].procname = devname; /* XXX bad idea? */
+ 	vap->iv_sysctls[2].mode = 0555;
+ 	vap->iv_sysctls[2].child = &vap->iv_sysctls[4];
diff --git a/target/linux/atheros/patches-2.6.33/100-board.patch b/target/linux/atheros/patches-2.6.33/100-board.patch
index 014ea44f23..c8ed42a05a 100644
--- a/target/linux/atheros/patches-2.6.33/100-board.patch
+++ b/target/linux/atheros/patches-2.6.33/100-board.patch
@@ -1,6 +1,8 @@
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -84,6 +84,19 @@ config BCM63XX
+Index: linux-2.6.33/arch/mips/Kconfig
+===================================================================
+--- linux-2.6.33.orig/arch/mips/Kconfig	2010-03-03 12:20:01.790293217 +0100
++++ linux-2.6.33/arch/mips/Kconfig	2010-03-03 12:20:05.554288074 +0100
+@@ -84,6 +84,19 @@
  	help
  	 Support for BCM63XX based boards
  
@@ -20,7 +22,7 @@
  config MIPS_COBALT
  	bool "Cobalt Server"
  	select CEVT_R4K
-@@ -681,6 +694,7 @@ config CAVIUM_OCTEON_REFERENCE_BOARD
+@@ -681,6 +694,7 @@
  
  endchoice
  
@@ -28,9 +30,11 @@
  source "arch/mips/alchemy/Kconfig"
  source "arch/mips/bcm63xx/Kconfig"
  source "arch/mips/jazz/Kconfig"
---- a/arch/mips/Makefile
-+++ b/arch/mips/Makefile
-@@ -308,6 +308,13 @@ cflags-$(CONFIG_SOC_AU1X00)	+= -I$(srctr
+Index: linux-2.6.33/arch/mips/Makefile
+===================================================================
+--- linux-2.6.33.orig/arch/mips/Makefile	2010-03-03 12:20:01.742287339 +0100
++++ linux-2.6.33/arch/mips/Makefile	2010-03-03 12:20:05.554288074 +0100
+@@ -308,6 +308,13 @@
  
  
  #
@@ -44,8 +48,10 @@
  # Cobalt Server
  #
  core-$(CONFIG_MIPS_COBALT)	+= arch/mips/cobalt/
---- /dev/null
-+++ b/arch/mips/ar231x/Kconfig
+Index: linux-2.6.33/arch/mips/ar231x/Kconfig
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/Kconfig	2010-03-03 12:20:05.554288074 +0100
 @@ -0,0 +1,17 @@
 +config ATHEROS_AR5312
 +	bool "Atheros 5312/2312+ support"
@@ -64,8 +70,10 @@
 +	select SYS_SUPPORTS_BIG_ENDIAN
 +	select GENERIC_GPIO
 +	default y
---- /dev/null
-+++ b/arch/mips/ar231x/Makefile
+Index: linux-2.6.33/arch/mips/ar231x/Makefile
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/Makefile	2010-03-03 12:20:05.554288074 +0100
 @@ -0,0 +1,13 @@
 +#
 +# This file is subject to the terms and conditions of the GNU General Public
@@ -80,8 +88,10 @@
 +obj-y += board.o prom.o devices.o
 +obj-$(CONFIG_ATHEROS_AR5312) += ar5312.o
 +obj-$(CONFIG_ATHEROS_AR2315) += ar2315.o
---- /dev/null
-+++ b/arch/mips/ar231x/board.c
+Index: linux-2.6.33/arch/mips/ar231x/board.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/board.c	2010-03-03 12:20:22.306286892 +0100
 @@ -0,0 +1,251 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
@@ -94,7 +104,7 @@
 + * Copyright (C) 2006-2009 Felix Fietkau <nbd@openwrt.org>
 + */
 +
-+#include <linux/autoconf.h>
++#include <generated/autoconf.h>
 +#include <linux/init.h>
 +#include <linux/module.h>
 +#include <linux/types.h>
@@ -334,8 +344,10 @@
 +}
 +
 +
---- /dev/null
-+++ b/arch/mips/ar231x/prom.c
+Index: linux-2.6.33/arch/mips/ar231x/prom.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/prom.c	2010-03-03 12:20:05.554288074 +0100
 @@ -0,0 +1,37 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
@@ -354,7 +366,7 @@
 + */
 +
 +#include <linux/init.h>
-+#include <linux/autoconf.h>
++#include <generated/autoconf.h>
 +#include <linux/kernel.h>
 +#include <linux/string.h>
 +#include <linux/mm.h>
@@ -374,8 +386,10 @@
 +void __init prom_free_prom_memory(void)
 +{
 +}
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/ar231x_platform.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar231x_platform.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar231x_platform.h	2010-03-03 12:20:05.554288074 +0100
 @@ -0,0 +1,83 @@
 +#ifndef __AR531X_PLATFORM_H
 +#define __AR531X_PLATFORM_H
@@ -460,8 +474,10 @@
 +};
 +
 +#endif /* __AR531X_PLATFORM_H */
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/cpu-feature-overrides.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/cpu-feature-overrides.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/cpu-feature-overrides.h	2010-03-03 12:20:05.554288074 +0100
 @@ -0,0 +1,84 @@
 +/*
 + *  Atheros SoC specific CPU feature overrides
@@ -547,8 +563,10 @@
 +/* #define cpu_icache_line_size()	? */
 +
 +#endif /* __ASM_MACH_ATHEROS_CPU_FEATURE_OVERRIDES_H */
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/dma-coherence.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/dma-coherence.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/dma-coherence.h	2010-03-03 12:20:05.554288074 +0100
 @@ -0,0 +1,64 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
@@ -614,8 +632,10 @@
 +}
 +
 +#endif /* __ASM_MACH_GENERIC_DMA_COHERENCE_H */
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/gpio.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/gpio.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/gpio.h	2010-03-03 12:20:05.554288074 +0100
 @@ -0,0 +1,79 @@
 +#ifndef _ATHEROS_GPIO_H_
 +#define _ATHEROS_GPIO_H_
@@ -696,8 +716,10 @@
 +#include <asm-generic/gpio.h> /* cansleep wrappers */
 +
 +#endif
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/reset.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/reset.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/reset.h	2010-03-03 12:20:05.554288074 +0100
 @@ -0,0 +1,6 @@
 +#ifndef __AR531X_RESET_H
 +#define __AR531X_RESET_H
@@ -705,8 +727,10 @@
 +void ar531x_disable_reset_button(void);
 +
 +#endif /* __AR531X_RESET_H */
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/war.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/war.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/war.h	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,25 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
@@ -733,8 +757,10 @@
 +#define MIPS34K_MISSED_ITLB_WAR		0
 +
 +#endif /* __ASM_MIPS_MACH_ATHEROS_WAR_H */
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/ar2315_regs.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar2315_regs.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar2315_regs.h	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,580 @@
 +/*
 + * Register definitions for AR2315+
@@ -1316,8 +1342,10 @@
 +#define PCI_DEVICE_MEM_SPACE    0x800000
 +
 +#endif /* __AR2315_REG_H */
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/ar5312_regs.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar5312_regs.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar5312_regs.h	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,236 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
@@ -1555,8 +1583,10 @@
 +
 +#endif
 +
---- /dev/null
-+++ b/arch/mips/ar231x/ar5312.c
+Index: linux-2.6.33/arch/mips/ar231x/ar5312.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/ar5312.c	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,547 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
@@ -1573,7 +1603,7 @@
 + * Platform devices for Atheros SoCs
 + */
 +
-+#include <linux/autoconf.h>
++#include <generated/autoconf.h>
 +#include <linux/init.h>
 +#include <linux/module.h>
 +#include <linux/types.h>
@@ -2105,8 +2135,10 @@
 +	ar231x_serial_setup(KSEG1ADDR(AR531X_UART0), ar5312_sys_frequency());
 +}
 +
---- /dev/null
-+++ b/arch/mips/ar231x/ar2315.c
+Index: linux-2.6.33/arch/mips/ar231x/ar2315.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/ar2315.c	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,658 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
@@ -2123,7 +2155,7 @@
 + * Platform devices for Atheros SoCs
 + */
 +
-+#include <linux/autoconf.h>
++#include <generated/autoconf.h>
 +#include <linux/init.h>
 +#include <linux/module.h>
 +#include <linux/types.h>
@@ -2766,8 +2798,10 @@
 +	_machine_restart = ar2315_restart;
 +	ar231x_serial_setup(KSEG1ADDR(AR2315_UART0), ar2315_apb_frequency());
 +}
---- /dev/null
-+++ b/arch/mips/ar231x/ar2315.h
+Index: linux-2.6.33/arch/mips/ar231x/ar2315.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/ar2315.h	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,37 @@
 +#ifndef __AR2315_H
 +#define __AR2315_H
@@ -2806,8 +2840,10 @@
 +#endif
 +
 +#endif
---- /dev/null
-+++ b/arch/mips/ar231x/ar5312.h
+Index: linux-2.6.33/arch/mips/ar231x/ar5312.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/ar5312.h	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,38 @@
 +#ifndef __AR5312_H
 +#define __AR5312_H
@@ -2847,8 +2883,10 @@
 +#endif
 +
 +#endif
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ar231x/ar231x.h
+Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar231x.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar231x.h	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,54 @@
 +#ifndef __AR531X_H
 +#define __AR531X_H
@@ -2904,8 +2942,10 @@
 +}
 +
 +#endif
---- /dev/null
-+++ b/arch/mips/ar231x/devices.h
+Index: linux-2.6.33/arch/mips/ar231x/devices.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/devices.h	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,37 @@
 +#ifndef __AR231X_DEVICES_H
 +#define __AR231X_DEVICES_H
@@ -2944,8 +2984,10 @@
 +}
 +
 +#endif
---- /dev/null
-+++ b/arch/mips/ar231x/devices.c
+Index: linux-2.6.33/arch/mips/ar231x/devices.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.33/arch/mips/ar231x/devices.c	2010-03-03 12:20:05.558287696 +0100
 @@ -0,0 +1,175 @@
 +#include <linux/kernel.h>
 +#include <linux/init.h>
diff --git a/target/linux/atheros/patches-2.6.33/110-ar2313_ethernet.patch b/target/linux/atheros/patches-2.6.33/110-ar2313_ethernet.patch
index 6f511a730d..f24ee12b7c 100644
--- a/target/linux/atheros/patches-2.6.33/110-ar2313_ethernet.patch
+++ b/target/linux/atheros/patches-2.6.33/110-ar2313_ethernet.patch
@@ -1311,7 +1311,7 @@
 +#ifndef _AR2313_H_
 +#define _AR2313_H_
 +
-+#include <linux/autoconf.h>
++#include <generated/autoconf.h>
 +#include <linux/bitops.h>
 +#include <asm/bootinfo.h>
 +#include <ar231x_platform.h>
-- 
GitLab