Răsfoiți Sursa

break trunk temporary - upgrade to 2.6.21.1 and iptables 1.3.7

SVN-Revision: 7315
Imre Kaloz 18 ani în urmă
părinte
comite
615e8af841
34 a modificat fișierele cu 2418 adăugiri și 3485 ștergeri
  1. 2 2
      include/kernel-version.mk
  2. 2 2
      package/iptables/Makefile
  3. 15 18
      package/iptables/patches/005-imq1.patch
  4. 0 28
      package/iptables/patches/007-ifname_warning.patch
  5. 56 0
      target/linux/generic-2.6/config-template
  6. 35 35
      target/linux/generic-2.6/patches/001-squashfs.patch
  7. 126 115
      target/linux/generic-2.6/patches/002-lzma_decompress.patch
  8. 0 50
      target/linux/generic-2.6/patches/013-mips_generic_gpio_support.patch
  9. 0 61
      target/linux/generic-2.6/patches/050-mtdpart_redboot_partition_truncate.patch
  10. 14 16
      target/linux/generic-2.6/patches/060-rootfs_split.patch
  11. 2 2
      target/linux/generic-2.6/patches/110-ipp2p_0.8.1rc1.patch
  12. 27 29
      target/linux/generic-2.6/patches/120-openswan-2.4.0.kernel-2.6-natt.patch
  13. 78 79
      target/linux/generic-2.6/patches/130-netfilter-ipset.patch
  14. 41 57
      target/linux/generic-2.6/patches/150-netfilter_imq.patch
  15. 477 449
      target/linux/generic-2.6/patches/160-netfilter_route.patch
  16. 196 130
      target/linux/generic-2.6/patches/170-netfilter_chaostables.patch
  17. 139 76
      target/linux/generic-2.6/patches/200-sched_esfq.patch
  18. 33 918
      target/linux/generic-2.6/patches/201-multiple_default_gateways.patch
  19. 101 101
      target/linux/generic-2.6/patches/510-Yaffs.patch
  20. 53 55
      target/linux/generic-2.6/patches/600-x86_lzma.patch
  21. 0 12
      target/linux/generic-2.6/patches/700-airprime.patch
  22. 0 11
      target/linux/generic-2.6/patches/901-asm_bitops_include.patch
  23. 15 18
      target/linux/generic-2.6/patches/904-ls_time_locale.patch
  24. 9 0
      target/linux/ixp4xx-2.6/config/default
  25. 196 0
      target/linux/ixp4xx-2.6/patches/080-trivial_nslu2_nas100d_cleanup.patch
  26. 712 671
      target/linux/ixp4xx-2.6/patches/100-npe_driver.patch
  27. 0 36
      target/linux/ixp4xx-2.6/patches/102-nslu2_led_swap.patch
  28. 17 0
      target/linux/ixp4xx-2.6/patches/110-ixp4xx_net_driver_fix_mac_handling.patch
  29. 0 41
      target/linux/ixp4xx-2.6/patches/133-ixp4xx_net_driver_improve_mac_handling.patch
  30. 47 32
      target/linux/ixp4xx-2.6/patches/139-ixp4xx_net_driver_mtd_load_fw.patch
  31. 10 6
      target/linux/ixp4xx-2.6/patches/500-compex.patch
  32. 0 39
      target/linux/ixp4xx-2.6/patches/700-remove_avila_ixdp425_setup.patch
  33. 0 381
      target/linux/ixp4xx-2.6/patches/710-avila_loft_setup.patch
  34. 15 15
      target/linux/ixp4xx-2.6/patches/800-eeprom_new_notifier.patch

+ 2 - 2
include/kernel-version.mk

@@ -6,9 +6,9 @@ ifeq ($(LINUX_VERSION),)
     LINUX_RELEASE:=1
     LINUX_KERNEL_MD5SUM:=f59665540a7f3351ea416a0dad104b55
   else
-    LINUX_VERSION:=2.6.19.2
+    LINUX_VERSION:=2.6.21.1
     LINUX_RELEASE:=1
-    LINUX_KERNEL_MD5SUM:=ca0ce8f288e8ae93ac243b568f906bf8
+    LINUX_KERNEL_MD5SUM:=a28b78793cd368592f7873bf36cb38b0
   endif
 endif
 KERNEL:=2.$(word 2,$(subst ., ,$(strip $(LINUX_VERSION))))

+ 2 - 2
package/iptables/Makefile

@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=iptables
-PKG_VERSION:=1.3.5
+PKG_VERSION:=1.3.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
@@ -18,7 +18,7 @@ PKG_SOURCE_URL:=http://www.netfilter.org/projects/iptables/files \
 	ftp://ftp.be.netfilter.org/pub/netfilter/iptables/ \
 	ftp://ftp.de.netfilter.org/pub/netfilter/iptables/ \
 	ftp://ftp.no.netfilter.org/pub/netfilter/iptables/
-PKG_MD5SUM:=00fb916fa8040ca992a5ace56d905ea5
+PKG_MD5SUM:=dd965bdacbb86ce2a6498829fddda6b7
 
 include $(INCLUDE_DIR)/package.mk
 ifeq ($(DUMP),)

+ 15 - 18
package/iptables/patches/005-imq1.patch

@@ -1,20 +1,11 @@
-diff -urN iptables.old/extensions/.IMQ-test iptables.dev/extensions/.IMQ-test
---- iptables.old/extensions/.IMQ-test	1970-01-01 01:00:00.000000000 +0100
-+++ iptables.dev/extensions/.IMQ-test	2005-10-09 01:00:36.358959750 +0200
-@@ -0,0 +1,3 @@
-+#!/bin/sh
-+# True if IMQ target patch is applied.
-+[ -f $KERNEL_DIR/net/ipv4/netfilter/ipt_IMQ.c ] && echo IMQ
-diff -urN iptables.old/extensions/.IMQ-test6 iptables.dev/extensions/.IMQ-test6
---- iptables.old/extensions/.IMQ-test6	1970-01-01 01:00:00.000000000 +0100
-+++ iptables.dev/extensions/.IMQ-test6	2005-10-09 01:00:36.358959750 +0200
+--- iptables-1.3.6.orig/extensions.orig/.IMQ-test6	Thu Jan  1 01:00:00 1970
++++ iptables-1.3.6/extensions/.IMQ-test6	Mon Jun 16 10:12:47 2003
 @@ -0,0 +1,3 @@
 +#!/bin/sh
 +# True if IMQ target patch is applied.
 +[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_IMQ.c ] && echo IMQ
-diff -urN iptables.old/extensions/libip6t_IMQ.c iptables.dev/extensions/libip6t_IMQ.c
---- iptables.old/extensions/libip6t_IMQ.c	1970-01-01 01:00:00.000000000 +0100
-+++ iptables.dev/extensions/libip6t_IMQ.c	2005-10-09 01:00:36.358959750 +0200
+--- iptables-1.3.6.orig/extensions.orig/libip6t_IMQ.c	Thu Jan  1 01:00:00 1970
++++ iptables-1.3.6/extensions/libip6t_IMQ.c	Mon Jun 16 10:12:47 2003
 @@ -0,0 +1,101 @@
 +/* Shared library add-on to iptables to add IMQ target support. */
 +#include <stdio.h>
@@ -113,13 +104,18 @@ diff -urN iptables.old/extensions/libip6t_IMQ.c iptables.dev/extensions/libip6t_
 +	.extra_opts	= opts
 +};
 +
-+void _init(void)
++static __attribute__((constructor)) void _init(void)
 +{
 +	register_target6(&imq);
 +}
-diff -urN iptables.old/extensions/libipt_IMQ.c iptables.dev/extensions/libipt_IMQ.c
---- iptables.old/extensions/libipt_IMQ.c	1970-01-01 01:00:00.000000000 +0100
-+++ iptables.dev/extensions/libipt_IMQ.c	2005-10-09 01:00:36.358959750 +0200
+--- iptables-1.3.6.orig/extensions.orig/.IMQ-test	Thu Jan  1 01:00:00 1970
++++ iptables-1.3.6/extensions/.IMQ-test	Mon Jun 16 10:12:47 2003
+@@ -0,0 +1,3 @@
++#!/bin/sh
++# True if IMQ target patch is applied.
++[ -f $KERNEL_DIR/net/ipv4/netfilter/ipt_IMQ.c ] && echo IMQ
+--- iptables-1.3.6.orig/extensions.orig/libipt_IMQ.c	Thu Jan  1 01:00:00 1970
++++ iptables-1.3.6/extensions/libipt_IMQ.c	Mon Jun 16 10:12:47 2003
 @@ -0,0 +1,101 @@
 +/* Shared library add-on to iptables to add IMQ target support. */
 +#include <stdio.h>
@@ -218,7 +214,8 @@ diff -urN iptables.old/extensions/libipt_IMQ.c iptables.dev/extensions/libipt_IM
 +	.extra_opts	= opts
 +};
 +
-+void _init(void)
++static __attribute__((constructor)) void _init(void)
 +{
 +	register_target(&imq);
 +}
+

+ 0 - 28
package/iptables/patches/007-ifname_warning.patch

@@ -1,28 +0,0 @@
-diff -ur iptables.old/ip6tables.c iptables.dev/ip6tables.c
---- iptables.old/ip6tables.c	2006-01-30 09:43:12.000000000 +0100
-+++ iptables.dev/ip6tables.c	2007-01-02 00:29:50.000000000 +0100
-@@ -857,8 +857,9 @@
- 		for (i = 0; vianame[i]; i++) {
- 			if (!isalnum(vianame[i]) 
- 			    && vianame[i] != '_' 
-+			    && vianame[i] != '-' 
- 			    && vianame[i] != '.') {
--				printf("Warning: wierd character in interface"
-+				printf("Warning: weird character in interface"
- 				       " `%s' (No aliases, :, ! or *).\n",
- 				       vianame);
- 				break;
-diff -ur iptables.old/iptables.c iptables.dev/iptables.c
---- iptables.old/iptables.c	2006-01-30 09:43:09.000000000 +0100
-+++ iptables.dev/iptables.c	2007-01-02 00:29:38.000000000 +0100
-@@ -805,8 +805,9 @@
- 		for (i = 0; vianame[i]; i++) {
- 			if (!isalnum(vianame[i]) 
- 			    && vianame[i] != '_' 
-+			    && vianame[i] != '-' 
- 			    && vianame[i] != '.') {
--				printf("Warning: wierd character in interface"
-+				printf("Warning: weird character in interface"
- 				       " `%s' (No aliases, :, ! or *).\n",
- 				       vianame);
- 				break;

+ 56 - 0
target/linux/generic-2.6/config-template

@@ -20,6 +20,7 @@ CONFIG_ASK_IP_FIB_HASH=y
 # CONFIG_ATALK is not set
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_ATA_OVER_ETH is not set
+# CONFIG_ATL1 is not set
 CONFIG_ATM=m
 CONFIG_ATMEL=m
 # CONFIG_ATM_AMBASSADOR is not set
@@ -134,6 +135,7 @@ CONFIG_BT_SCO=m
 CONFIG_BUG=y
 # CONFIG_CAPI_AVM is not set
 # CONFIG_CAPI_EICON is not set
+# CONFIG_CAPI_TRACE is not set
 CONFIG_CARDBUS=y
 # CONFIG_CARDMAN_4000 is not set
 # CONFIG_CARDMAN_4040 is not set
@@ -141,6 +143,7 @@ CONFIG_CARDBUS=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 # CONFIG_CDROM_PKTCDVD is not set
 # CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
 # CONFIG_CHR_DEV_OSST is not set
 # CONFIG_CHR_DEV_SCH is not set
 # CONFIG_CHR_DEV_SG is not set
@@ -172,6 +175,7 @@ CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLKCIPHER=y
 CONFIG_CRYPTO_BLOWFISH=m
+# CONFIG_CRYPTO_CAMELLIA is not set
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
 CONFIG_CRYPTO_CBC=y
@@ -179,14 +183,18 @@ CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_DEFLATE=m
 CONFIG_CRYPTO_DES=y
 CONFIG_CRYPTO_ECB=m
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_GF128MUL is not set
 CONFIG_CRYPTO_HASH=m
 CONFIG_CRYPTO_HMAC=m
 CONFIG_CRYPTO_KHAZAD=m
+# CONFIG_CRYPTO_LRW is not set
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=y
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_NULL=m
+# CONFIG_CRYPTO_PCBC is not set
 CONFIG_CRYPTO_SERPENT=m
 CONFIG_CRYPTO_SHA1=m
 CONFIG_CRYPTO_SHA256=m
@@ -197,6 +205,7 @@ CONFIG_CRYPTO_TGR192=m
 CONFIG_CRYPTO_TWOFISH=m
 CONFIG_CRYPTO_TWOFISH_COMMON=m
 CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_XCBC is not set
 # CONFIG_DAVICOM_PHY is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_DEBUG_KERNEL is not set
@@ -220,6 +229,7 @@ CONFIG_DEVFS_MOUNT=y
 # CONFIG_DGRS is not set
 # CONFIG_DISCONTIGMEM_MANUAL is not set
 # CONFIG_DL2K is not set
+# CONFIG_DLM is not set
 # CONFIG_DMA_ENGINE is not set
 # CONFIG_DNOTIFY is not set
 # CONFIG_DRM is not set
@@ -367,6 +377,7 @@ CONFIG_IP6_NF_MATCH_FRAG=m
 CONFIG_IP6_NF_MATCH_HL=m
 CONFIG_IP6_NF_MATCH_IPV6HEADER=m
 CONFIG_IP6_NF_MATCH_LIMIT=m
+# CONFIG_IP6_NF_MATCH_MH is not set
 CONFIG_IP6_NF_MATCH_OPTS=m
 CONFIG_IP6_NF_MATCH_OWNER=m
 CONFIG_IP6_NF_MATCH_RT=m
@@ -417,6 +428,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
 CONFIG_IP_NF_CONNTRACK=y
 # CONFIG_IP_NF_CONNTRACK_EVENTS is not set
 CONFIG_IP_NF_CONNTRACK_MARK=y
+# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
 CONFIG_IP_NF_CT_ACCT=y
 CONFIG_IP_NF_CT_PROTO_SCTP=m
 CONFIG_IP_NF_FILTER=y
@@ -555,6 +567,7 @@ CONFIG_MAC_PARTITION=y
 # CONFIG_MEGARAID_LEGACY is not set
 # CONFIG_MEGARAID_NEWGEN is not set
 # CONFIG_MEGARAID_SAS is not set
+# CONFIG_MFD_SM501 is not set
 CONFIG_MII=y
 CONFIG_MINIX_FS=m
 # CONFIG_MINIX_SUBPARTITION is not set
@@ -587,6 +600,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=y
@@ -610,11 +624,15 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
 CONFIG_NETFILTER_XT_TARGET_DELUDE=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+# CONFIG_NET_KEY_MIGRATE is not set
 # CONFIG_NETPOLL is not set
 # CONFIG_NETROM is not set
 # CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETXEN_NIC is not set
 CONFIG_NET_ACT_GACT=m
 CONFIG_NET_ACT_IPT=m
 CONFIG_NET_ACT_MIRRED=m
@@ -674,6 +692,26 @@ CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_WIRELESS=y
 CONFIG_NET_WIRELESS_RTNETLINK=y
 CONFIG_NEW_LEDS=y
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+CONFIG_NF_CONNTRACK_ENABLED=y
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IPV4=y
+# CONFIG_NF_CONNTRACK_IPV6 is not set
+CONFIG_NF_CONNTRACK_IRC=m
+# CONFIG_NF_CONNTRACK_MARK is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_NF_CONNTRACK_SANE is not set
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_SUPPORT=y
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_ACCT is not set
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_NAT_SNMP_BASIC is not set
+CONFIG_NF_NAT=y
 CONFIG_NFSD=m
 CONFIG_NFSD_TCP=y
 # CONFIG_NFSD_V2_ACL is not set
@@ -739,6 +777,10 @@ CONFIG_PACKET=y
 CONFIG_PACKET_MMAP=y
 # CONFIG_PARPORT is not set
 CONFIG_PARTITION_ADVANCED=y
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_MARVELL is not set
+CONFIG_PATA_PLATFORM=m
+# CONFIG_PC300TOO is not set
 # CONFIG_PCCARD is not set
 CONFIG_PCI=y
 CONFIG_PCI_ATMEL=m
@@ -810,8 +852,11 @@ CONFIG_ROMFS_FS=m
 CONFIG_RPCSEC_GSS_KRB5=m
 # CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_RTC_CLASS is not set
+CONFIG_RTC_DRV_CMOS=y
 CONFIG_RT_MUTEXES=y
 # CONFIG_S2IO is not set
+# CONFIG_SATA_INIC162X is not set
+# CONFIG_SC92031 is not set
 CONFIG_SCSI=m
 # CONFIG_SCSI_3W_9XXX is not set
 # CONFIG_SCSI_AACRAID is not set
@@ -845,9 +890,12 @@ CONFIG_SCSI_PROC_FS=y
 # CONFIG_SCSI_QLOGIC_1280 is not set
 # CONFIG_SCSI_SAS_ATTRS is not set
 # CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
 # CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_SRP is not set
 # CONFIG_SCSI_STEX is not set
 # CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_TGT is not set
 # CONFIG_SECURITY is not set
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_SERIAL_8250=y
@@ -980,6 +1028,7 @@ CONFIG_SYN_COOKIES=y
 CONFIG_SYSCTL=y
 CONFIG_SYSCTL_SYSCALL=y
 CONFIG_SYSFS=y
+# CONFIG_SYSFS_DEPRECATED is not set
 CONFIG_SYSVIPC=y
 # CONFIG_SYSV_FS is not set
 # CONFIG_SYS_HYPERVISOR is not set
@@ -996,6 +1045,7 @@ CONFIG_TCP_CONG_SCALABLE=m
 CONFIG_TCP_CONG_VEGAS=y
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_WESTWOOD=m
+# CONFIG_TCP_MD5SIG is not set
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
@@ -1037,6 +1087,7 @@ CONFIG_USB_ATM=m
 # CONFIG_USB_AUERSWALD is not set
 # CONFIG_USB_BANDWIDTH is not set
 CONFIG_USB_BELKIN=y
+# CONFIG_USB_BERRY_CHARGE is not set
 CONFIG_USB_CATC=m
 # CONFIG_USB_CXACRU is not set
 # CONFIG_USB_CYPRESS_CY7C63 is not set
@@ -1054,6 +1105,7 @@ CONFIG_USB_EZUSB=y
 # CONFIG_USB_GADGET is not set
 # CONFIG_USB_HID is not set
 # CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_IOWARRIOR is not set
 # CONFIG_USB_ISP116X_HCD is not set
 CONFIG_USB_KAWETH=m
 # CONFIG_USB_KBD is not set
@@ -1176,12 +1228,15 @@ CONFIG_VIDEO_V4L2=y
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
 # CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CAFE_CCIC is not set
 # CONFIG_VIDEO_CS53L32A is not set
 # CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_OV7670 is not set
 # CONFIG_VIDEO_WM8775 is not set
 # CONFIG_VIDEO_WM8739 is not set
 # CONFIG_VIDEO_SAA711X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_USBVISION is not set
 # CONFIG_VIDEO_CX25840 is not set
 # CONFIG_VIDEO_CX2341X is not set
 # CONFIG_VIDEO_SAA7127 is not set
@@ -1226,6 +1281,7 @@ CONFIG_WIRELESS_EXT=y
 # CONFIG_WR_PPMC is not set
 # CONFIG_X25 is not set
 CONFIG_XFRM=y
+# CONFIG_XFRM_MIGRATE is not set
 # CONFIG_XFRM_SUB_POLICY is not set
 CONFIG_XFRM_USER=m
 CONFIG_XFS_FS=m

+ 35 - 35
target/linux/generic-2.6/patches/001-squashfs.patch

@@ -1,7 +1,7 @@
-diff -urN linux-2.6.19.old/fs/Kconfig linux-2.6.19.dev/fs/Kconfig
---- linux-2.6.19.old/fs/Kconfig	2006-12-14 03:13:16.000000000 +0100
-+++ linux-2.6.19.dev/fs/Kconfig	2006-12-14 03:13:16.000000000 +0100
-@@ -1457,6 +1457,71 @@
+diff -Nur linux-2.6.21.1/fs/Kconfig linux-2.6.21.1-owrt/fs/Kconfig
+--- linux-2.6.21.1/fs/Kconfig	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/fs/Kconfig	2007-05-23 19:09:55.000000000 +0200
+@@ -1371,6 +1371,71 @@
  
  	  If unsure, say N.
  
@@ -73,10 +73,10 @@ diff -urN linux-2.6.19.old/fs/Kconfig linux-2.6.19.dev/fs/Kconfig
  config VXFS_FS
  	tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
  	depends on BLOCK
-diff -urN linux-2.6.19.old/fs/Makefile linux-2.6.19.dev/fs/Makefile
---- linux-2.6.19.old/fs/Makefile	2006-12-14 03:13:16.000000000 +0100
-+++ linux-2.6.19.dev/fs/Makefile	2006-12-14 03:13:16.000000000 +0100
-@@ -67,6 +67,7 @@
+diff -Nur linux-2.6.21.1/fs/Makefile linux-2.6.21.1-owrt/fs/Makefile
+--- linux-2.6.21.1/fs/Makefile	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/fs/Makefile	2007-05-23 19:09:55.000000000 +0200
+@@ -68,6 +68,7 @@
  obj-$(CONFIG_JBD2)		+= jbd2/
  obj-$(CONFIG_EXT2_FS)		+= ext2/
  obj-$(CONFIG_CRAMFS)		+= cramfs/
@@ -84,9 +84,9 @@ diff -urN linux-2.6.19.old/fs/Makefile linux-2.6.19.dev/fs/Makefile
  obj-$(CONFIG_RAMFS)		+= ramfs/
  obj-$(CONFIG_HUGETLBFS)		+= hugetlbfs/
  obj-$(CONFIG_CODA_FS)		+= coda/
-diff -urN linux-2.6.19.old/fs/squashfs/inode.c linux-2.6.19.dev/fs/squashfs/inode.c
---- linux-2.6.19.old/fs/squashfs/inode.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/fs/squashfs/inode.c	2006-12-14 03:13:16.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/squashfs/inode.c linux-2.6.21.1-owrt/fs/squashfs/inode.c
+--- linux-2.6.21.1/fs/squashfs/inode.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/squashfs/inode.c	2007-05-23 19:52:20.000000000 +0200
 @@ -0,0 +1,2124 @@
 +/*
 + * Squashfs - a compressed read only filesystem for Linux
@@ -2160,13 +2160,13 @@ diff -urN linux-2.6.19.old/fs/squashfs/inode.c linux-2.6.19.dev/fs/squashfs/inod
 +}
 +
 +
-+static kmem_cache_t * squashfs_inode_cachep;
++static struct kmem_cache * squashfs_inode_cachep;
 +
 +
 +static struct inode *squashfs_alloc_inode(struct super_block *sb)
 +{
 +	struct squashfs_inode_info *ei;
-+	ei = kmem_cache_alloc(squashfs_inode_cachep, SLAB_KERNEL);
++	ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL);
 +	if (!ei)
 +		return NULL;
 +	return &ei->vfs_inode;
@@ -2179,7 +2179,7 @@ diff -urN linux-2.6.19.old/fs/squashfs/inode.c linux-2.6.19.dev/fs/squashfs/inod
 +}
 +
 +
-+static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags)
++static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags)
 +{
 +	struct squashfs_inode_info *ei = foo;
 +
@@ -2212,9 +2212,9 @@ diff -urN linux-2.6.19.old/fs/squashfs/inode.c linux-2.6.19.dev/fs/squashfs/inod
 +MODULE_DESCRIPTION("squashfs, a compressed read-only filesystem");
 +MODULE_AUTHOR("Phillip Lougher <[email protected]>");
 +MODULE_LICENSE("GPL");
-diff -urN linux-2.6.19.old/fs/squashfs/Makefile linux-2.6.19.dev/fs/squashfs/Makefile
---- linux-2.6.19.old/fs/squashfs/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/fs/squashfs/Makefile	2006-12-14 03:13:16.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/squashfs/Makefile linux-2.6.21.1-owrt/fs/squashfs/Makefile
+--- linux-2.6.21.1/fs/squashfs/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/squashfs/Makefile	2007-05-23 19:09:55.000000000 +0200
 @@ -0,0 +1,7 @@
 +#
 +# Makefile for the linux squashfs routines.
@@ -2223,9 +2223,9 @@ diff -urN linux-2.6.19.old/fs/squashfs/Makefile linux-2.6.19.dev/fs/squashfs/Mak
 +obj-$(CONFIG_SQUASHFS) += squashfs.o
 +squashfs-y += inode.o
 +squashfs-y += squashfs2_0.o
-diff -urN linux-2.6.19.old/fs/squashfs/squashfs2_0.c linux-2.6.19.dev/fs/squashfs/squashfs2_0.c
---- linux-2.6.19.old/fs/squashfs/squashfs2_0.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/fs/squashfs/squashfs2_0.c	2006-12-14 03:13:16.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/squashfs/squashfs2_0.c linux-2.6.21.1-owrt/fs/squashfs/squashfs2_0.c
+--- linux-2.6.21.1/fs/squashfs/squashfs2_0.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/squashfs/squashfs2_0.c	2007-05-23 19:09:55.000000000 +0200
 @@ -0,0 +1,758 @@
 +/*
 + * Squashfs - a compressed read only filesystem for Linux
@@ -2985,9 +2985,9 @@ diff -urN linux-2.6.19.old/fs/squashfs/squashfs2_0.c linux-2.6.19.dev/fs/squashf
 +
 +	return 1;
 +}
-diff -urN linux-2.6.19.old/fs/squashfs/squashfs.h linux-2.6.19.dev/fs/squashfs/squashfs.h
---- linux-2.6.19.old/fs/squashfs/squashfs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/fs/squashfs/squashfs.h	2006-12-14 03:13:16.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/squashfs/squashfs.h linux-2.6.21.1-owrt/fs/squashfs/squashfs.h
+--- linux-2.6.21.1/fs/squashfs/squashfs.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/squashfs/squashfs.h	2007-05-23 19:09:56.000000000 +0200
 @@ -0,0 +1,86 @@
 +/*
 + * Squashfs - a compressed read only filesystem for Linux
@@ -3075,9 +3075,9 @@ diff -urN linux-2.6.19.old/fs/squashfs/squashfs.h linux-2.6.19.dev/fs/squashfs/s
 +	return 0;
 +}
 +#endif
-diff -urN linux-2.6.19.old/include/linux/squashfs_fs.h linux-2.6.19.dev/include/linux/squashfs_fs.h
---- linux-2.6.19.old/include/linux/squashfs_fs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/squashfs_fs.h	2006-12-14 03:13:16.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/squashfs_fs.h linux-2.6.21.1-owrt/include/linux/squashfs_fs.h
+--- linux-2.6.21.1/include/linux/squashfs_fs.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/squashfs_fs.h	2007-05-23 19:09:56.000000000 +0200
 @@ -0,0 +1,911 @@
 +#ifndef SQUASHFS_FS
 +#define SQUASHFS_FS
@@ -3990,9 +3990,9 @@ diff -urN linux-2.6.19.old/include/linux/squashfs_fs.h linux-2.6.19.dev/include/
 +
 +#endif
 +#endif
-diff -urN linux-2.6.19.old/include/linux/squashfs_fs_i.h linux-2.6.19.dev/include/linux/squashfs_fs_i.h
---- linux-2.6.19.old/include/linux/squashfs_fs_i.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/squashfs_fs_i.h	2006-12-14 03:13:16.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/squashfs_fs_i.h linux-2.6.21.1-owrt/include/linux/squashfs_fs_i.h
+--- linux-2.6.21.1/include/linux/squashfs_fs_i.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/squashfs_fs_i.h	2007-05-23 19:09:56.000000000 +0200
 @@ -0,0 +1,45 @@
 +#ifndef SQUASHFS_FS_I
 +#define SQUASHFS_FS_I
@@ -4039,9 +4039,9 @@ diff -urN linux-2.6.19.old/include/linux/squashfs_fs_i.h linux-2.6.19.dev/includ
 +	struct inode	vfs_inode;
 +};
 +#endif
-diff -urN linux-2.6.19.old/include/linux/squashfs_fs_sb.h linux-2.6.19.dev/include/linux/squashfs_fs_sb.h
---- linux-2.6.19.old/include/linux/squashfs_fs_sb.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/squashfs_fs_sb.h	2006-12-14 03:13:16.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/squashfs_fs_sb.h linux-2.6.21.1-owrt/include/linux/squashfs_fs_sb.h
+--- linux-2.6.21.1/include/linux/squashfs_fs_sb.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/squashfs_fs_sb.h	2007-05-23 19:09:56.000000000 +0200
 @@ -0,0 +1,74 @@
 +#ifndef SQUASHFS_FS_SB
 +#define SQUASHFS_FS_SB
@@ -4117,9 +4117,9 @@ diff -urN linux-2.6.19.old/include/linux/squashfs_fs_sb.h linux-2.6.19.dev/inclu
 +	int			(*read_fragment_index_table)(struct super_block *s);
 +};
 +#endif
-diff -urN linux-2.6.19.old/init/do_mounts_rd.c linux-2.6.19.dev/init/do_mounts_rd.c
---- linux-2.6.19.old/init/do_mounts_rd.c	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19.dev/init/do_mounts_rd.c	2006-12-14 03:13:16.000000000 +0100
+diff -Nur linux-2.6.21.1/init/do_mounts_rd.c linux-2.6.21.1-owrt/init/do_mounts_rd.c
+--- linux-2.6.21.1/init/do_mounts_rd.c	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/init/do_mounts_rd.c	2007-05-23 19:09:56.000000000 +0200
 @@ -5,6 +5,7 @@
  #include <linux/ext2_fs.h>
  #include <linux/romfs_fs.h>

+ 126 - 115
target/linux/generic-2.6/patches/002-lzma_decompress.patch

@@ -1,15 +1,110 @@
---- linux-2.6.19.old/lib/Makefile	2007-04-18 17:41:22.679403384 +0200
-+++ linux-2.6.19.dev/lib/Makefile	2007-04-18 17:41:43.303268080 +0200
-@@ -54,6 +54,7 @@
- obj-$(CONFIG_AUDIT_GENERIC) += audit.o
- 
- obj-$(CONFIG_SWIOTLB) += swiotlb.o
-+obj-y += LzmaDecode.o
- 
- hostprogs-y	:= gen_crc32table
- clean-files	:= crc32table.h
---- linux-2.6.19.old/lib/LzmaDecode.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/lib/LzmaDecode.c	2006-12-14 03:13:20.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/LzmaDecode.h linux-2.6.21.1-owrt/include/linux/LzmaDecode.h
+--- linux-2.6.21.1/include/linux/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/LzmaDecode.h	2007-05-14 10:51:05.000000000 +0200
+@@ -0,0 +1,100 @@
++/*
++  LzmaDecode.h
++  LZMA Decoder interface
++
++  LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25)
++  http://www.7-zip.org/
++
++  LZMA SDK is licensed under two licenses:
++  1) GNU Lesser General Public License (GNU LGPL)
++  2) Common Public License (CPL)
++  It means that you can select one of these two licenses and
++  follow rules of that license.
++
++  SPECIAL EXCEPTION:
++  Igor Pavlov, as the author of this code, expressly permits you to
++  statically or dynamically link your code (or bind by name) to the
++  interfaces of this file without subjecting your linked code to the
++  terms of the CPL or GNU LGPL. Any modifications or additions
++  to this file, however, are subject to the LGPL or CPL terms.
++*/
++
++#ifndef __LZMADECODE_H
++#define __LZMADECODE_H
++
++/* #define _LZMA_IN_CB */
++/* Use callback for input data */
++
++/* #define _LZMA_OUT_READ */
++/* Use read function for output data */
++
++/* #define _LZMA_PROB32 */
++/* It can increase speed on some 32-bit CPUs,
++   but memory usage will be doubled in that case */
++
++/* #define _LZMA_LOC_OPT */
++/* Enable local speed optimizations inside code */
++
++#ifndef UInt32
++#ifdef _LZMA_UINT32_IS_ULONG
++#define UInt32 unsigned long
++#else
++#define UInt32 unsigned int
++#endif
++#endif
++
++#ifdef _LZMA_PROB32
++#define CProb UInt32
++#else
++#define CProb unsigned short
++#endif
++
++#define LZMA_RESULT_OK 0
++#define LZMA_RESULT_DATA_ERROR 1
++#define LZMA_RESULT_NOT_ENOUGH_MEM 2
++
++#ifdef _LZMA_IN_CB
++typedef struct _ILzmaInCallback
++{
++  int (*Read)(void *object, unsigned char **buffer, UInt32 *bufferSize);
++} ILzmaInCallback;
++#endif
++
++#define LZMA_BASE_SIZE 1846
++#define LZMA_LIT_SIZE 768
++
++/*
++bufferSize = (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp)))* sizeof(CProb)
++bufferSize += 100 in case of _LZMA_OUT_READ
++by default CProb is unsigned short,
++but if specify _LZMA_PROB_32, CProb will be UInt32(unsigned int)
++*/
++
++#ifdef _LZMA_OUT_READ
++int LzmaDecoderInit(
++    unsigned char *buffer, UInt32 bufferSize,
++    int lc, int lp, int pb,
++    unsigned char *dictionary, UInt32 dictionarySize,
++  #ifdef _LZMA_IN_CB
++    ILzmaInCallback *inCallback
++  #else
++    unsigned char *inStream, UInt32 inSize
++  #endif
++);
++#endif
++
++int LzmaDecode(
++    unsigned char *buffer,
++  #ifndef _LZMA_OUT_READ
++    UInt32 bufferSize,
++    int lc, int lp, int pb,
++  #ifdef _LZMA_IN_CB
++    ILzmaInCallback *inCallback,
++  #else
++    unsigned char *inStream, UInt32 inSize,
++  #endif
++  #endif
++    unsigned char *outStream, UInt32 outSize,
++    UInt32 *outSizeProcessed);
++
++#endif
+diff -Nur linux-2.6.21.1/lib/LzmaDecode.c linux-2.6.21.1-owrt/lib/LzmaDecode.c
+--- linux-2.6.21.1/lib/LzmaDecode.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/lib/LzmaDecode.c	2007-05-14 10:51:05.000000000 +0200
 @@ -0,0 +1,663 @@
 +/*
 +  LzmaDecode.c
@@ -674,107 +769,23 @@
 +  *outSizeProcessed = nowPos;
 +  return LZMA_RESULT_OK;
 +}
---- linux-2.6.19.old/include/linux/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/LzmaDecode.h	2006-12-14 03:13:20.000000000 +0100
-@@ -0,0 +1,100 @@
-+/*
-+  LzmaDecode.h
-+  LZMA Decoder interface
-+
-+  LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25)
-+  http://www.7-zip.org/
-+
-+  LZMA SDK is licensed under two licenses:
-+  1) GNU Lesser General Public License (GNU LGPL)
-+  2) Common Public License (CPL)
-+  It means that you can select one of these two licenses and
-+  follow rules of that license.
-+
-+  SPECIAL EXCEPTION:
-+  Igor Pavlov, as the author of this code, expressly permits you to
-+  statically or dynamically link your code (or bind by name) to the
-+  interfaces of this file without subjecting your linked code to the
-+  terms of the CPL or GNU LGPL. Any modifications or additions
-+  to this file, however, are subject to the LGPL or CPL terms.
-+*/
-+
-+#ifndef __LZMADECODE_H
-+#define __LZMADECODE_H
-+
-+/* #define _LZMA_IN_CB */
-+/* Use callback for input data */
-+
-+/* #define _LZMA_OUT_READ */
-+/* Use read function for output data */
-+
-+/* #define _LZMA_PROB32 */
-+/* It can increase speed on some 32-bit CPUs,
-+   but memory usage will be doubled in that case */
-+
-+/* #define _LZMA_LOC_OPT */
-+/* Enable local speed optimizations inside code */
-+
-+#ifndef UInt32
-+#ifdef _LZMA_UINT32_IS_ULONG
-+#define UInt32 unsigned long
-+#else
-+#define UInt32 unsigned int
-+#endif
-+#endif
-+
-+#ifdef _LZMA_PROB32
-+#define CProb UInt32
-+#else
-+#define CProb unsigned short
-+#endif
-+
-+#define LZMA_RESULT_OK 0
-+#define LZMA_RESULT_DATA_ERROR 1
-+#define LZMA_RESULT_NOT_ENOUGH_MEM 2
-+
-+#ifdef _LZMA_IN_CB
-+typedef struct _ILzmaInCallback
-+{
-+  int (*Read)(void *object, unsigned char **buffer, UInt32 *bufferSize);
-+} ILzmaInCallback;
-+#endif
-+
-+#define LZMA_BASE_SIZE 1846
-+#define LZMA_LIT_SIZE 768
-+
-+/*
-+bufferSize = (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp)))* sizeof(CProb)
-+bufferSize += 100 in case of _LZMA_OUT_READ
-+by default CProb is unsigned short,
-+but if specify _LZMA_PROB_32, CProb will be UInt32(unsigned int)
-+*/
-+
-+#ifdef _LZMA_OUT_READ
-+int LzmaDecoderInit(
-+    unsigned char *buffer, UInt32 bufferSize,
-+    int lc, int lp, int pb,
-+    unsigned char *dictionary, UInt32 dictionarySize,
-+  #ifdef _LZMA_IN_CB
-+    ILzmaInCallback *inCallback
-+  #else
-+    unsigned char *inStream, UInt32 inSize
-+  #endif
-+);
-+#endif
-+
-+int LzmaDecode(
-+    unsigned char *buffer,
-+  #ifndef _LZMA_OUT_READ
-+    UInt32 bufferSize,
-+    int lc, int lp, int pb,
-+  #ifdef _LZMA_IN_CB
-+    ILzmaInCallback *inCallback,
-+  #else
-+    unsigned char *inStream, UInt32 inSize,
-+  #endif
-+  #endif
-+    unsigned char *outStream, UInt32 outSize,
-+    UInt32 *outSizeProcessed);
+diff -Nur linux-2.6.21.1/lib/Makefile linux-2.6.21.1-owrt/lib/Makefile
+--- linux-2.6.21.1/lib/Makefile	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/lib/Makefile	2007-05-14 10:52:43.000000000 +0200
+@@ -12,7 +12,7 @@
+ 
+ lib-y	+= kobject.o kref.o kobject_uevent.o klist.o
+ 
+-obj-y += sort.o parser.o halfmd4.o debug_locks.o random32.o bust_spinlocks.o
++obj-y += sort.o parser.o halfmd4.o debug_locks.o random32.o bust_spinlocks.o LzmaDecode.o
+ 
+ ifeq ($(CONFIG_DEBUG_KOBJECT),y)
+ CFLAGS_kobject.o += -DDEBUG
+@@ -56,6 +56,7 @@
+ obj-$(CONFIG_AUDIT_GENERIC) += audit.o
+ 
+ obj-$(CONFIG_SWIOTLB) += swiotlb.o
 +
-+#endif
-
+ obj-$(CONFIG_FAULT_INJECTION) += fault-inject.o
+ 
+ lib-$(CONFIG_GENERIC_BUG) += bug.o

+ 0 - 50
target/linux/generic-2.6/patches/013-mips_generic_gpio_support.patch

@@ -1,50 +0,0 @@
---- linux-2.6.19.2.orig/arch/mips/Kconfig	2007-05-11 22:08:15.000000000 +0200
-+++ linux-2.6.19.2/arch/mips/Kconfig	2007-05-12 18:51:13.000000000 +0200
-@@ -818,6 +818,10 @@
- 	bool
- 	default y
- 
-+config GENERIC_GPIO
-+	bool
-+	default n
-+
- config SCHED_NO_NO_OMIT_FRAME_POINTER
- 	bool
- 	default y
---- linux-2.6.19.2.orig/include/asm-generic/gpio.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.2/include/asm-generic/gpio.h	2007-03-18 17:17:10.000000000 +0100
-@@ -0,0 +1,25 @@
-+#ifndef _ASM_GENERIC_GPIO_H
-+#define _ASM_GENERIC_GPIO_H
-+
-+/* platforms that don't directly support access to GPIOs through I2C, SPI,
-+ * or other blocking infrastructure can use these wrappers.
-+ */
-+
-+static inline int gpio_cansleep(unsigned gpio)
-+{
-+	return 0;
-+}
-+
-+static inline int gpio_get_value_cansleep(unsigned gpio)
-+{
-+	might_sleep();
-+	return gpio_get_value(gpio);
-+}
-+
-+static inline void gpio_set_value_cansleep(unsigned gpio, int value)
-+{
-+	might_sleep();
-+	gpio_set_value(gpio, value);
-+}
-+
-+#endif /* _ASM_GENERIC_GPIO_H */
---- linux-2.6.19.2.orig/include/asm-mips/gpio.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.2/include/asm-mips/gpio.h	2007-03-18 17:17:10.000000000 +0100
-@@ -0,0 +1,6 @@
-+#ifndef _ASM_MIPS_GPIO_H
-+#define _ASM_MIPS_GPIO_H
-+
-+#include <gpio.h>
-+
-+#endif /* _ASM_MIPS_GPIO_H */

+ 0 - 61
target/linux/generic-2.6/patches/050-mtdpart_redboot_partition_truncate.patch

@@ -1,61 +0,0 @@
-Redboot supports storing the FIS directory and the RedBoot
-configuration information in the same block of flash memory.  This is
-not the most common RedBoot configuration, but it is used on
-commercially available boards supported by the kernel.
-
-A recent patch to mtd/redboot.c (http://lkml.org/lkml/2006/3/20/410)
-which corrected the skipping of deleted table entries has exposed the
-latent problem of the kernel redboot parser running off the end of the
-FIS directory and interpreting the RedBoot configuration information
-as table entries.
-
-This patch terminates the table parsing when the first truly empty
-entry is found (table entry deletion only clears the first byte of the
-name, so two cleared bytes in a row indicates the end of the table),
-thereby supporting the combined redboot FIS directory and RedBoot
-configuration information flash layout scenario.
-
-Signed-off-by: Rod Whitby <[email protected]>
---
-
-Index: linux-2.6.19/drivers/mtd/redboot.c
-===================================================================
---- linux-2.6.19.orig/drivers/mtd/redboot.c
-+++ linux-2.6.19/drivers/mtd/redboot.c
-@@ -96,7 +96,19 @@ static int parse_redboot_partitions(stru
- 			 */
- 			if (swab32(buf[i].size) == master->erasesize) {
- 				int j;
--				for (j = 0; j < numslots && buf[j].name[0] != 0xff; ++j) {
-+				for (j = 0; j < numslots; ++j) {
-+
-+					/* A single 0xff denotes a deleted entry.
-+					 * Two of them in a row is the end of the table.
-+					 */
-+					if (buf[j].name[0] == 0xff) {
-+				  		if (buf[j].name[1] == 0xff) {
-+							break;
-+						} else {
-+							continue;
-+						}
-+					}
-+
- 					/* The unsigned long fields were written with the
- 					 * wrong byte sex, name and pad have no byte sex.
- 					 */
-@@ -123,8 +135,13 @@ static int parse_redboot_partitions(stru
- 	for (i = 0; i < numslots; i++) {
- 		struct fis_list *new_fl, **prev;
- 
--		if (buf[i].name[0] == 0xff)
--			continue;
-+		if (buf[i].name[0] == 0xff) {
-+			if (buf[i].name[1] == 0xff) {
-+				break;
-+			} else {
-+				continue;
-+			}
-+		}
- 		if (!redboot_checksum(&buf[i]))
- 			break;
- 

+ 14 - 16
target/linux/generic-2.6/patches/060-rootfs_split.patch

@@ -1,6 +1,6 @@
-diff -ur linux.old/drivers/mtd/Kconfig linux.dev/drivers/mtd/Kconfig
---- linux.old/drivers/mtd/Kconfig	2007-01-10 20:10:37.000000000 +0100
-+++ linux.dev/drivers/mtd/Kconfig	2007-02-19 23:00:53.739457000 +0100
+diff -Nur linux-2.6.21.1/drivers/mtd/Kconfig linux-2.6.21.1-owrt/drivers/mtd/Kconfig
+--- linux-2.6.21.1/drivers/mtd/Kconfig	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/drivers/mtd/Kconfig	2007-05-14 10:59:59.000000000 +0200
 @@ -49,6 +49,11 @@
  	  devices. Partitioning on NFTL 'devices' is a different - that's the
  	  'normal' form of partitioning used on a block device.
@@ -13,9 +13,9 @@ diff -ur linux.old/drivers/mtd/Kconfig linux.dev/drivers/mtd/Kconfig
  config MTD_REDBOOT_PARTS
  	tristate "RedBoot partition table parsing"
  	depends on MTD_PARTITIONS
-diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c
---- linux.old/drivers/mtd/mtdpart.c	2007-01-10 20:10:37.000000000 +0100
-+++ linux.dev/drivers/mtd/mtdpart.c	2007-02-20 00:01:38.587355896 +0100
+diff -Nur linux-2.6.21.1/drivers/mtd/mtdpart.c linux-2.6.21.1-owrt/drivers/mtd/mtdpart.c
+--- linux-2.6.21.1/drivers/mtd/mtdpart.c	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/drivers/mtd/mtdpart.c	2007-05-14 11:18:56.000000000 +0200
 @@ -20,6 +20,8 @@
  #include <linux/mtd/mtd.h>
  #include <linux/mtd/partitions.h>
@@ -25,7 +25,7 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c
  
  /* Our partition linked list */
  static LIST_HEAD(mtd_partitions);
-@@ -303,6 +305,173 @@
+@@ -308,6 +310,172 @@
  	return 0;
  }
  
@@ -35,14 +35,13 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c
 +	struct mtd_part *slave;
 +	
 +	/* allocate the partition structure */
-+	slave = kmalloc (sizeof(*slave), GFP_KERNEL);
++	slave = kzalloc (sizeof(*slave), GFP_KERNEL);
 +	if (!slave) {
 +		printk ("memory allocation error while creating partitions for \"%s\"\n",
 +			master->name);
 +		del_mtd_partitions(master);
 +		return -ENOMEM;
 +	}
-+	memset(slave, 0, sizeof(*slave));
 +	list_add(&slave->list, &mtd_partitions);
 +
 +	/* set up the MTD object for this partition */
@@ -51,8 +50,8 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c
 +	slave->mtd.size = part->size;
 +	slave->mtd.writesize = master->writesize;
 +	slave->mtd.oobsize = master->oobsize;
-+	slave->mtd.ecctype = master->ecctype;
-+	slave->mtd.eccsize = master->eccsize;
++	slave->mtd.oobavail = master->oobavail;
++	slave->mtd.subpage_sft = master->subpage_sft;
 +
 +	slave->mtd.name = part->name;
 +	slave->mtd.bank_size = master->bank_size;
@@ -199,7 +198,7 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c
  /*
   * This function, given a master MTD object and a partition table, creates
   * and registers slave MTD objects which are bound to the master according to
-@@ -314,171 +483,53 @@
+@@ -319,170 +487,53 @@
  		       const struct mtd_partition *parts,
  		       int nbparts)
  {
@@ -250,14 +249,13 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c
 +					return ret;
  
 -		/* allocate the partition structure */
--		slave = kmalloc (sizeof(*slave), GFP_KERNEL);
+-		slave = kzalloc (sizeof(*slave), GFP_KERNEL);
 -		if (!slave) {
 -			printk ("memory allocation error while creating partitions for \"%s\"\n",
 -				master->name);
 -			del_mtd_partitions(master);
 -			return -ENOMEM;
 -		}
--		memset(slave, 0, sizeof(*slave));
 -		list_add(&slave->list, &mtd_partitions);
 -
 -		/* set up the MTD object for this partition */
@@ -266,8 +264,8 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c
 -		slave->mtd.size = parts[i].size;
 -		slave->mtd.writesize = master->writesize;
 -		slave->mtd.oobsize = master->oobsize;
--		slave->mtd.ecctype = master->ecctype;
--		slave->mtd.eccsize = master->eccsize;
+-		slave->mtd.oobavail = master->oobavail;
+-		slave->mtd.subpage_sft = master->subpage_sft;
 -
 -		slave->mtd.name = parts[i].name;
 -		slave->mtd.bank_size = master->bank_size;

+ 2 - 2
target/linux/generic-2.6/patches/110-ipp2p_0.8.1rc1.patch

@@ -905,12 +905,12 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_ipp2p.c linux-2.6.19.dev/net/i
 +static int __init init(void)
 +{
 +    printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION);
-+    return ipt_register_match(&ipp2p_match);
++    return xt_register_match(&ipp2p_match);
 +}
 +
 +static void __exit fini(void)
 +{
-+    ipt_unregister_match(&ipp2p_match);
++    xt_unregister_match(&ipp2p_match);
 +    printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION);
 +}
 +

+ 27 - 29
target/linux/generic-2.6/patches/120-openswan-2.4.0.kernel-2.6-natt.patch

@@ -1,6 +1,6 @@
-diff -urN linux-2.6.19.old/include/net/xfrmudp.h linux-2.6.19.dev/include/net/xfrmudp.h
---- linux-2.6.19.old/include/net/xfrmudp.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/net/xfrmudp.h	2006-12-14 03:13:41.000000000 +0100
+diff -Nur linux-2.6.21.1/include/net/xfrmudp.h linux-2.6.21.1-owrt/include/net/xfrmudp.h
+--- linux-2.6.21.1/include/net/xfrmudp.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/net/xfrmudp.h	2007-05-14 11:26:11.000000000 +0200
 @@ -0,0 +1,10 @@
 +/*
 + * pointer to function for type that xfrm4_input wants, to permit
@@ -12,10 +12,10 @@ diff -urN linux-2.6.19.old/include/net/xfrmudp.h linux-2.6.19.dev/include/net/xf
 +extern int udp4_register_esp_rcvencap(xfrm4_rcv_encap_t func
 +				      , xfrm4_rcv_encap_t *oldfunc);
 +extern int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func);
-diff -urN linux-2.6.19.old/net/ipv4/Kconfig linux-2.6.19.dev/net/ipv4/Kconfig
---- linux-2.6.19.old/net/ipv4/Kconfig	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/Kconfig	2006-12-14 03:13:41.000000000 +0100
-@@ -273,6 +273,12 @@
+diff -Nur linux-2.6.21.1/net/ipv4/Kconfig linux-2.6.21.1-owrt/net/ipv4/Kconfig
+--- linux-2.6.21.1/net/ipv4/Kconfig	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/net/ipv4/Kconfig	2007-05-14 11:26:11.000000000 +0200
+@@ -266,6 +266,12 @@
  	  Network), but can be distributed all over the Internet. If you want
  	  to do that, say Y here and to "IP multicast routing" below.
  
@@ -28,14 +28,15 @@ diff -urN linux-2.6.19.old/net/ipv4/Kconfig linux-2.6.19.dev/net/ipv4/Kconfig
  config IP_MROUTE
  	bool "IP: multicast routing"
  	depends on IP_MULTICAST
-diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c
---- linux-2.6.19.old/net/ipv4/udp.c	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/udp.c	2006-12-14 03:13:41.000000000 +0100
-@@ -108,11 +108,14 @@
- #include <net/inet_common.h>
+diff -Nur linux-2.6.21.1/net/ipv4/udp.c linux-2.6.21.1-owrt/net/ipv4/udp.c
+--- linux-2.6.21.1/net/ipv4/udp.c	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/net/ipv4/udp.c	2007-05-14 11:42:44.000000000 +0200
+@@ -101,12 +101,15 @@
+ #include <net/route.h>
  #include <net/checksum.h>
  #include <net/xfrm.h>
 +#include <net/xfrmudp.h>
+ #include "udp_impl.h"
  
  /*
   *	Snmp MIB for the UDP layer
@@ -46,8 +47,8 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c
  DEFINE_SNMP_STAT(struct udp_mib, udp_statistics) __read_mostly;
  
  struct hlist_head udp_hash[UDP_HTABLE_SIZE];
-@@ -917,6 +920,42 @@
- 	sk_common_release(sk);
+@@ -915,6 +918,42 @@
+ 	return 0;
  }
  
 +#if defined(CONFIG_XFRM) || defined(CONFIG_IPSEC_NAT_TRAVERSAL)
@@ -89,19 +90,16 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c
  /* return:
   * 	1  if the the UDP system should process it
   *	0  if we should drop this packet
-@@ -924,9 +963,9 @@
+@@ -922,7 +961,7 @@
   */
  static int udp_encap_rcv(struct sock * sk, struct sk_buff *skb)
  {
 -#ifndef CONFIG_XFRM
 +#if !defined(CONFIG_XFRM) && !defined(CONFIG_IPSEC_NAT_TRAVERSAL)
- 	return 1; 
--#else
-+#else /* either CONFIG_XFRM or CONFIG_IPSEC_NAT_TRAVERSAL */
+ 	return 1;
+ #else
  	struct udp_sock *up = udp_sk(sk);
-   	struct udphdr *uh;
- 	struct iphdr *iph;
-@@ -939,11 +978,11 @@
+@@ -937,11 +976,11 @@
  	/* if we're overly short, let UDP handle it */
  	len = skb->len - sizeof(struct udphdr);
  	if (len <= 0)
@@ -115,7 +113,7 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c
  
  	/* If this is a paged skb, make sure we pull up
  	 * whatever data we need to look at. */
-@@ -966,7 +1005,7 @@
+@@ -964,7 +1003,7 @@
  			len = sizeof(struct udphdr);
  		} else
  			/* Must be an IKE packet.. pass it through */
@@ -124,7 +122,7 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c
  		break;
  	case UDP_ENCAP_ESPINUDP_NON_IKE:
  		/* Check if this is a keepalive packet.  If so, eat it. */
-@@ -979,7 +1018,7 @@
+@@ -977,7 +1016,7 @@
  			len = sizeof(struct udphdr) + 2 * sizeof(u32);
  		} else
  			/* Must be an IKE packet.. pass it through */
@@ -133,7 +131,7 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c
  		break;
  	}
  
-@@ -990,6 +1029,8 @@
+@@ -988,6 +1027,8 @@
  	 */
  	if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
  		return 0;
@@ -142,24 +140,24 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c
  
  	/* Now we can update and verify the packet length... */
  	iph = skb->nh.iph;
-@@ -1055,9 +1096,13 @@
+@@ -1051,9 +1092,13 @@
  			return 0;
  		}
  		if (ret < 0) {
 -			/* process the ESP packet */
 -			ret = xfrm4_rcv_encap(skb, up->encap_type);
--			UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS);
+-			UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag);
 +			if(xfrm4_rcv_encap_func != NULL) {
 +			  ret = (*xfrm4_rcv_encap_func)(skb, up->encap_type);
-+			  UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS);
++			  UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag);
 +			} else {
-+			  UDP_INC_STATS_BH(UDP_MIB_INERRORS);
++			  UDP_INC_STATS_BH(UDP_MIB_INERRORS, up->pcflag);
 +			  ret = 1;
 +			}
  			return -ret;
  		}
  		/* FALLTHROUGH -- it's a UDP Packet */
-@@ -1639,3 +1684,9 @@
+@@ -1733,3 +1778,9 @@
  EXPORT_SYMBOL(udp_proc_register);
  EXPORT_SYMBOL(udp_proc_unregister);
  #endif

+ 78 - 79
target/linux/generic-2.6/patches/130-netfilter-ipset.patch

@@ -1,6 +1,6 @@
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,489 @@
 +#ifndef _IP_SET_H
 +#define _IP_SET_H
@@ -491,9 +491,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set.h linux-2.6.19.de
 +#endif				/* __KERNEL__ */
 +
 +#endif /*_IP_SET_H*/
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iphash.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_iphash.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iphash.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_iphash.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_iphash.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_iphash.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_iphash.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_iphash.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,30 @@
 +#ifndef __IP_SET_IPHASH_H
 +#define __IP_SET_IPHASH_H
@@ -525,9 +525,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iphash.h linux-2.
 +};
 +
 +#endif	/* __IP_SET_IPHASH_H */
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_ipmap.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_ipmap.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_ipmap.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_ipmap.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_ipmap.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_ipmap.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_ipmap.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_ipmap.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,56 @@
 +#ifndef __IP_SET_IPMAP_H
 +#define __IP_SET_IPMAP_H
@@ -585,9 +585,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_ipmap.h linux-2.6
 +}
 +
 +#endif /* __IP_SET_IPMAP_H */
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iptree.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_iptree.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iptree.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_iptree.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_iptree.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_iptree.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_iptree.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_iptree.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,39 @@
 +#ifndef __IP_SET_IPTREE_H
 +#define __IP_SET_IPTREE_H
@@ -628,9 +628,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iptree.h linux-2.
 +};
 +
 +#endif	/* __IP_SET_IPTREE_H */
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_jhash.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_jhash.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_jhash.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_jhash.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_jhash.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_jhash.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_jhash.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_jhash.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,148 @@
 +#ifndef _LINUX_IPSET_JHASH_H
 +#define _LINUX_IPSET_JHASH_H
@@ -780,9 +780,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_jhash.h linux-2.6
 +}
 +
 +#endif /* _LINUX_IPSET_JHASH_H */
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_macipmap.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_macipmap.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_macipmap.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_macipmap.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_macipmap.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_macipmap.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_macipmap.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_macipmap.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,38 @@
 +#ifndef __IP_SET_MACIPMAP_H
 +#define __IP_SET_MACIPMAP_H
@@ -822,9 +822,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_macipmap.h linux-
 +};
 +
 +#endif	/* __IP_SET_MACIPMAP_H */
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_malloc.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_malloc.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_malloc.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_malloc.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_malloc.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_malloc.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_malloc.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_malloc.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,42 @@
 +#ifndef _IP_SET_MALLOC_H
 +#define _IP_SET_MALLOC_H
@@ -868,9 +868,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_malloc.h linux-2.
 +#endif				/* __KERNEL__ */
 +
 +#endif /*_IP_SET_MALLOC_H*/
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_nethash.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_nethash.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_nethash.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_nethash.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_nethash.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_nethash.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_nethash.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_nethash.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,55 @@
 +#ifndef __IP_SET_NETHASH_H
 +#define __IP_SET_NETHASH_H
@@ -927,9 +927,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_nethash.h linux-2
 +}
 +
 +#endif	/* __IP_SET_NETHASH_H */
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_portmap.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_portmap.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_portmap.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_portmap.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_portmap.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_portmap.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_portmap.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_portmap.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,25 @@
 +#ifndef __IP_SET_PORTMAP_H
 +#define __IP_SET_PORTMAP_H
@@ -956,9 +956,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_portmap.h linux-2
 +};
 +
 +#endif /* __IP_SET_PORTMAP_H */
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_prime.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_prime.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_prime.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_prime.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_prime.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_prime.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_prime.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_prime.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,34 @@
 +#ifndef __IP_SET_PRIME_H
 +#define __IP_SET_PRIME_H
@@ -994,9 +994,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_prime.h linux-2.6
 +}
 +
 +#endif /* __IP_SET_PRIME_H */
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ipt_set.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ipt_set.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/ipt_set.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ipt_set.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ipt_set.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ipt_set.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/ipt_set.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ipt_set.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,21 @@
 +#ifndef _IPT_SET_H
 +#define _IPT_SET_H
@@ -1019,9 +1019,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ipt_set.h linux-2.6.19.d
 +};
 +
 +#endif /*_IPT_SET_H*/
-diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/listhelp.h linux-2.6.19.dev/include/linux/netfilter_ipv4/listhelp.h
---- linux-2.6.19.old/include/linux/netfilter_ipv4/listhelp.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/netfilter_ipv4/listhelp.h	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/listhelp.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/listhelp.h
+--- linux-2.6.21.1/include/linux/netfilter_ipv4/listhelp.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/listhelp.h	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,123 @@
 +#ifndef _LISTHELP_H
 +#define _LISTHELP_H
@@ -1146,9 +1146,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/listhelp.h linux-2.6.19.
 +LIST_FIND(head, __list_cmp_name, void *, name)
 +
 +#endif /*_LISTHELP_H*/
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set.c
---- linux-2.6.19.old/net/ipv4/netfilter/ip_set.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ip_set.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,1989 @@
 +/* Copyright (C) 2000-2002 Joakim Axelsson <[email protected]>
 + *                         Patrick Schaaf <[email protected]>
@@ -3139,9 +3139,9 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set.c linux-2.6.19.dev/net/ipv4
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_iphash.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_iphash.c
---- linux-2.6.19.old/net/ipv4/netfilter/ip_set_iphash.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_iphash.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_iphash.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_iphash.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ip_set_iphash.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_iphash.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,379 @@
 +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <[email protected]>
 + *
@@ -3522,9 +3522,9 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_iphash.c linux-2.6.19.dev/n
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_ipmap.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_ipmap.c
---- linux-2.6.19.old/net/ipv4/netfilter/ip_set_ipmap.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_ipmap.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_ipmap.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_ipmap.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ip_set_ipmap.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_ipmap.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,313 @@
 +/* Copyright (C) 2000-2002 Joakim Axelsson <[email protected]>
 + *                         Patrick Schaaf <[email protected]>
@@ -3839,9 +3839,9 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_ipmap.c linux-2.6.19.dev/ne
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_iptree.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_iptree.c
---- linux-2.6.19.old/net/ipv4/netfilter/ip_set_iptree.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_iptree.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_iptree.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_iptree.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ip_set_iptree.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_iptree.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,510 @@
 +/* Copyright (C) 2005 Jozsef Kadlecsik <[email protected]>
 + *
@@ -4353,9 +4353,9 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_iptree.c linux-2.6.19.dev/n
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_macipmap.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_macipmap.c
---- linux-2.6.19.old/net/ipv4/netfilter/ip_set_macipmap.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_macipmap.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_macipmap.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_macipmap.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ip_set_macipmap.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_macipmap.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,338 @@
 +/* Copyright (C) 2000-2002 Joakim Axelsson <[email protected]>
 + *                         Patrick Schaaf <[email protected]>
@@ -4695,9 +4695,9 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_macipmap.c linux-2.6.19.dev
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_nethash.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_nethash.c
---- linux-2.6.19.old/net/ipv4/netfilter/ip_set_nethash.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_nethash.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_nethash.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_nethash.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ip_set_nethash.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_nethash.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,449 @@
 +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <[email protected]>
 + *
@@ -5148,9 +5148,9 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_nethash.c linux-2.6.19.dev/
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_portmap.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_portmap.c
---- linux-2.6.19.old/net/ipv4/netfilter/ip_set_portmap.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_portmap.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_portmap.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_portmap.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ip_set_portmap.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_portmap.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,325 @@
 +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <[email protected]>
 + *
@@ -5477,9 +5477,9 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_portmap.c linux-2.6.19.dev/
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_set.c linux-2.6.19.dev/net/ipv4/netfilter/ipt_set.c
---- linux-2.6.19.old/net/ipv4/netfilter/ipt_set.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ipt_set.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ipt_set.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_set.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ipt_set.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_set.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,105 @@
 +/* Copyright (C) 2000-2002 Joakim Axelsson <[email protected]>
 + *                         Patrick Schaaf <[email protected]>
@@ -5586,9 +5586,9 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_set.c linux-2.6.19.dev/net/ipv
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_SET.c linux-2.6.19.dev/net/ipv4/netfilter/ipt_SET.c
---- linux-2.6.19.old/net/ipv4/netfilter/ipt_SET.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/ipt_SET.c	2006-12-14 03:13:43.000000000 +0100
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ipt_SET.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_SET.c
+--- linux-2.6.21.1/net/ipv4/netfilter/ipt_SET.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_SET.c	2007-05-14 11:44:19.000000000 +0200
 @@ -0,0 +1,120 @@
 +/* Copyright (C) 2000-2002 Joakim Axelsson <[email protected]>
 + *                         Patrick Schaaf <[email protected]>
@@ -5700,7 +5700,7 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_SET.c linux-2.6.19.dev/net/ipv
 +
 +static int __init init(void)
 +{
-+	return ipt_register_target(&SET_target);
++	return xt_register_target(&SET_target);
 +}
 +
 +static void __exit fini(void)
@@ -5710,10 +5710,10 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_SET.c linux-2.6.19.dev/net/ipv
 +
 +module_init(init);
 +module_exit(fini);
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/Kconfig linux-2.6.19.dev/net/ipv4/netfilter/Kconfig
---- linux-2.6.19.old/net/ipv4/netfilter/Kconfig	2006-12-14 03:13:41.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/Kconfig	2006-12-14 03:13:43.000000000 +0100
-@@ -647,5 +647,106 @@
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/Kconfig linux-2.6.21.1-owrt/net/ipv4/netfilter/Kconfig
+--- linux-2.6.21.1/net/ipv4/netfilter/Kconfig	2007-05-14 11:24:57.000000000 +0200
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/Kconfig	2007-05-14 11:44:19.000000000 +0200
+@@ -681,5 +681,106 @@
  	  Allows altering the ARP packet payload: source and destination
  	  hardware and network addresses.
  
@@ -5820,21 +5820,21 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/Kconfig linux-2.6.19.dev/net/ipv4/
 +
  endmenu
  
-diff -urN linux-2.6.19.old/net/ipv4/netfilter/Makefile linux-2.6.19.dev/net/ipv4/netfilter/Makefile
---- linux-2.6.19.old/net/ipv4/netfilter/Makefile	2006-12-14 03:13:41.000000000 +0100
-+++ linux-2.6.19.dev/net/ipv4/netfilter/Makefile	2006-12-14 03:13:43.000000000 +0100
-@@ -54,6 +54,7 @@
+diff -Nur linux-2.6.21.1/net/ipv4/netfilter/Makefile linux-2.6.21.1-owrt/net/ipv4/netfilter/Makefile
+--- linux-2.6.21.1/net/ipv4/netfilter/Makefile	2007-05-14 11:24:57.000000000 +0200
++++ linux-2.6.21.1-owrt/net/ipv4/netfilter/Makefile	2007-05-14 11:47:22.000000000 +0200
+@@ -83,6 +83,7 @@
+ obj-$(CONFIG_IP_NF_RAW) += iptable_raw.o
  
  # matches
- obj-$(CONFIG_IP_NF_MATCH_HASHLIMIT) += ipt_hashlimit.o
 +obj-$(CONFIG_IP_NF_MATCH_SET) += ipt_set.o
  obj-$(CONFIG_IP_NF_MATCH_IPRANGE) += ipt_iprange.o
  obj-$(CONFIG_IP_NF_MATCH_OWNER) += ipt_owner.o
  obj-$(CONFIG_IP_NF_MATCH_TOS) += ipt_tos.o
-@@ -77,6 +78,17 @@
- obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
+@@ -107,6 +108,16 @@
  obj-$(CONFIG_IP_NF_TARGET_ULOG) += ipt_ULOG.o
- obj-$(CONFIG_IP_NF_TARGET_TCPMSS) += ipt_TCPMSS.o
+ obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
+ obj-$(CONFIG_IP_NF_TARGET_TTL) += ipt_TTL.o
 +obj-$(CONFIG_IP_NF_TARGET_SET) += ipt_SET.o
 +
 +# sets
@@ -5845,7 +5845,6 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/Makefile linux-2.6.19.dev/net/ipv4
 +obj-$(CONFIG_IP_NF_SET_IPHASH) += ip_set_iphash.o
 +obj-$(CONFIG_IP_NF_SET_NETHASH) += ip_set_nethash.o
 +obj-$(CONFIG_IP_NF_SET_IPTREE) += ip_set_iptree.o
-+
- obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
- obj-$(CONFIG_IP_NF_TARGET_TTL) += ipt_TTL.o
  
+ # generic ARP tables
+ obj-$(CONFIG_IP_NF_ARPTABLES) += arp_tables.o

+ 41 - 57
target/linux/generic-2.6/patches/150-netfilter_imq.patch

@@ -1,6 +1,5 @@
-diff -urN linux-2.6.19/drivers/net/imq.c linux-2.6.19+imq/drivers/net/imq.c
---- linux-2.6.19/drivers/net/imq.c	1970-01-01 09:30:00.000000000 +0930
-+++ linux-2.6.19+imq/drivers/net/imq.c	2006-12-05 23:01:02.000000000 +1030
+--- linux-2.6.20-original/drivers/net/imq.c	1970-01-01 02:00:00.000000000 +0200
++++ linux-2.6.20/drivers/net/imq.c	2007-02-12 23:55:04.000000000 +0200
 @@ -0,0 +1,402 @@
 +/*
 + *             Pseudo-driver for the intermediate queue device.
@@ -404,9 +403,8 @@ diff -urN linux-2.6.19/drivers/net/imq.c linux-2.6.19+imq/drivers/net/imq.c
 +MODULE_AUTHOR("http://www.linuximq.net");
 +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
 +MODULE_LICENSE("GPL");
-diff -urN linux-2.6.19/drivers/net/Kconfig linux-2.6.19+imq/drivers/net/Kconfig
---- linux-2.6.19/drivers/net/Kconfig	2006-12-01 14:05:30.000000000 +1030
-+++ linux-2.6.19+imq/drivers/net/Kconfig	2006-12-05 23:03:52.000000000 +1030
+--- linux-2.6.20-original/drivers/net/Kconfig	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/drivers/net/Kconfig	2007-02-12 23:55:04.000000000 +0200
 @@ -96,6 +96,129 @@
  	  To compile this driver as a module, choose M here: the module
  	  will be called eql.  If unsure, say N.
@@ -537,9 +535,8 @@ diff -urN linux-2.6.19/drivers/net/Kconfig linux-2.6.19+imq/drivers/net/Kconfig
  config TUN
  	tristate "Universal TUN/TAP device driver support"
  	select CRC32
-diff -urN linux-2.6.19/drivers/net/Makefile linux-2.6.19+imq/drivers/net/Makefile
---- linux-2.6.19/drivers/net/Makefile	2006-12-01 14:05:30.000000000 +1030
-+++ linux-2.6.19+imq/drivers/net/Makefile	2006-12-04 12:41:01.000000000 +1030
+--- linux-2.6.20-original/drivers/net/Makefile	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/drivers/net/Makefile	2007-02-12 23:55:04.000000000 +0200
 @@ -124,6 +124,7 @@
  obj-$(CONFIG_SLHC) += slhc.o
  
@@ -548,9 +545,8 @@ diff -urN linux-2.6.19/drivers/net/Makefile linux-2.6.19+imq/drivers/net/Makefil
  obj-$(CONFIG_IFB) += ifb.o
  obj-$(CONFIG_DE600) += de600.o
  obj-$(CONFIG_DE620) += de620.o
-diff -urN linux-2.6.19/include/linux/imq.h linux-2.6.19+imq/include/linux/imq.h
---- linux-2.6.19/include/linux/imq.h	1970-01-01 09:30:00.000000000 +0930
-+++ linux-2.6.19+imq/include/linux/imq.h	2006-12-04 12:41:01.000000000 +1030
+--- linux-2.6.20-original/include/linux/imq.h	1970-01-01 02:00:00.000000000 +0200
++++ linux-2.6.20/include/linux/imq.h	2007-02-12 23:55:04.000000000 +0200
 @@ -0,0 +1,9 @@
 +#ifndef _IMQ_H
 +#define _IMQ_H
@@ -561,9 +557,8 @@ diff -urN linux-2.6.19/include/linux/imq.h linux-2.6.19+imq/include/linux/imq.h
 +#define IMQ_F_ENQUEUE  0x80
 +
 +#endif /* _IMQ_H */
-diff -urN linux-2.6.19/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.19+imq/include/linux/netfilter_ipv4/ipt_IMQ.h
---- linux-2.6.19/include/linux/netfilter_ipv4/ipt_IMQ.h	1970-01-01 09:30:00.000000000 +0930
-+++ linux-2.6.19+imq/include/linux/netfilter_ipv4/ipt_IMQ.h	2006-12-05 23:04:22.000000000 +1030
+--- linux-2.6.20-original/include/linux/netfilter_ipv4/ipt_IMQ.h	1970-01-01 02:00:00.000000000 +0200
++++ linux-2.6.20/include/linux/netfilter_ipv4/ipt_IMQ.h	2007-02-12 23:55:04.000000000 +0200
 @@ -0,0 +1,8 @@
 +#ifndef _IPT_IMQ_H
 +#define _IPT_IMQ_H
@@ -573,9 +568,8 @@ diff -urN linux-2.6.19/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.19+imq/i
 +};
 +
 +#endif /* _IPT_IMQ_H */
-diff -urN linux-2.6.19/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.19+imq/include/linux/netfilter_ipv6/ip6t_IMQ.h
---- linux-2.6.19/include/linux/netfilter_ipv6/ip6t_IMQ.h	1970-01-01 09:30:00.000000000 +0930
-+++ linux-2.6.19+imq/include/linux/netfilter_ipv6/ip6t_IMQ.h	2006-12-05 23:04:32.000000000 +1030
+--- linux-2.6.20-original/include/linux/netfilter_ipv6/ip6t_IMQ.h	1970-01-01 02:00:00.000000000 +0200
++++ linux-2.6.20/include/linux/netfilter_ipv6/ip6t_IMQ.h	2007-02-12 23:55:04.000000000 +0200
 @@ -0,0 +1,8 @@
 +#ifndef _IP6T_IMQ_H
 +#define _IP6T_IMQ_H
@@ -585,10 +579,9 @@ diff -urN linux-2.6.19/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.19+imq/
 +};
 +
 +#endif /* _IP6T_IMQ_H */
-diff -urN linux-2.6.19/include/linux/skbuff.h linux-2.6.19+imq/include/linux/skbuff.h
---- linux-2.6.19/include/linux/skbuff.h	2006-12-01 14:05:44.000000000 +1030
-+++ linux-2.6.19+imq/include/linux/skbuff.h	2006-12-05 23:05:06.000000000 +1030
-@@ -292,6 +292,10 @@
+--- linux-2.6.20-original/include/linux/skbuff.h	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/include/linux/skbuff.h	2007-02-12 23:55:04.000000000 +0200
+@@ -293,6 +293,10 @@
  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
  	struct sk_buff		*nfct_reasm;
  #endif
@@ -599,9 +592,8 @@ diff -urN linux-2.6.19/include/linux/skbuff.h linux-2.6.19+imq/include/linux/skb
  #ifdef CONFIG_BRIDGE_NETFILTER
  	struct nf_bridge_info	*nf_bridge;
  #endif
-diff -urN linux-2.6.19/net/core/dev.c linux-2.6.19+imq/net/core/dev.c
---- linux-2.6.19/net/core/dev.c	2006-12-01 14:05:45.000000000 +1030
-+++ linux-2.6.19+imq/net/core/dev.c	2006-12-05 23:05:40.000000000 +1030
+--- linux-2.6.20-original/net/core/dev.c	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/net/core/dev.c	2007-02-12 23:55:04.000000000 +0200
 @@ -94,6 +94,9 @@
  #include <linux/skbuff.h>
  #include <net/sock.h>
@@ -612,7 +604,7 @@ diff -urN linux-2.6.19/net/core/dev.c linux-2.6.19+imq/net/core/dev.c
  #include <linux/proc_fs.h>
  #include <linux/seq_file.h>
  #include <linux/stat.h>
-@@ -1344,7 +1347,11 @@
+@@ -1343,7 +1346,11 @@
  int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
  {
  	if (likely(!skb->next)) {
@@ -625,10 +617,9 @@ diff -urN linux-2.6.19/net/core/dev.c linux-2.6.19+imq/net/core/dev.c
  			dev_queue_xmit_nit(skb, dev);
  
  		if (netif_needs_gso(dev, skb)) {
-diff -urN linux-2.6.19/net/core/skbuff.c linux-2.6.19+imq/net/core/skbuff.c
---- linux-2.6.19/net/core/skbuff.c	2006-12-01 14:05:45.000000000 +1030
-+++ linux-2.6.19+imq/net/core/skbuff.c	2006-12-04 12:41:01.000000000 +1030
-@@ -482,6 +482,10 @@
+--- linux-2.6.20-original/net/core/skbuff.c	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/net/core/skbuff.c	2007-02-12 23:55:04.000000000 +0200
+@@ -485,6 +485,10 @@
  	C(nfct_reasm);
  	nf_conntrack_get_reasm(skb->nfct_reasm);
  #endif
@@ -639,7 +630,7 @@ diff -urN linux-2.6.19/net/core/skbuff.c linux-2.6.19+imq/net/core/skbuff.c
  #ifdef CONFIG_BRIDGE_NETFILTER
  	C(nf_bridge);
  	nf_bridge_get(skb->nf_bridge);
-@@ -546,6 +550,10 @@
+@@ -549,6 +553,10 @@
  #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
  	new->ipvs_property = old->ipvs_property;
  #endif
@@ -650,9 +641,8 @@ diff -urN linux-2.6.19/net/core/skbuff.c linux-2.6.19+imq/net/core/skbuff.c
  #ifdef CONFIG_BRIDGE_NETFILTER
  	new->nf_bridge	= old->nf_bridge;
  	nf_bridge_get(old->nf_bridge);
-diff -urN linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.19+imq/net/ipv4/netfilter/ipt_IMQ.c
---- linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c	1970-01-01 09:30:00.000000000 +0930
-+++ linux-2.6.19.2/net/ipv4/netfilter/ipt_IMQ.c	2007-01-25 09:59:34.000000000 +0100
+--- linux-2.6.20-original/net/ipv4/netfilter/ipt_IMQ.c	1970-01-01 02:00:00.000000000 +0200
++++ linux-2.6.20/net/ipv4/netfilter/ipt_IMQ.c	2007-02-12 23:55:04.000000000 +0200
 @@ -0,0 +1,71 @@
 +/*
 + * This target marks packets to be enqueued to an imq device
@@ -708,7 +698,7 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.19+imq/net/ipv4/ne
 +
 +static int __init init(void)
 +{
-+	if (ipt_register_target(&ipt_imq_reg))
++	if (xt_register_target(&ipt_imq_reg))
 +		return -EINVAL;
 +
 +	return 0;
@@ -716,7 +706,7 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.19+imq/net/ipv4/ne
 +
 +static void __exit fini(void)
 +{
-+	ipt_unregister_target(&ipt_imq_reg);
++	xt_unregister_target(&ipt_imq_reg);
 +}
 +
 +module_init(init);
@@ -725,10 +715,9 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.19+imq/net/ipv4/ne
 +MODULE_AUTHOR("http://www.linuximq.net");
 +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
 +MODULE_LICENSE("GPL");
-diff -urN linux-2.6.19/net/ipv4/netfilter/Kconfig linux-2.6.19+imq/net/ipv4/netfilter/Kconfig
---- linux-2.6.19/net/ipv4/netfilter/Kconfig	2006-12-01 14:05:45.000000000 +1030
-+++ linux-2.6.19+imq/net/ipv4/netfilter/Kconfig	2006-12-04 12:41:01.000000000 +1030
-@@ -533,6 +533,17 @@
+--- linux-2.6.20-original/net/ipv4/netfilter/Kconfig	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/net/ipv4/netfilter/Kconfig	2007-02-12 23:55:04.000000000 +0200
+@@ -591,6 +591,17 @@
  
  	  To compile it as a module, choose M here.  If unsure, say N.
  
@@ -746,10 +735,9 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/Kconfig linux-2.6.19+imq/net/ipv4/netf
  config IP_NF_TARGET_TOS
  	tristate "TOS target support"
  	depends on IP_NF_MANGLE
-diff -urN linux-2.6.19/net/ipv4/netfilter/Makefile linux-2.6.19+imq/net/ipv4/netfilter/Makefile
---- linux-2.6.19/net/ipv4/netfilter/Makefile	2006-12-01 14:05:45.000000000 +1030
-+++ linux-2.6.19+imq/net/ipv4/netfilter/Makefile	2006-12-04 12:41:01.000000000 +1030
-@@ -67,6 +67,7 @@
+--- linux-2.6.20-original/net/ipv4/netfilter/Makefile	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/net/ipv4/netfilter/Makefile	2007-02-12 23:55:04.000000000 +0200
+@@ -96,6 +96,7 @@
  obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
  obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o
  obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
@@ -757,9 +745,8 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/Makefile linux-2.6.19+imq/net/ipv4/net
  obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
  obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o
  obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o
-diff -urN linux-2.6.19/net/ipv6/netfilter/ip6t_IMQ.c linux-2.6.19+imq/net/ipv6/netfilter/ip6t_IMQ.c
---- linux-2.6.19/net/ipv6/netfilter/ip6t_IMQ.c	1970-01-01 09:30:00.000000000 +0930
-+++ linux-2.6.19.2/net/ipv6/netfilter/ip6t_IMQ.c	2007-01-25 10:06:41.000000000 +0100
+--- linux-2.6.20-original/net/ipv6/netfilter/ip6t_IMQ.c	1970-01-01 02:00:00.000000000 +0200
++++ linux-2.6.20/net/ipv6/netfilter/ip6t_IMQ.c	2007-02-12 23:55:04.000000000 +0200
 @@ -0,0 +1,71 @@
 +/*
 + * This target marks packets to be enqueued to an imq device
@@ -832,10 +819,9 @@ diff -urN linux-2.6.19/net/ipv6/netfilter/ip6t_IMQ.c linux-2.6.19+imq/net/ipv6/n
 +MODULE_AUTHOR("http://www.linuximq.net");
 +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
 +MODULE_LICENSE("GPL");
-diff -urN linux-2.6.19/net/ipv6/netfilter/Kconfig linux-2.6.19+imq/net/ipv6/netfilter/Kconfig
---- linux-2.6.19/net/ipv6/netfilter/Kconfig	2006-12-01 14:05:46.000000000 +1030
-+++ linux-2.6.19+imq/net/ipv6/netfilter/Kconfig	2006-12-04 12:41:01.000000000 +1030
-@@ -163,6 +163,15 @@
+--- linux-2.6.20-original/net/ipv6/netfilter/Kconfig	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/net/ipv6/netfilter/Kconfig	2007-02-12 23:55:04.000000000 +0200
+@@ -164,6 +164,15 @@
  
  	  To compile it as a module, choose M here.  If unsure, say N.
  
@@ -851,9 +837,8 @@ diff -urN linux-2.6.19/net/ipv6/netfilter/Kconfig linux-2.6.19+imq/net/ipv6/netf
  config IP6_NF_TARGET_HL
  	tristate  'HL (hoplimit) target support'
  	depends on IP6_NF_MANGLE
-diff -urN linux-2.6.19/net/ipv6/netfilter/Makefile linux-2.6.19+imq/net/ipv6/netfilter/Makefile
---- linux-2.6.19/net/ipv6/netfilter/Makefile	2006-12-01 14:05:46.000000000 +1030
-+++ linux-2.6.19+imq/net/ipv6/netfilter/Makefile	2006-12-04 12:41:01.000000000 +1030
+--- linux-2.6.20-original/net/ipv6/netfilter/Makefile	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/net/ipv6/netfilter/Makefile	2007-02-12 23:55:04.000000000 +0200
 @@ -13,6 +13,7 @@
  obj-$(CONFIG_IP6_NF_MATCH_OWNER) += ip6t_owner.o
  obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
@@ -862,9 +847,8 @@ diff -urN linux-2.6.19/net/ipv6/netfilter/Makefile linux-2.6.19+imq/net/ipv6/net
  obj-$(CONFIG_IP6_NF_TARGET_HL) += ip6t_HL.o
  obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o
  obj-$(CONFIG_IP6_NF_TARGET_LOG) += ip6t_LOG.o
-diff -urN linux-2.6.19/net/sched/sch_generic.c linux-2.6.19+imq/net/sched/sch_generic.c
---- linux-2.6.19/net/sched/sch_generic.c	2006-12-01 14:05:46.000000000 +1030
-+++ linux-2.6.19+imq/net/sched/sch_generic.c	2006-12-05 23:08:54.000000000 +1030
+--- linux-2.6.20-original/net/sched/sch_generic.c	2007-02-04 20:44:54.000000000 +0200
++++ linux-2.6.20/net/sched/sch_generic.c	2007-02-12 23:55:04.000000000 +0200
 @@ -87,7 +87,6 @@
  
     NOTE: Called under dev->queue_lock with locally disabled BH.

Fișier diff suprimat deoarece este prea mare
+ 477 - 449
target/linux/generic-2.6/patches/160-netfilter_route.patch


+ 196 - 130
target/linux/generic-2.6/patches/170-netfilter_chaostables.patch

@@ -1,6 +1,33 @@
-diff -ruN linux-2.6.19.1.orig/include/linux/netfilter/xt_CHAOS.h linux-2.6.19.1/include/linux/netfilter/xt_CHAOS.h
---- linux-2.6.19.1.orig/include/linux/netfilter/xt_CHAOS.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.1/include/linux/netfilter/xt_CHAOS.h	2007-01-11 13:28:07.656144799 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter/oot_conntrack.h linux-2.6.21.1-owrt/include/linux/netfilter/oot_conntrack.h
+--- linux-2.6.21.1/include/linux/netfilter/oot_conntrack.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter/oot_conntrack.h	2007-05-14 14:18:54.000000000 +0200
+@@ -0,0 +1,5 @@
++#if defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE)
++#	include <linux/netfilter_ipv4/ip_conntrack.h>
++#else /* linux-2.6.20+ */
++#	include <net/netfilter/nf_nat_rule.h>
++#endif
+diff -Nur linux-2.6.21.1/include/linux/netfilter/oot_trans.h linux-2.6.21.1-owrt/include/linux/netfilter/oot_trans.h
+--- linux-2.6.21.1/include/linux/netfilter/oot_trans.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter/oot_trans.h	2007-05-14 14:18:54.000000000 +0200
+@@ -0,0 +1,14 @@
++/* Out of tree workarounds */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18)
++#	define HAVE_MATCHINFOSIZE 1
++#	define HAVE_TARGUSERINFO 1
++#	define HAVE_TARGINFOSIZE 1
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
++#	define nfmark mark
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 21)
++#	define tcp_v4_check(tcph, tcph_sz, s, d, csp) \
++		tcp_v4_check((tcph_sz), (s), (d), (csp))
++#endif
+diff -Nur linux-2.6.21.1/include/linux/netfilter/xt_CHAOS.h linux-2.6.21.1-owrt/include/linux/netfilter/xt_CHAOS.h
+--- linux-2.6.21.1/include/linux/netfilter/xt_CHAOS.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter/xt_CHAOS.h	2007-05-14 14:18:54.000000000 +0200
 @@ -0,0 +1,14 @@
 +#ifndef _LINUX_XT_CHAOS_H
 +#define _LINUX_XT_CHAOS_H 1
@@ -16,9 +43,9 @@ diff -ruN linux-2.6.19.1.orig/include/linux/netfilter/xt_CHAOS.h linux-2.6.19.1/
 +};
 +
 +#endif /* _LINUX_XT_CHAOS_H */
-diff -ruN linux-2.6.19.1.orig/include/linux/netfilter/xt_portscan.h linux-2.6.19.1/include/linux/netfilter/xt_portscan.h
---- linux-2.6.19.1.orig/include/linux/netfilter/xt_portscan.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.1/include/linux/netfilter/xt_portscan.h	2007-01-11 13:28:07.656144799 +0100
+diff -Nur linux-2.6.21.1/include/linux/netfilter/xt_portscan.h linux-2.6.21.1-owrt/include/linux/netfilter/xt_portscan.h
+--- linux-2.6.21.1/include/linux/netfilter/xt_portscan.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/include/linux/netfilter/xt_portscan.h	2007-05-14 14:18:54.000000000 +0200
 @@ -0,0 +1,8 @@
 +#ifndef _LINUX_XT_PORTSCAN_H
 +#define _LINUX_XT_PORTSCAN_H 1
@@ -28,10 +55,10 @@ diff -ruN linux-2.6.19.1.orig/include/linux/netfilter/xt_portscan.h linux-2.6.19
 +};
 +
 +#endif /* _LINUX_XT_PORTSCAN_H */
-diff -ruN linux-2.6.19.1.orig/net/netfilter/find_match.c linux-2.6.19.1/net/netfilter/find_match.c
---- linux-2.6.19.1.orig/net/netfilter/find_match.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.1/net/netfilter/find_match.c	2007-01-11 13:28:12.191994379 +0100
-@@ -0,0 +1,37 @@
+diff -Nur linux-2.6.21.1/net/netfilter/find_match.c linux-2.6.21.1-owrt/net/netfilter/find_match.c
+--- linux-2.6.21.1/net/netfilter/find_match.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/netfilter/find_match.c	2007-05-14 14:18:54.000000000 +0200
+@@ -0,0 +1,39 @@
 +/*
 +    xt_request_find_match
 +    by Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007
@@ -42,7 +69,6 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/find_match.c linux-2.6.19.1/net/netf
 +    it under the terms of the GNU General Public License version 2 as
 +    published by the Free Software Foundation.
 +*/
-+
 +#include <linux/err.h>
 +#include <linux/netfilter_arp.h>
 +#include <linux/socket.h>
@@ -52,7 +78,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/find_match.c linux-2.6.19.1/net/netf
 + * Yeah this code is sub-optimal, but the function is missing in
 + * mainline so far. -jengelh
 + */
-+static struct xt_match *xt_request_find_match(int af, const char *name,
++static struct xt_match *xt_request_find_match_lo(int af, const char *name,
 +    u8 revision)
 +{
 +	static const char *const xt_prefix[] = {
@@ -69,10 +95,13 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/find_match.c linux-2.6.19.1/net/netf
 +
 +	return match;
 +}
-diff -ruN linux-2.6.19.1.orig/net/netfilter/Kconfig linux-2.6.19.1/net/netfilter/Kconfig
---- linux-2.6.19.1.orig/net/netfilter/Kconfig	2007-01-11 13:27:24.445577700 +0100
-+++ linux-2.6.19.1/net/netfilter/Kconfig	2007-01-11 13:28:09.092097179 +0100
-@@ -122,6 +122,14 @@
++
++/* In case it goes into mainline, let this out-of-tree package compile */
++#define xt_request_find_match xt_request_find_match_lo
+diff -Nur linux-2.6.21.1/net/netfilter/Kconfig linux-2.6.21.1-owrt/net/netfilter/Kconfig
+--- linux-2.6.21.1/net/netfilter/Kconfig	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/net/netfilter/Kconfig	2007-05-14 14:30:47.000000000 +0200
+@@ -287,6 +287,14 @@
  
  # alphabetically ordered list of targets
  
@@ -87,7 +116,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Kconfig linux-2.6.19.1/net/netfilter
  config NETFILTER_XT_TARGET_CLASSIFY
  	tristate '"CLASSIFY" target support'
  	depends on NETFILTER_XTABLES
-@@ -148,6 +156,14 @@
+@@ -315,6 +323,14 @@
  	  <file:Documentation/modules.txt>.  The module will be called
  	  ipt_CONNMARK.o.  If unsure, say `N'.
  
@@ -102,7 +131,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Kconfig linux-2.6.19.1/net/netfilter
  config NETFILTER_XT_TARGET_DSCP
  	tristate '"DSCP" target support'
  	depends on NETFILTER_XTABLES
-@@ -355,6 +371,14 @@
+@@ -563,6 +579,14 @@
  
  	  To compile it as a module, choose M here.  If unsure, say N.
  
@@ -117,10 +146,10 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Kconfig linux-2.6.19.1/net/netfilter
  config NETFILTER_XT_MATCH_MULTIPORT
  	tristate "Multiple port match support"
  	depends on NETFILTER_XTABLES
-diff -ruN linux-2.6.19.1.orig/net/netfilter/Makefile linux-2.6.19.1/net/netfilter/Makefile
---- linux-2.6.19.1.orig/net/netfilter/Makefile	2007-01-11 13:27:24.445577700 +0100
-+++ linux-2.6.19.1/net/netfilter/Makefile	2007-01-11 13:28:07.656144799 +0100
-@@ -23,8 +23,10 @@
+diff -Nur linux-2.6.21.1/net/netfilter/Makefile linux-2.6.21.1-owrt/net/netfilter/Makefile
+--- linux-2.6.21.1/net/netfilter/Makefile	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/net/netfilter/Makefile	2007-05-14 14:30:47.000000000 +0200
+@@ -37,8 +37,10 @@
  obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
  
  # targets
@@ -131,7 +160,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Makefile linux-2.6.19.1/net/netfilte
  obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
  obj-$(CONFIG_NETFILTER_XT_TARGET_MARK) += xt_MARK.o
  obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o
-@@ -47,6 +49,7 @@
+@@ -63,6 +65,7 @@
  obj-$(CONFIG_NETFILTER_XT_MATCH_MARK) += xt_mark.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_MULTIPORT) += xt_multiport.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_POLICY) += xt_policy.o
@@ -139,16 +168,17 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Makefile linux-2.6.19.1/net/netfilte
  obj-$(CONFIG_NETFILTER_XT_MATCH_PKTTYPE) += xt_pkttype.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_QUOTA) += xt_quota.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_REALM) += xt_realm.o
-diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfilter/xt_CHAOS.c
---- linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.1/net/netfilter/xt_CHAOS.c	2007-01-11 13:28:14.407920893 +0100
-@@ -0,0 +1,180 @@
+diff -Nur linux-2.6.21.1/net/netfilter/xt_CHAOS.c linux-2.6.21.1-owrt/net/netfilter/xt_CHAOS.c
+--- linux-2.6.21.1/net/netfilter/xt_CHAOS.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/netfilter/xt_CHAOS.c	2007-05-14 14:36:58.000000000 +0200
+@@ -0,0 +1,204 @@
 +/*
-+    CHAOS target for netfilter
++	CHAOS target for netfilter
 +
-+    Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007
-+    released under the terms of the GNU General Public
-+    License version 2.x and only versions 2.x.
++	Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007
++	This program is free software; you can redistribute it and/or modify
++	it under the terms of the GNU General Public License version 2 as
++	published by the Free Software Foundation.
 +*/
 +#include <linux/icmp.h>
 +#include <linux/in.h>
@@ -162,14 +192,9 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil
 +#include <net/ip.h>
 +#include <linux/netfilter/xt_CHAOS.h>
 +#include "find_match.c"
++#include <linux/netfilter/oot_trans.h>
 +#define PFX KBUILD_MODNAME ": "
 +
-+/* Out of tree workarounds */
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18)
-+#    define HAVE_TARGUSERINFO 1
-+#endif
-+
 +/* Module parameters */
 +static unsigned int reject_percentage = ~0U * .01;
 +static unsigned int delude_percentage = ~0U * .0101;
@@ -180,6 +205,8 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil
 +static struct xt_match *xm_tcp;
 +static struct xt_target *xt_delude, *xt_reject, *xt_tarpit;
 +
++static int have_delude, have_tarpit;
++
 +/* Static data for other matches/targets */
 +static const struct ipt_reject_info reject_params = {
 +	.with = ICMP_HOST_UNREACH,
@@ -226,7 +253,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil
 +	/* Equivalent to:
 +	 * -A chaos -m statistic --mode random --probability \
 +	 *         $reject_percentage -j REJECT --reject-with host-unreach;
-+	 * -A chaos -m statistic --mode random --probability \
++	 * -A chaos -p tcp -m statistic --mode random --probability \
 +	 *         $delude_percentage -j DELUDE;
 +	 * -A chaos -j DROP;
 +	 */
@@ -249,9 +276,31 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil
 +	return NF_DROP;
 +}
 +
++static int xt_chaos_checkentry(const char *tablename, const void *entry,
++    const struct xt_target *target, void *targinfo,
++#ifdef HAVE_TARGINFOSIZE
++    unsigned int targinfosize,
++#endif
++    unsigned int hook_mask)
++{
++	const struct xt_chaos_info *info = targinfo;
++	if(info->variant == XTCHAOS_DELUDE && !have_delude) {
++		printk(KERN_WARNING PFX "Error: Cannot use --delude when "
++		       "DELUDE module not available\n");
++		return 0;
++	}
++	if(info->variant == XTCHAOS_TARPIT && !have_tarpit) {
++		printk(KERN_WARNING PFX "Error: Cannot use --tarpit when "
++		       "TARPIT module not available\n");
++		return 0;
++	}
++	return 1;
++}
++
 +static struct xt_target xt_chaos_info = {
 +	.name       = "CHAOS",
 +	.target     = xt_chaos_target,
++	.checkentry = xt_chaos_checkentry,
 +	.table      = "filter",
 +	.targetsize = sizeof(struct xt_chaos_info),
 +	.hooks      = (1 << NF_IP_LOCAL_IN) | (1 << NF_IP_FORWARD) |
@@ -266,41 +315,43 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil
 +
 +	xm_tcp = xt_request_find_match(AF_INET, "tcp", 0);
 +	if(xm_tcp == NULL) {
-+		printk(KERN_WARNING PFX "Could not find \"tcp\" match\n");
++		printk(KERN_WARNING PFX "Error: Could not find or load "
++		       "\"tcp\" match\n");
 +		return -EINVAL;
 +	}
 +
 +	xt_reject = xt_request_find_target(AF_INET, "REJECT", 0);
 +	if(xt_reject == NULL) {
-+		printk(KERN_WARNING PFX "Could not find \"REJECT\" target\n");
++		printk(KERN_WARNING PFX "Error: Could not find or load "
++		       "\"REJECT\" target\n");
 +		goto out2;
 +	}
 +
-+	xt_tarpit = xt_request_find_target(AF_INET, "TARPIT", 0);
-+	if(xt_tarpit == NULL) {
-+		printk(KERN_WARNING PFX "Could not find \"TARPIT\" target\n");
-+		goto out3;
-+	}
++	xt_tarpit   = xt_request_find_target(AF_INET, "TARPIT", 0);
++	have_tarpit = xt_tarpit != NULL;
++	if(!have_tarpit)
++		printk(KERN_WARNING PFX "Warning: Could not find or load "
++		       "\"TARPIT\" target\n");
 +
-+	xt_delude = xt_request_find_target(AF_INET, "DELUDE", 0);
-+	if(xt_delude == NULL) {
-+		printk(KERN_WARNING PFX "Could not find \"DELUDE\" target\n");
-+		goto out4;
-+	}
++	xt_delude   = xt_request_find_target(AF_INET, "DELUDE", 0);
++	have_delude = xt_delude != NULL;
++	if(!have_delude)
++		printk(KERN_WARNING PFX "Warning: Could not find or load "
++		       "\"DELUDE\" target\n");
 +
 +	if((ret = xt_register_target(&xt_chaos_info)) != 0) {
 +		printk(KERN_WARNING PFX "xt_register_target returned "
 +		       "error %d\n", ret);
-+		goto out5;
++		goto out3;
 +	}
 +
 +	return 0;
 +
-+ out5:
-+ 	module_put(xt_delude->me);
-+ out4:
-+	module_put(xt_tarpit->me);
 + out3:
++ 	if(have_delude)
++ 		module_put(xt_delude->me);
++	if(have_tarpit)
++		module_put(xt_tarpit->me);
 +	module_put(xt_reject->me);
 + out2:
 +	module_put(xm_tcp->me);
@@ -312,8 +363,10 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil
 +	xt_unregister_target(&xt_chaos_info);
 +	module_put(xm_tcp->me);
 +	module_put(xt_reject->me);
-+	module_put(xt_delude->me);
-+	module_put(xt_tarpit->me);
++	if(have_delude)
++		module_put(xt_delude->me);
++	if(have_tarpit)
++		module_put(xt_tarpit->me);
 +	return;
 +}
 +
@@ -323,26 +376,28 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil
 +MODULE_DESCRIPTION("netfilter CHAOS target");
 +MODULE_LICENSE("GPL");
 +MODULE_ALIAS("ipt_CHAOS");
-diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfilter/xt_DELUDE.c
---- linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.1/net/netfilter/xt_DELUDE.c	2007-01-11 13:28:07.656144799 +0100
-@@ -0,0 +1,265 @@
+diff -Nur linux-2.6.21.1/net/netfilter/xt_DELUDE.c linux-2.6.21.1-owrt/net/netfilter/xt_DELUDE.c
+--- linux-2.6.21.1/net/netfilter/xt_DELUDE.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/netfilter/xt_DELUDE.c	2007-05-14 14:53:12.000000000 +0200
+@@ -0,0 +1,288 @@
 +/*
-+    DELUDE target
-+    Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2007
++	DELUDE target
++	Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2007
 +
-+    Based upon linux-2.6.18.5/net/ipv4/netfilter/ipt_REJECT.c:
-+    (C) 1999-2001 Paul `Rusty' Russell
-+    (C) 2002-2004 Netfilter Core Team <[email protected]>
++	Based upon linux-2.6.18.5/net/ipv4/netfilter/ipt_REJECT.c:
++	(C) 1999-2001 Paul `Rusty' Russell
++	(C) 2002-2004 Netfilter Core Team <[email protected]>
 +
-+    This program is free software; you can redistribute it and/or modify
-+    it under the terms of the GNU General Public License version 2 as
-+    published by the Free Software Foundation.
-+*/
++	xt_DELUDE acts like REJECT, but does reply with SYN-ACK on SYN.
 +
++	This program is free software; you can redistribute it and/or modify
++	it under the terms of the GNU General Public License version 2 as
++	published by the Free Software Foundation.
++*/
 +#include <linux/module.h>
 +#include <linux/skbuff.h>
 +#include <linux/ip.h>
++#include <linux/random.h>
 +#include <linux/tcp.h>
 +#include <linux/udp.h>
 +#include <linux/icmp.h>
@@ -353,20 +408,11 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi
 +#include <net/dst.h>
 +#include <linux/netfilter_ipv4/ip_tables.h>
 +#ifdef CONFIG_BRIDGE_NETFILTER
-+#include <linux/netfilter_bridge.h>
++#	include <linux/netfilter_bridge.h>
 +#endif
++#include <linux/netfilter/oot_trans.h>
 +#define PFX KBUILD_MODNAME ": "
 +
-+/* Out of tree workarounds */
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18)
-+#    define HAVE_TARGINFOSIZE 1
-+#    define HAVE_TARGUSERINFO 1
-+#endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
-+#    define nfmark mark
-+#endif
-+
 +static inline struct rtable *route_reverse(struct sk_buff *skb,
 +					   struct tcphdr *tcph, int hook)
 +{
@@ -430,10 +476,10 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi
 +	struct sk_buff *nskb;
 +	struct iphdr *iph = oldskb->nh.iph;
 +	struct tcphdr _otcph, *oth, *tcph;
-+	struct rtable *rt;
-+	u_int16_t tmp_port;
-+	u_int32_t tmp_addr;
-+	int hh_len;
++	__be16 tmp_port;
++	__be32 tmp_addr;
++	int needs_ack;
++	unsigned int addr_type;
 +
 +	/* IP header checks: fragment. */
 +	if (oldskb->nh.iph->frag_off & htons(IP_OFFSET))
@@ -442,39 +488,33 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi
 +	oth = skb_header_pointer(oldskb, oldskb->nh.iph->ihl * 4,
 +				 sizeof(_otcph), &_otcph);
 +	if (oth == NULL)
-+ 		return;
++		return;
 +
-+	/* DELUDE only answers SYN. */
-+	if(!oth->syn || oth->ack || oth->fin || oth->rst)
++	/* No RST for RST. */
++	if (oth->rst)
 +		return;
 +
 +	/* Check checksum */
 +	if (nf_ip_checksum(oldskb, hook, iph->ihl * 4, IPPROTO_TCP))
 +		return;
 +
-+	if ((rt = route_reverse(oldskb, oth, hook)) == NULL)
-+		return;
-+
-+	hh_len = LL_RESERVED_SPACE(rt->u.dst.dev);
-+
 +	/* We need a linear, writeable skb.  We also need to expand
 +	   headroom in case hh_len of incoming interface < hh_len of
 +	   outgoing interface */
-+	nskb = skb_copy_expand(oldskb, hh_len, skb_tailroom(oldskb),
++	nskb = skb_copy_expand(oldskb, LL_MAX_HEADER, skb_tailroom(oldskb),
 +			       GFP_ATOMIC);
-+	if (!nskb) {
-+		dst_release(&rt->u.dst);
++	if (!nskb)
 +		return;
-+	}
-+
-+	dst_release(nskb->dst);
-+	nskb->dst = &rt->u.dst;
 +
 +	/* This packet will not be the same as the other: clear nf fields */
 +	nf_reset(nskb);
 +	nskb->nfmark = 0;
 +	skb_init_secmark(nskb);
 +
++	skb_shinfo(nskb)->gso_size = 0;
++	skb_shinfo(nskb)->gso_segs = 0;
++	skb_shinfo(nskb)->gso_type = 0;
++
 +	tcph = (struct tcphdr *)((u_int32_t*)nskb->nh.iph + nskb->nh.iph->ihl);
 +
 +	/* Swap source and dest */
@@ -490,12 +530,34 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi
 +	skb_trim(nskb, nskb->nh.iph->ihl*4 + sizeof(struct tcphdr));
 +	nskb->nh.iph->tot_len = htons(nskb->len);
 +
-+	tcph->seq = oth->ack_seq;
-+	tcph->ack_seq = 0;
++	if(oth->syn && !oth->ack && !oth->rst && !oth->fin) {
++		/* DELUDE essential part */
++		tcph->ack_seq = htonl(ntohl(oth->seq) + oth->syn + oth->fin +
++		                oldskb->len - oldskb->nh.iph->ihl * 4 -
++		                (oth->doff << 2));
++		tcph->seq     = htonl(secure_tcp_sequence_number(
++		                nskb->nh.iph->saddr, nskb->nh.iph->daddr,
++			        tcph->source, tcph->dest));
++		tcph->ack     = 1;
++	} else {
++		if(!tcph->ack) {
++			needs_ack = 1;
++			tcph->ack_seq = htonl(ntohl(oth->seq) + oth->syn + oth->fin
++					      + oldskb->len - oldskb->nh.iph->ihl*4
++					      - (oth->doff<<2));
++			tcph->seq = 0;
++		} else {
++			needs_ack = 0;
++			tcph->seq = oth->ack_seq;
++			tcph->ack_seq = 0;
++		}
++
++		/* Reset flags */
++		((u_int8_t *)tcph)[13] = 0;
++		tcph->rst = 1;
++		tcph->ack = needs_ack;
++	}
 +
-+	/* Reset flags */
-+	((u_int8_t *)tcph)[13] = 0;
-+	tcph->syn = tcph->ack = 1;
 +
 +	tcph->window = 0;
 +	tcph->urg_ptr = 0;
@@ -508,12 +570,26 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi
 +				   csum_partial((char *)tcph,
 +						sizeof(struct tcphdr), 0));
 +
-+	/* Adjust IP TTL, DF */
-+	nskb->nh.iph->ttl = dst_metric(nskb->dst, RTAX_HOPLIMIT);
 +	/* Set DF, id = 0 */
 +	nskb->nh.iph->frag_off = htons(IP_DF);
 +	nskb->nh.iph->id = 0;
 +
++	addr_type = RTN_UNSPEC;
++	if (hook != NF_IP_FORWARD
++#ifdef CONFIG_BRIDGE_NETFILTER
++	    || (nskb->nf_bridge && nskb->nf_bridge->mask & BRNF_BRIDGED)
++#endif
++	   )
++		addr_type = RTN_LOCAL;
++
++	if (ip_route_me_harder(&nskb, addr_type))
++		goto free_nskb;
++
++	nskb->ip_summed = CHECKSUM_NONE;
++
++	/* Adjust IP TTL */
++	nskb->nh.iph->ttl = dst_metric(nskb->dst, RTAX_HOPLIMIT);
++
 +	/* Adjust IP checksum */
 +	nskb->nh.iph->check = 0;
 +	nskb->nh.iph->check = ip_fast_csum((unsigned char *)nskb->nh.iph,
@@ -531,7 +607,6 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi
 +
 + free_nskb:
 +	kfree_skb(nskb);
-+	return;
 +}
 +
 +static unsigned int xt_delude_target(struct sk_buff **pskb,
@@ -589,19 +664,21 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi
 +
 +module_init(xt_delude_init);
 +module_exit(xt_delude_exit);
-+MODULE_LICENSE("GPL");
 +MODULE_AUTHOR("Jan Engelhardt <[email protected]>");
 +MODULE_DESCRIPTION("netfilter DELUDE target");
-diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_portscan.c linux-2.6.19.1/net/netfilter/xt_portscan.c
---- linux-2.6.19.1.orig/net/netfilter/xt_portscan.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.1/net/netfilter/xt_portscan.c	2007-01-11 13:28:14.407920893 +0100
-@@ -0,0 +1,282 @@
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("ipt_DELUDE");
+diff -Nur linux-2.6.21.1/net/netfilter/xt_portscan.c linux-2.6.21.1-owrt/net/netfilter/xt_portscan.c
+--- linux-2.6.21.1/net/netfilter/xt_portscan.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/net/netfilter/xt_portscan.c	2007-05-14 14:37:35.000000000 +0200
+@@ -0,0 +1,272 @@
 +/*
-+    portscan match for netfilter
++	portscan match for netfilter
 +
-+    Written by Jan Engelhardt, 2006 - 2007
-+    released under the terms of the GNU General Public
-+    License version 2.x and only versions 2.x.
++	Written by Jan Engelhardt, 2006 - 2007
++	This program is free software; you can redistribute it and/or modify
++	it under the terms of the GNU General Public License version 2 as
++	published by the Free Software Foundation.
 +*/
 +#include <linux/in.h>
 +#include <linux/ip.h>
@@ -614,22 +691,11 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_portscan.c linux-2.6.19.1/net/net
 +#include <linux/version.h>
 +#include <linux/netfilter/x_tables.h>
 +#include <linux/netfilter/xt_tcpudp.h>
-+#if defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE)
-+#    include <linux/netfilter_ipv4/ip_conntrack.h>
-+#else /* linux-2.6.20+ */
-+#    include <net/netfilter/nf_nat_rule.h>
-+#endif
++#include <linux/netfilter/oot_conntrack.h>
 +#include <linux/netfilter/xt_portscan.h>
++#include <linux/netfilter/oot_trans.h>
 +#define PFX KBUILD_MODNAME ": "
 +
-+/* Out of tree workarounds */
-+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18)
-+#    define HAVE_MATCHINFOSIZE 1
-+#endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
-+#    define nfmark mark
-+#endif
-+
 +enum {
 +	TCP_FLAGS_ALL3 = TCP_FLAG_FIN | TCP_FLAG_RST | TCP_FLAG_SYN,
 +	TCP_FLAGS_ALL4 = TCP_FLAGS_ALL3 | TCP_FLAG_ACK,

+ 139 - 76
target/linux/generic-2.6/patches/200-sched_esfq.patch

@@ -1,7 +1,7 @@
-diff -urN linux-2.6.19.old/include/linux/pkt_sched.h linux-2.6.19.dev/include/linux/pkt_sched.h
---- linux-2.6.19.old/include/linux/pkt_sched.h	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19.dev/include/linux/pkt_sched.h	2006-12-14 03:13:51.000000000 +0100
-@@ -146,8 +146,35 @@
+diff -Naur linux-2.6.20.orig/include/linux/pkt_sched.h linux-2.6.20/include/linux/pkt_sched.h
+--- linux-2.6.20.orig/include/linux/pkt_sched.h	2007-02-04 10:44:54.000000000 -0800
++++ linux-2.6.20/include/linux/pkt_sched.h	2007-02-14 23:58:41.000000000 -0800
+@@ -146,8 +146,40 @@
   *
   *	The only reason for this is efficiency, it is possible
   *	to change these parameters in compile time.
@@ -22,6 +22,11 @@ diff -urN linux-2.6.19.old/include/linux/pkt_sched.h linux-2.6.19.dev/include/li
 +	TCA_SFQ_HASH_DSTDIR,
 +	TCA_SFQ_HASH_SRCDIR,
 +	TCA_SFQ_HASH_FWMARKDIR,
++	/* conntrack */
++	TCA_SFQ_HASH_CTORIGDST,
++	TCA_SFQ_HASH_CTORIGSRC,
++	TCA_SFQ_HASH_CTREPLDST,
++	TCA_SFQ_HASH_CTREPLSRC,
 +};
 +
 +struct tc_esfq_qopt
@@ -37,31 +42,29 @@ diff -urN linux-2.6.19.old/include/linux/pkt_sched.h linux-2.6.19.dev/include/li
  /* RED section */
  
  enum
-diff -urN linux-2.6.19.old/net/sched/Kconfig linux-2.6.19.dev/net/sched/Kconfig
---- linux-2.6.19.old/net/sched/Kconfig	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19.dev/net/sched/Kconfig	2006-12-14 03:13:51.000000000 +0100
-@@ -185,6 +185,28 @@
+diff -Naur linux-2.6.20.orig/net/sched/Kconfig linux-2.6.20/net/sched/Kconfig
+--- linux-2.6.20.orig/net/sched/Kconfig	2007-02-04 10:44:54.000000000 -0800
++++ linux-2.6.20/net/sched/Kconfig	2007-02-14 23:58:41.000000000 -0800
+@@ -189,6 +189,26 @@
  	  To compile this code as a module, choose M here: the
  	  module will be called sch_sfq.
  
 +config NET_SCH_ESFQ
-+	tristate "ESFQ queue"
-+	depends on NET_SCHED
++	tristate "Enhanced Stochastic Fairness Queueing (ESFQ)"
 +	---help---
 +	  Say Y here if you want to use the Enhanced Stochastic Fairness
 +	  Queueing (ESFQ) packet scheduling algorithm for some of your network
 +	  devices or as a leaf discipline for a classful qdisc such as HTB or
 +	  CBQ (see the top of <file:net/sched/sch_esfq.c> for details and
 +	  references to the SFQ algorithm).
-+	  
++
 +	  This is an enchanced SFQ version which allows you to control some
-+	  hardcoded values in the SFQ scheduler: queue depth, hash table size,
-+	  and queues limit.
-+	  
-+	  ESFQ also adds control to the hash function used to identify packet
-+	  flows. The original SFQ hashes by individual flow (TCP session or UDP
-+	  stream); ESFQ can hash by src or dst IP as well, which can be more
-+	  fair to users in some networking situations.
++	  hardcoded values in the SFQ scheduler.
++
++	  ESFQ also adds control of the hash function used to identify packet
++	  flows. The original SFQ discipline hashes by connection; ESFQ add
++	  several other hashing methods, such as by src IP or by dst IP, which
++	  can be more fair to users in some networking situations.
 +	  
 +	  To compile this code as a module, choose M here: the
 +	  module will be called sch_esfq.
@@ -69,10 +72,10 @@ diff -urN linux-2.6.19.old/net/sched/Kconfig linux-2.6.19.dev/net/sched/Kconfig
  config NET_SCH_TEQL
  	tristate "True Link Equalizer (TEQL)"
  	---help---
-diff -urN linux-2.6.19.old/net/sched/Makefile linux-2.6.19.dev/net/sched/Makefile
---- linux-2.6.19.old/net/sched/Makefile	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19.dev/net/sched/Makefile	2006-12-14 03:13:51.000000000 +0100
-@@ -23,6 +23,7 @@
+diff -Naur linux-2.6.20.orig/net/sched/Makefile linux-2.6.20/net/sched/Makefile
+--- linux-2.6.20.orig/net/sched/Makefile	2007-02-04 10:44:54.000000000 -0800
++++ linux-2.6.20/net/sched/Makefile	2007-02-14 23:58:41.000000000 -0800
+@@ -24,6 +24,7 @@
  obj-$(CONFIG_NET_SCH_INGRESS)	+= sch_ingress.o 
  obj-$(CONFIG_NET_SCH_DSMARK)	+= sch_dsmark.o
  obj-$(CONFIG_NET_SCH_SFQ)	+= sch_sfq.o
@@ -80,10 +83,10 @@ diff -urN linux-2.6.19.old/net/sched/Makefile linux-2.6.19.dev/net/sched/Makefil
  obj-$(CONFIG_NET_SCH_TBF)	+= sch_tbf.o
  obj-$(CONFIG_NET_SCH_TEQL)	+= sch_teql.o
  obj-$(CONFIG_NET_SCH_PRIO)	+= sch_prio.o
-diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_esfq.c
---- linux-2.6.19.old/net/sched/sch_esfq.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.19.dev/net/sched/sch_esfq.c	2006-12-14 03:13:51.000000000 +0100
-@@ -0,0 +1,644 @@
+diff -Naur linux-2.6.20.orig/net/sched/sch_esfq.c linux-2.6.20/net/sched/sch_esfq.c
+--- linux-2.6.20.orig/net/sched/sch_esfq.c	1969-12-31 16:00:00.000000000 -0800
++++ linux-2.6.20/net/sched/sch_esfq.c	2007-02-15 00:19:56.000000000 -0800
+@@ -0,0 +1,704 @@
 +/*
 + * net/sched/sch_esfq.c	Extended Stochastic Fairness Queueing discipline.
 + *
@@ -103,12 +106,12 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 + *
 + * 		Corey Hickey, <[email protected]>
 + *		Maintenance of the Linux 2.6 port.
-+ *		Added fwmark hash (thanks to Robert Kurjata)
++ *		Added fwmark hash (thanks to Robert Kurjata).
 + *		Added direct hashing for src, dst, and fwmark.
++ *		Added usage of jhash.
 + *		
 + */
 +
-+#include <linux/autoconf.h>
 +#include <linux/module.h>
 +#include <asm/uaccess.h>
 +#include <asm/system.h>
@@ -135,12 +138,16 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +#include <linux/skbuff.h>
 +#include <net/sock.h>
 +#include <net/pkt_sched.h>
++#include <linux/jhash.h>
 +
++#ifdef CONFIG_NF_CONNTRACK_ENABLED
++#include <net/netfilter/nf_conntrack.h>
++#endif
 +
 +/*	Stochastic Fairness Queuing algorithm.
 +	For more comments look at sch_sfq.c.
 +	The difference is that you can change limit, depth,
-+	hash table size and choose 7 hash types.
++	hash table size and choose alternate hash types.
 +	
 +	classic:	same as in sch_sfq.c
 +	dst:		destination IP address
@@ -149,9 +156,11 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +	dst_direct:
 +	src_direct:
 +	fwmark_direct:  direct hashing of the above sources
++	ctorigdst:	original destination IP address
++	ctorigsrc:	original source IP address
++	ctrepldst:	reply destination IP address
++	ctreplsrc:	reply source IP 
 +	
-+	TODO: 
-+		make sfq_change work.
 +*/
 +
 +
@@ -190,20 +199,24 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +	unsigned	dyn_range;	/*	        		   saved range */
 +};
 +
-+static __inline__ unsigned esfq_hash_u32(struct esfq_sched_data *q,u32 h)
++/* This contains the info we will hash. */
++struct esfq_packet_info
 +{
-+	int pert = q->perturbation;
-+
-+	if (pert)
-+		h = (h<<pert) ^ (h>>(0x1F - pert));
-+
-+	h = ntohl(h) * 2654435761UL;
-+	return h & (q->hash_divisor-1);
-+}
++	u32	proto;		/* protocol or port */
++	u32	src;		/* source from packet header */
++	u32	dst;		/* destination from packet header */
++	u32	ctorigsrc;	/* original source from conntrack */
++	u32	ctorigdst;	/* original destination from conntrack */
++	u32	ctreplsrc;	/* reply source from conntrack */
++	u32	ctrepldst;	/* reply destination from conntrack */
++	u32	mark;		/* netfilter mark (fwmark) */
++};
 +
 +/* Hash input values directly into the "nearest" slot, taking into account the
 + * range of input values seen. This is most useful when the hash table is at
-+ * least as large as the range of possible values. */
++ * least as large as the range of possible values.
++ * Note: this functionality was added before the change to using jhash, and may
++ * no longer be useful. */
 +static __inline__ unsigned esfq_hash_direct(struct esfq_sched_data *q, u32 h)
 +{
 +	/* adjust minimum and maximum */
@@ -224,83 +237,128 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +		return (h - q->dyn_min) * (q->hash_divisor - 1) / q->dyn_range;
 +}
 +
-+static __inline__ unsigned esfq_fold_hash_classic(struct esfq_sched_data *q, u32 h, u32 h1)
++static __inline__ unsigned esfq_jhash_1word(struct esfq_sched_data *q,u32 a)
 +{
-+	int pert = q->perturbation;
++	return jhash_1word(a, q->perturbation) & (q->hash_divisor-1);
++}
 +
-+	/* Have we any rotation primitives? If not, WHY? */
-+	h ^= (h1<<pert) ^ (h1>>(0x1F - pert));
-+	h ^= h>>10;
-+	return h & (q->hash_divisor-1);
++static __inline__ unsigned esfq_jhash_2words(struct esfq_sched_data *q, u32 a, u32 b)
++{
++	return jhash_2words(a, b, q->perturbation) & (q->hash_divisor-1);
 +}
 +
-+static unsigned esfq_hash(struct esfq_sched_data *q, struct sk_buff *skb)
++static __inline__ unsigned esfq_jhash_3words(struct esfq_sched_data *q, u32 a, u32 b, u32 c)
 +{
-+	u32 h, h2;
-+	u32 hs;
-+	u32 nfm;
++	return jhash_3words(a, b, c, q->perturbation) & (q->hash_divisor-1);
++}
 +
++
++static unsigned esfq_hash(struct esfq_sched_data *q, struct sk_buff *skb)
++{
++	struct esfq_packet_info info;
++#ifdef CONFIG_NF_CONNTRACK_ENABLED
++	enum ip_conntrack_info ctinfo;
++	struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
++#endif
++	
 +	switch (skb->protocol) {
 +	case __constant_htons(ETH_P_IP):
 +	{
 +		struct iphdr *iph = skb->nh.iph;
-+		h = iph->daddr;
-+		hs = iph->saddr;
-+		nfm = skb->nfmark;
-+		h2 = hs^iph->protocol;
++		info.dst = iph->daddr;
++		info.src = iph->saddr;
 +		if (!(iph->frag_off&htons(IP_MF|IP_OFFSET)) &&
 +		    (iph->protocol == IPPROTO_TCP ||
 +		     iph->protocol == IPPROTO_UDP ||
 +		     iph->protocol == IPPROTO_SCTP ||
 +		     iph->protocol == IPPROTO_DCCP ||
 +		     iph->protocol == IPPROTO_ESP))
-+			h2 ^= *(((u32*)iph) + iph->ihl);
++			info.proto = *(((u32*)iph) + iph->ihl);
++		else
++			info.proto = iph->protocol;
 +		break;
 +	}
 +	case __constant_htons(ETH_P_IPV6):
 +	{
 +		struct ipv6hdr *iph = skb->nh.ipv6h;
-+		h = iph->daddr.s6_addr32[3];
-+		hs = iph->saddr.s6_addr32[3];
-+		nfm = skb->nfmark;
-+		h2 = hs^iph->nexthdr;
++		/* Hash ipv6 addresses into a u32. This isn't ideal,
++		 * but the code is simple. */
++		info.dst = jhash2(iph->daddr.s6_addr32, 4, q->perturbation);
++		info.src = jhash2(iph->saddr.s6_addr32, 4, q->perturbation);
 +		if (iph->nexthdr == IPPROTO_TCP ||
 +		    iph->nexthdr == IPPROTO_UDP ||
 +		    iph->nexthdr == IPPROTO_SCTP ||
 +		    iph->nexthdr == IPPROTO_DCCP ||
 +		    iph->nexthdr == IPPROTO_ESP)
-+			h2 ^= *(u32*)&iph[1];
++			info.proto = *(u32*)&iph[1];
++		else
++			info.proto = iph->nexthdr;
 +		break;
 +	}
 +	default:
-+		h = (u32)(unsigned long)skb->dst;
-+		hs = (u32)(unsigned long)skb->sk;
-+		nfm = skb->nfmark;
-+		h2 = hs^skb->protocol;
++		info.dst   = (u32)(unsigned long)skb->dst;
++		info.src   = (u32)(unsigned long)skb->sk;
++		info.proto = skb->protocol;
++	}
++
++	info.mark = skb->mark;
++
++#ifdef CONFIG_NF_CONNTRACK_ENABLED
++	/* defaults if there is no conntrack info */
++	info.ctorigsrc = info.src;
++	info.ctorigdst = info.dst;
++	info.ctreplsrc = info.dst;
++	info.ctrepldst = info.src;
++	/* collect conntrack info */
++	if (ct && ct != &nf_conntrack_untracked) {
++		if (skb->protocol == __constant_htons(ETH_P_IP)) {
++			info.ctorigsrc = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u3.ip;
++			info.ctorigdst = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.u3.ip;
++			info.ctreplsrc = ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3.ip;
++			info.ctrepldst = ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip;
++		}
++		else if (skb->protocol == __constant_htons(ETH_P_IPV6)) {
++			/* Again, hash ipv6 addresses into a single u32. */
++			info.ctorigsrc = jhash2(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u3.ip6, 4, q->perturbation);
++			info.ctorigdst = jhash2(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.u3.ip6, 4, q->perturbation);
++			info.ctreplsrc = jhash2(ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3.ip6, 4, q->perturbation);
++			info.ctrepldst = jhash2(ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip6, 4, q->perturbation);
++		}
++
 +	}
++#endif
++
 +	switch(q->hash_kind)
 +	{
 +	case TCA_SFQ_HASH_CLASSIC:
-+		return esfq_fold_hash_classic(q, h, h2);
++		return esfq_jhash_3words(q, info.dst, info.src, info.proto);
 +	case TCA_SFQ_HASH_DST:
-+		return esfq_hash_u32(q,h);
++		return esfq_jhash_1word(q, info.dst);
 +	case TCA_SFQ_HASH_DSTDIR:
-+		return esfq_hash_direct(q, ntohl(h));
++		return esfq_hash_direct(q, ntohl(info.dst));
 +	case TCA_SFQ_HASH_SRC:
-+		return esfq_hash_u32(q,hs);
++		return esfq_jhash_1word(q, info.src);
 +	case TCA_SFQ_HASH_SRCDIR:
-+		return esfq_hash_direct(q, ntohl(hs));
-+#ifdef CONFIG_NETFILTER
++		return esfq_hash_direct(q, ntohl(info.src));
 +	case TCA_SFQ_HASH_FWMARK:
-+		return esfq_hash_u32(q,nfm);
++		return esfq_jhash_1word(q, info.mark);
 +	case TCA_SFQ_HASH_FWMARKDIR:
-+		return esfq_hash_direct(q,nfm);
++		return esfq_hash_direct(q, info.mark);
++#ifdef CONFIG_NF_CONNTRACK_ENABLED
++	case TCA_SFQ_HASH_CTORIGDST:
++		return esfq_jhash_1word(q, info.ctorigdst);
++	case TCA_SFQ_HASH_CTORIGSRC:
++		return esfq_jhash_1word(q, info.ctorigsrc);
++	case TCA_SFQ_HASH_CTREPLDST:
++		return esfq_jhash_1word(q, info.ctrepldst);
++	case TCA_SFQ_HASH_CTREPLSRC:
++		return esfq_jhash_1word(q, info.ctreplsrc);
 +#endif
 +	default:
 +		if (net_ratelimit())
 +			printk(KERN_WARNING "ESFQ: Unknown hash method. Falling back to classic.\n");
 +	}
-+	return esfq_fold_hash_classic(q, h, h2);
++	return esfq_jhash_3words(q, info.dst, info.src, info.proto);
 +}
 +
 +static inline void esfq_link(struct esfq_sched_data *q, esfq_index x)
@@ -365,6 +423,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +		esfq_dec(q, x);
 +		sch->q.qlen--;
 +		sch->qstats.drops++;
++		sch->qstats.backlog -= len;
 +		return len;
 +	}
 +
@@ -381,6 +440,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +		sch->q.qlen--;
 +		q->ht[q->hash[d]] = q->depth;
 +		sch->qstats.drops++;
++		sch->qstats.backlog -= len;
 +		return len;
 +	}
 +
@@ -400,6 +460,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +		q->ht[hash] = x = q->dep[depth].next;
 +		q->hash[x] = hash;
 +	}
++	sch->qstats.backlog += skb->len;
 +	__skb_queue_tail(&q->qs[x], skb);
 +	esfq_inc(q, x);
 +	if (q->qs[x].qlen == 1) {		/* The flow is new */
@@ -436,6 +497,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +		q->ht[hash] = x = q->dep[depth].next;
 +		q->hash[x] = hash;
 +	}
++	sch->qstats.backlog += skb->len;
 +	__skb_queue_head(&q->qs[x], skb);
 +	esfq_inc(q, x);
 +	if (q->qs[x].qlen == 1) {		/* The flow is new */
@@ -480,6 +542,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +	skb = __skb_dequeue(&q->qs[a]);
 +	esfq_dec(q, a);
 +	sch->q.qlen--;
++	sch->qstats.backlog -= skb->len;
 +	
 +	/* Is the slot empty? */
 +	if (q->qs[a].qlen == 0) {
@@ -542,7 +605,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +	
 +	if (ctl->hash_kind) {
 +		q->hash_kind = ctl->hash_kind;
-+		if (q->hash_kind !=  TCA_SFQ_HASH_CLASSIC)
++		if (q->hash_kind != TCA_SFQ_HASH_CLASSIC)
 +			q->perturb_period = 0;
 +	}
 +	
@@ -566,7 +629,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e
 +{
 +	struct esfq_sched_data *q = qdisc_priv(sch);
 +	struct tc_esfq_qopt *ctl;
-+	esfq_index p = ~0UL/2;
++	esfq_index p = ~0U/2;
 +	int i;
 +	
 +	if (opt && opt->rta_len < RTA_LENGTH(sizeof(*ctl)))

Fișier diff suprimat deoarece este prea mare
+ 33 - 918
target/linux/generic-2.6/patches/201-multiple_default_gateways.patch


+ 101 - 101
target/linux/generic-2.6/patches/510-Yaffs.patch

@@ -1,26 +1,26 @@
-diff -urN linux.old/fs/Kconfig linux.dev/fs/Kconfig
---- linux.old/fs/Kconfig	2006-11-29 22:57:37.000000000 +0100
-+++ linux.dev/fs/Kconfig	2006-12-14 04:21:47.000000000 +0100
-@@ -1202,6 +1202,8 @@
+diff -Nur linux-2.6.21.1/fs/Kconfig linux-2.6.21.1-owrt/fs/Kconfig
+--- linux-2.6.21.1/fs/Kconfig	2007-05-14 10:49:47.000000000 +0200
++++ linux-2.6.21.1-owrt/fs/Kconfig	2007-05-14 11:53:15.000000000 +0200
+@@ -1189,6 +1189,8 @@
  	  To compile the EFS file system support as a module, choose M here: the
  	  module will be called efs.
  
 +source "fs/yaffs2/Kconfig"
 +
- config JFFS_FS
- 	tristate "Journalling Flash File System (JFFS) support"
- 	depends on MTD && BLOCK
-diff -urN linux.old/fs/Makefile linux.dev/fs/Makefile
---- linux.old/fs/Makefile	2006-11-29 22:57:37.000000000 +0100
-+++ linux.dev/fs/Makefile	2006-12-14 04:21:47.000000000 +0100
-@@ -114,3 +114,4 @@
+ config JFFS2_FS
+ 	tristate "Journalling Flash File System v2 (JFFS2) support"
+ 	select CRC32
+diff -Nur linux-2.6.21.1/fs/Makefile linux-2.6.21.1-owrt/fs/Makefile
+--- linux-2.6.21.1/fs/Makefile	2007-05-14 10:49:47.000000000 +0200
++++ linux-2.6.21.1-owrt/fs/Makefile	2007-05-14 11:52:43.000000000 +0200
+@@ -115,3 +115,4 @@
  obj-$(CONFIG_DEBUG_FS)		+= debugfs/
  obj-$(CONFIG_OCFS2_FS)		+= ocfs2/
  obj-$(CONFIG_GFS2_FS)           += gfs2/
 +obj-$(CONFIG_YAFFS_FS)		+= yaffs2/
-diff -urN linux.old/fs/yaffs2/devextras.h linux.dev/fs/yaffs2/devextras.h
---- linux.old/fs/yaffs2/devextras.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/devextras.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/devextras.h linux-2.6.21.1-owrt/fs/yaffs2/devextras.h
+--- linux-2.6.21.1/fs/yaffs2/devextras.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/devextras.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,265 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -287,9 +287,9 @@ diff -urN linux.old/fs/yaffs2/devextras.h linux.dev/fs/yaffs2/devextras.h
 +#endif
 +
 +#endif
-diff -urN linux.old/fs/yaffs2/Kconfig linux.dev/fs/yaffs2/Kconfig
---- linux.old/fs/yaffs2/Kconfig	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/Kconfig	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/Kconfig linux-2.6.21.1-owrt/fs/yaffs2/Kconfig
+--- linux-2.6.21.1/fs/yaffs2/Kconfig	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/Kconfig	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,135 @@
 +#
 +# YAFFS file system configurations
@@ -426,9 +426,9 @@ diff -urN linux.old/fs/yaffs2/Kconfig linux.dev/fs/yaffs2/Kconfig
 +	  but makes look-ups faster.
 +
 +	  If unsure, say Y.
-diff -urN linux.old/fs/yaffs2/Makefile linux.dev/fs/yaffs2/Makefile
---- linux.old/fs/yaffs2/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/Makefile	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/Makefile linux-2.6.21.1-owrt/fs/yaffs2/Makefile
+--- linux-2.6.21.1/fs/yaffs2/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/Makefile	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,10 @@
 +#
 +# Makefile for the linux YAFFS filesystem routines.
@@ -440,9 +440,9 @@ diff -urN linux.old/fs/yaffs2/Makefile linux.dev/fs/yaffs2/Makefile
 +yaffs-y += yaffs_packedtags2.o yaffs_nand.o yaffs_qsort.o
 +yaffs-y += yaffs_tagscompat.o yaffs_tagsvalidity.o
 +yaffs-y += yaffs_mtdif.o yaffs_mtdif2.o
-diff -urN linux.old/fs/yaffs2/moduleconfig.h linux.dev/fs/yaffs2/moduleconfig.h
---- linux.old/fs/yaffs2/moduleconfig.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/moduleconfig.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/moduleconfig.h linux-2.6.21.1-owrt/fs/yaffs2/moduleconfig.h
+--- linux-2.6.21.1/fs/yaffs2/moduleconfig.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/moduleconfig.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,32 @@
 +#ifndef __YAFFS_CONFIG_H__
 +#define __YAFFS_CONFIG_H__
@@ -476,9 +476,9 @@ diff -urN linux.old/fs/yaffs2/moduleconfig.h linux.dev/fs/yaffs2/moduleconfig.h
 +#endif /* YAFFS_OUT_OF_TREE */
 +
 +#endif /* __YAFFS_CONFIG_H__ */
-diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.c linux.dev/fs/yaffs2/yaffs_checkptrw.c
---- linux.old/fs/yaffs2/yaffs_checkptrw.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_checkptrw.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,384 @@
 +/* YAFFS: Yet another FFS. A NAND-flash specific file system. 
 + *
@@ -864,9 +864,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.c linux.dev/fs/yaffs2/yaffs_checkp
 +
 +
 +
-diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.h linux.dev/fs/yaffs2/yaffs_checkptrw.h
---- linux.old/fs/yaffs2/yaffs_checkptrw.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_checkptrw.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,18 @@
 +#ifndef __YAFFS_CHECKPTRW_H__
 +#define __YAFFS_CHECKPTRW_H__
@@ -886,9 +886,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.h linux.dev/fs/yaffs2/yaffs_checkp
 +
 +#endif
 +
-diff -urN linux.old/fs/yaffs2/yaffs_ecc.c linux.dev/fs/yaffs2/yaffs_ecc.c
---- linux.old/fs/yaffs2/yaffs_ecc.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_ecc.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_ecc.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_ecc.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,333 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -1223,9 +1223,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_ecc.c linux.dev/fs/yaffs2/yaffs_ecc.c
 +
 +}
 +
-diff -urN linux.old/fs/yaffs2/yaffs_ecc.h linux.dev/fs/yaffs2/yaffs_ecc.h
---- linux.old/fs/yaffs2/yaffs_ecc.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_ecc.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_ecc.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_ecc.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,44 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -1271,9 +1271,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_ecc.h linux.dev/fs/yaffs2/yaffs_ecc.h
 +			  yaffs_ECCOther * read_ecc,
 +			  const yaffs_ECCOther * test_ecc);
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_fs.c linux.dev/fs/yaffs2/yaffs_fs.c
---- linux.old/fs/yaffs2/yaffs_fs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_fs.c	2006-12-14 04:33:02.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_fs.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_fs.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_fs.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_fs.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,2136 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system.
@@ -3411,9 +3411,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_fs.c linux.dev/fs/yaffs2/yaffs_fs.c
 +MODULE_DESCRIPTION("YAFFS2 - a NAND specific flash file system");
 +MODULE_AUTHOR("Charles Manning, Aleph One Ltd., 2002-2006");
 +MODULE_LICENSE("GPL");
-diff -urN linux.old/fs/yaffs2/yaffs_guts.c linux.dev/fs/yaffs2/yaffs_guts.c
---- linux.old/fs/yaffs2/yaffs_guts.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_guts.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_guts.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_guts.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,6675 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system.
@@ -10090,9 +10090,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_guts.c linux.dev/fs/yaffs2/yaffs_guts.c
 +
 +	    return YAFFS_OK;
 +}
-diff -urN linux.old/fs/yaffs2/yaffs_guts.h linux.dev/fs/yaffs2/yaffs_guts.h
---- linux.old/fs/yaffs2/yaffs_guts.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_guts.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_guts.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_guts.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,893 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system.
@@ -10987,9 +10987,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_guts.h linux.dev/fs/yaffs2/yaffs_guts.h
 +void yaffs_HandleChunkError(yaffs_Device *dev, yaffs_BlockInfo *bi);
 +
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffsinterface.h linux.dev/fs/yaffs2/yaffsinterface.h
---- linux.old/fs/yaffs2/yaffsinterface.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffsinterface.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffsinterface.h linux-2.6.21.1-owrt/fs/yaffs2/yaffsinterface.h
+--- linux-2.6.21.1/fs/yaffs2/yaffsinterface.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffsinterface.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,23 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system.
@@ -11014,9 +11014,9 @@ diff -urN linux.old/fs/yaffs2/yaffsinterface.h linux.dev/fs/yaffs2/yaffsinterfac
 +int yaffs_Initialise(unsigned nBlocks);
 +
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.c linux.dev/fs/yaffs2/yaffs_mtdif2.c
---- linux.old/fs/yaffs2/yaffs_mtdif2.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_mtdif2.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,234 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -11252,9 +11252,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.c linux.dev/fs/yaffs2/yaffs_mtdif2.c
 +		return YAFFS_FAIL;
 +}
 +
-diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.h linux.dev/fs/yaffs2/yaffs_mtdif2.h
---- linux.old/fs/yaffs2/yaffs_mtdif2.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_mtdif2.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,29 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -11285,9 +11285,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.h linux.dev/fs/yaffs2/yaffs_mtdif2.h
 +			    yaffs_BlockState * state, int *sequenceNumber);
 +
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_mtdif.c linux.dev/fs/yaffs2/yaffs_mtdif.c
---- linux.old/fs/yaffs2/yaffs_mtdif.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_mtdif.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,243 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -11532,9 +11532,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_mtdif.c linux.dev/fs/yaffs2/yaffs_mtdif.c
 +	return YAFFS_OK;
 +}
 +
-diff -urN linux.old/fs/yaffs2/yaffs_mtdif.h linux.dev/fs/yaffs2/yaffs_mtdif.h
---- linux.old/fs/yaffs2/yaffs_mtdif.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_mtdif.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,31 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -11567,9 +11567,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_mtdif.h linux.dev/fs/yaffs2/yaffs_mtdif.h
 +int nandmtd_EraseBlockInNAND(yaffs_Device * dev, int blockNumber);
 +int nandmtd_InitialiseNAND(yaffs_Device * dev);
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_nand.c linux.dev/fs/yaffs2/yaffs_nand.c
---- linux.old/fs/yaffs2/yaffs_nand.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_nand.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nand.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_nand.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,135 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -11706,9 +11706,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_nand.c linux.dev/fs/yaffs2/yaffs_nand.c
 +
 +
 + 
-diff -urN linux.old/fs/yaffs2/yaffs_nandemul2k.h linux.dev/fs/yaffs2/yaffs_nandemul2k.h
---- linux.old/fs/yaffs2/yaffs_nandemul2k.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_nandemul2k.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nandemul2k.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nandemul2k.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_nandemul2k.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nandemul2k.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,42 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -11752,9 +11752,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_nandemul2k.h linux.dev/fs/yaffs2/yaffs_nande
 +int nandemul2k_GetNumberOfBlocks(void);
 +
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_nand.h linux.dev/fs/yaffs2/yaffs_nand.h
---- linux.old/fs/yaffs2/yaffs_nand.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_nand.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nand.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_nand.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,43 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -11799,9 +11799,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_nand.h linux.dev/fs/yaffs2/yaffs_nand.h
 +
 +#endif
 +
-diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.c linux.dev/fs/yaffs2/yaffs_packedtags1.c
---- linux.old/fs/yaffs2/yaffs_packedtags1.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_packedtags1.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,39 @@
 +#include "yaffs_packedtags1.h"
 +#include "yportenv.h"
@@ -11842,9 +11842,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.c linux.dev/fs/yaffs2/yaffs_pack
 +
 +	}
 +}
-diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.h linux.dev/fs/yaffs2/yaffs_packedtags1.h
---- linux.old/fs/yaffs2/yaffs_packedtags1.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_packedtags1.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,22 @@
 +// This is used to pack YAFFS1 tags, not YAFFS2 tags.
 +
@@ -11868,9 +11868,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.h linux.dev/fs/yaffs2/yaffs_pack
 +void yaffs_PackTags1(yaffs_PackedTags1 * pt, const yaffs_ExtendedTags * t);
 +void yaffs_UnpackTags1(yaffs_ExtendedTags * t, const yaffs_PackedTags1 * pt);
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.c linux.dev/fs/yaffs2/yaffs_packedtags2.c
---- linux.old/fs/yaffs2/yaffs_packedtags2.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_packedtags2.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,184 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -12056,9 +12056,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.c linux.dev/fs/yaffs2/yaffs_pack
 +	yaffs_DumpTags2(t);
 +
 +}
-diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.h linux.dev/fs/yaffs2/yaffs_packedtags2.h
---- linux.old/fs/yaffs2/yaffs_packedtags2.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_packedtags2.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,23 @@
 +/* This is used to pack YAFFS2 tags, not YAFFS1tags. */
 +
@@ -12083,9 +12083,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.h linux.dev/fs/yaffs2/yaffs_pack
 +void yaffs_PackTags2(yaffs_PackedTags2 * pt, const yaffs_ExtendedTags * t);
 +void yaffs_UnpackTags2(yaffs_ExtendedTags * t, yaffs_PackedTags2 * pt);
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_qsort.c linux.dev/fs/yaffs2/yaffs_qsort.c
---- linux.old/fs/yaffs2/yaffs_qsort.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_qsort.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_qsort.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_qsort.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,156 @@
 +/*
 + * Copyright (c) 1992, 1993
@@ -12243,9 +12243,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_qsort.c linux.dev/fs/yaffs2/yaffs_qsort.c
 +	}
 +/*		qsort(pn - r, r / es, es, cmp);*/
 +}
-diff -urN linux.old/fs/yaffs2/yaffs_qsort.h linux.dev/fs/yaffs2/yaffs_qsort.h
---- linux.old/fs/yaffs2/yaffs_qsort.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_qsort.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_qsort.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_qsort.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,23 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system.
@@ -12270,9 +12270,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_qsort.h linux.dev/fs/yaffs2/yaffs_qsort.h
 +                   int (*cmp)(const void *, const void *));
 +
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.c linux.dev/fs/yaffs2/yaffs_tagscompat.c
---- linux.old/fs/yaffs2/yaffs_tagscompat.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_tagscompat.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,532 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -12806,9 +12806,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.c linux.dev/fs/yaffs2/yaffs_tagsc
 +
 +	return YAFFS_OK;
 +}
-diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.h linux.dev/fs/yaffs2/yaffs_tagscompat.h
---- linux.old/fs/yaffs2/yaffs_tagscompat.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_tagscompat.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,40 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 
@@ -12850,9 +12850,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.h linux.dev/fs/yaffs2/yaffs_tagsc
 +					  state, int *sequenceNumber);
 +
 +#endif
-diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.c linux.dev/fs/yaffs2/yaffs_tagsvalidity.c
---- linux.old/fs/yaffs2/yaffs_tagsvalidity.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_tagsvalidity.c	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.c
+--- linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.c	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,31 @@
 +
 +/*
@@ -12885,9 +12885,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.c linux.dev/fs/yaffs2/yaffs_tag
 +		tags->validMarker1 == 0x55555555);
 +
 +}
-diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.h linux.dev/fs/yaffs2/yaffs_tagsvalidity.h
---- linux.old/fs/yaffs2/yaffs_tagsvalidity.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yaffs_tagsvalidity.h	2006-12-14 04:21:47.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.h
+--- linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,25 @@
 +
 +/*
@@ -12914,9 +12914,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.h linux.dev/fs/yaffs2/yaffs_tag
 +void yaffs_InitialiseTags(yaffs_ExtendedTags * tags);
 +int yaffs_ValidateTags(yaffs_ExtendedTags * tags);
 +#endif
-diff -urN linux.old/fs/yaffs2/yportenv.h linux.dev/fs/yaffs2/yportenv.h
---- linux.old/fs/yaffs2/yportenv.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/fs/yaffs2/yportenv.h	2006-12-14 04:26:06.000000000 +0100
+diff -Nur linux-2.6.21.1/fs/yaffs2/yportenv.h linux-2.6.21.1-owrt/fs/yaffs2/yportenv.h
+--- linux-2.6.21.1/fs/yaffs2/yportenv.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/fs/yaffs2/yportenv.h	2007-05-14 11:52:43.000000000 +0200
 @@ -0,0 +1,165 @@
 +/*
 + * YAFFS: Yet another FFS. A NAND-flash specific file system. 

+ 53 - 55
target/linux/generic-2.6/patches/600-x86_lzma.patch

@@ -1,6 +1,6 @@
-diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.c linux-lzma/arch/i386/boot/compressed/LzmaDecode.c
---- linux-old/arch/i386/boot/compressed/LzmaDecode.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-lzma/arch/i386/boot/compressed/LzmaDecode.c	2005-06-05 00:07:38.000000000 -0400
+diff -Nur linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.c linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.c
+--- linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.c	2007-05-14 11:55:38.000000000 +0200
 @@ -0,0 +1,586 @@
 +/*
 +  LzmaDecode.c
@@ -588,9 +588,9 @@ diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.c linux-lzma/arch/i386
 +  *outSizeProcessed = nowPos;
 +  return LZMA_RESULT_OK;
 +}
-diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.h linux-lzma/arch/i386/boot/compressed/LzmaDecode.h
---- linux-old/arch/i386/boot/compressed/LzmaDecode.h	1969-12-31 19:00:00.000000000 -0500
-+++ linux-lzma/arch/i386/boot/compressed/LzmaDecode.h	2005-06-05 00:07:39.000000000 -0400
+diff -Nur linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.h linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.h
+--- linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.h	2007-05-14 11:55:38.000000000 +0200
 @@ -0,0 +1,100 @@
 +/* 
 +  LzmaDecode.h
@@ -692,52 +692,9 @@ diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.h linux-lzma/arch/i386
 +    UInt32 *outSizeProcessed);
 +
 +#endif
-diff -Naur linux-old/arch/i386/boot/compressed/Makefile linux-lzma/arch/i386/boot/compressed/Makefile
---- linux-old/arch/i386/boot/compressed/Makefile	2005-06-04 21:53:40.000000000 -0400
-+++ linux-lzma/arch/i386/boot/compressed/Makefile	2005-06-05 00:25:23.000000000 -0400
-@@ -2,24 +2,33 @@
- # linux/arch/i386/boot/compressed/Makefile
- #
- # create a compressed vmlinux image from the original vmlinux
-+# patched by Ming-Ching Tiew <[email protected]> for kernel 2.6
-+# requires program 'lzma' from LZMA SDK ( http://www.7-zip.org/ ) to work
-+#    $ mkdir lzma
-+#    $ cd lzma
-+#    $ tar tvjf ../lzma417.tar.bz2
-+#    $ cd SRC/7zip/Compress/LZMA_Alone
-+#    $ dos2unix makefile
-+#    $ make
-+#    $ su
-+#    # cp lzma /usr/bin
- #
--
--targets		:= vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o
-+targets		:= vmlinux vmlinux.bin vmlinux.bin.lzma head.o lzma_misc.o piggy.o
- EXTRA_AFLAGS	:= -traditional
- 
- LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup_32
- 
--$(obj)/vmlinux: $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o FORCE
-+$(obj)/vmlinux: $(obj)/head.o $(obj)/lzma_misc.o $(obj)/piggy.o FORCE
- 	$(call if_changed,ld)
- 	@:
- 
- $(obj)/vmlinux.bin: vmlinux FORCE
- 	$(call if_changed,objcopy)
- 
--$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
--	$(call if_changed,gzip)
-+$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
-+	$(call if_changed,lzma)
- 
- LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
- 
--$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
-+$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.lzma FORCE
- 	$(call if_changed,ld)
-diff -Naur linux-old/arch/i386/boot/compressed/lzma_misc.c linux-lzma/arch/i386/boot/compressed/lzma_misc.c
---- linux-old/arch/i386/boot/compressed/lzma_misc.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-lzma/arch/i386/boot/compressed/lzma_misc.c	2005-06-04 21:33:48.000000000 -0400
+diff -Nur linux-2.6.21.1/arch/i386/boot/compressed/lzma_misc.c linux-2.6.21.1-owrt/arch/i386/boot/compressed/lzma_misc.c
+--- linux-2.6.21.1/arch/i386/boot/compressed/lzma_misc.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/lzma_misc.c	2007-05-14 11:55:38.000000000 +0200
 @@ -0,0 +1,412 @@
 +/*
 + * lzma_misc.c
@@ -1151,9 +1108,50 @@ diff -Naur linux-old/arch/i386/boot/compressed/lzma_misc.c linux-lzma/arch/i386/
 +	if (high_loaded) close_output_buffer_if_we_run_high(mv);
 +	return high_loaded;
 +}
-diff -urN linux-2.6.19.2/scripts/Makefile.lib linux-2.6.19.2.new/scripts/Makefile.lib
---- linux-2.6.19.2/scripts/Makefile.lib	2007-01-10 20:10:37.000000000 +0100
-+++ linux-2.6.19.2.new/scripts/Makefile.lib	2007-04-15 23:51:54.000000000 +0200
+diff -Nur linux-2.6.21.1/arch/i386/boot/compressed/Makefile linux-2.6.21.1-owrt/arch/i386/boot/compressed/Makefile
+--- linux-2.6.21.1/arch/i386/boot/compressed/Makefile	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/Makefile	2007-05-14 12:01:25.000000000 +0200
+@@ -4,7 +4,7 @@
+ # create a compressed vmlinux image from the original vmlinux
+ #
+ 
+-targets		:= vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o \
++targets		:= vmlinux vmlinux.bin vmlinux.bin.lzma head.o lzma_misc.o piggy.o \
+ 			vmlinux.bin.all vmlinux.relocs
+ EXTRA_AFLAGS	:= -traditional
+ 
+@@ -12,7 +12,7 @@
+ CFLAGS_misc.o += -fPIC
+ hostprogs-y	:= relocs
+ 
+-$(obj)/vmlinux: $(src)/vmlinux.lds $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o FORCE
++$(obj)/vmlinux: $(src)/vmlinux.lds $(obj)/head.o $(obj)/lzma_misc.o $(obj)/piggy.o FORCE
+ 	$(call if_changed,ld)
+ 	@:
+ 
+@@ -32,14 +32,14 @@
+ 	$(call if_changed,relocbin)
+ 
+ ifdef CONFIG_RELOCATABLE
+-$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin.all FORCE
+-	$(call if_changed,gzip)
++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin.all FORCE
++	$(call if_changed,lzma)
+ else
+-$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
+-	$(call if_changed,gzip)
++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
++	$(call if_changed,lzma)
+ endif
+ 
+ LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
+ 
+-$(obj)/piggy.o: $(src)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
++$(obj)/piggy.o: $(src)/vmlinux.scr $(obj)/vmlinux.bin.lzma FORCE
+ 	$(call if_changed,ld)
+diff -Nur linux-2.6.21.1/scripts/Makefile.lib linux-2.6.21.1-owrt/scripts/Makefile.lib
+--- linux-2.6.21.1/scripts/Makefile.lib	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/scripts/Makefile.lib	2007-05-14 11:55:38.000000000 +0200
 @@ -162,4 +162,9 @@
  quiet_cmd_gzip = GZIP    $@
  cmd_gzip = gzip -f -9 < $< > $@

+ 0 - 12
target/linux/generic-2.6/patches/700-airprime.patch

@@ -1,12 +0,0 @@
-diff -urN linux-2.6.19.2-old/drivers/usb/serial/airprime.c linux-2.6.19.2-dev/drivers/usb/serial/airprime.c
---- linux-2.6.19.2-old/drivers/usb/serial/airprime.c	2007-05-01 14:11:28.000000000 -0700
-+++ linux-2.6.19.2-dev/drivers/usb/serial/airprime.c	2007-05-01 14:12:03.000000000 -0700
-@@ -20,6 +20,8 @@
- 	{ USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */
- 	{ USB_DEVICE(0x1410, 0x1110) }, /* Novatel Wireless Merlin CDMA */
- 	{ USB_DEVICE(0x1410, 0x1100) }, /* ExpressCard34 Qualcomm 3G CDMA */
-+	{ USB_DEVICE(0x1410, 0x1130) }, /* Novatel Wireless S720 CDMA/EV-DO */
-+	{ USB_DEVICE(0x1410, 0x2110) }, /* Novatel Wireless U720 CDMA/EV-DO */
- 	{ },
- };
- MODULE_DEVICE_TABLE(usb, id_table);

+ 0 - 11
target/linux/generic-2.6/patches/901-asm_bitops_include.patch

@@ -1,11 +0,0 @@
-diff -urN linux-2.6.19.old/include/asm-mips/bitops.h linux-2.6.19.dev/include/asm-mips/bitops.h
---- linux-2.6.19.old/include/asm-mips/bitops.h	2006-11-29 22:57:37.000000000 +0100
-+++ linux-2.6.19.dev/include/asm-mips/bitops.h	2006-12-14 03:14:07.000000000 +0100
-@@ -11,6 +11,7 @@
- 
- #include <linux/compiler.h>
- #include <linux/types.h>
-+#include <asm/war.h>
- #include <asm/bug.h>
- #include <asm/byteorder.h>		/* sigh ... */
- #include <asm/cpu-features.h>

+ 15 - 18
target/linux/generic-2.6/patches/904-ls_time_locale.patch

@@ -1,24 +1,21 @@
-diff -urN linux-2.6.19.2/scripts/gen_initramfs_list.sh linux-2.6.19.2.new/scripts/gen_initramfs_list.sh
---- linux-2.6.19.2/scripts/gen_initramfs_list.sh	2007-01-10 20:10:37.000000000 +0100
-+++ linux-2.6.19.2.new/scripts/gen_initramfs_list.sh	2007-05-03 16:25:06.000000000 +0200
-@@ -120,9 +120,9 @@
+diff -Nur linux-2.6.21.1/scripts/gen_initramfs_list.sh linux-2.6.21.1-owrt/scripts/gen_initramfs_list.sh
+--- linux-2.6.21.1/scripts/gen_initramfs_list.sh	2007-04-27 23:49:26.000000000 +0200
++++ linux-2.6.21.1-owrt/scripts/gen_initramfs_list.sh	2007-05-14 12:18:02.000000000 +0200
+@@ -125,7 +125,7 @@
+ 			str="${ftype} ${name} ${location} ${str}"
  			;;
  		"nod")
- 			local dev_type=
--			local maj=$(LC_ALL=C ls -l "${location}" | \
-+			local maj=$(LC_ALL=C ls --time-style=locale -l "${location}" | \
- 					gawk '{sub(/,/, "", $5); print $5}')
--			local min=$(LC_ALL=C ls -l "${location}" | \
-+			local min=$(LC_ALL=C ls --time-style=locale -l "${location}" | \
- 					gawk '{print $6}')
- 
- 			if [ -b "${location}" ]; then
-@@ -133,7 +133,7 @@
- 			str="${ftype} ${name} ${str} ${dev_type} ${maj} ${min}"
+-			local dev=`LC_ALL=C ls -l "${location}"`
++			local dev=`LC_ALL=C ls -l --time-style=locale "${location}"`
+ 			local maj=`field 5 ${dev}`
+ 			local min=`field 6 ${dev}`
+ 			maj=${maj%,}
+@@ -135,7 +135,7 @@
+ 			str="${ftype} ${name} ${str} ${dev} ${maj} ${min}"
  			;;
  		"slink")
--			local target=$(LC_ALL=C ls -l "${location}" | \
-+			local target=$(LC_ALL=C ls --time-style=locale -l "${location}" | \
- 					gawk '{print $11}')
+-			local target=`field 11 $(LC_ALL=C ls -l "${location}")`
++			local target=`field 11 $(LC_ALL=C ls -l --time-style=locale "${location}")`
  			str="${ftype} ${name} ${target} ${str}"
  			;;
+ 		*)

+ 9 - 0
target/linux/ixp4xx-2.6/config/default

@@ -15,8 +15,10 @@ CONFIG_ALIGNMENT_TRAP=y
 # CONFIG_ARCH_H720X is not set
 # CONFIG_ARCH_IMX is not set
 # CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_IOP13XX is not set
 # CONFIG_ARCH_IOP32X is not set
 # CONFIG_ARCH_IOP33X is not set
+CONFIG_ARCH_IXCDP1100=y
 CONFIG_ARCH_IXDP425=y
 CONFIG_ARCH_IXDP4XX=y
 # CONFIG_ARCH_IXP2000 is not set
@@ -25,6 +27,7 @@ CONFIG_ARCH_IXP4XX=y
 # CONFIG_ARCH_L7200 is not set
 # CONFIG_ARCH_LH7A40X is not set
 # CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_NS9XXX is not set
 # CONFIG_ARCH_OMAP is not set
 # CONFIG_ARCH_PNX4008 is not set
 # CONFIG_ARCH_PRPMC1100 is not set
@@ -202,9 +205,11 @@ CONFIG_IXP4XX_NPE_FW_MTD=y
 CONFIG_IXP4XX_QMGR=y
 CONFIG_IXP4XX_CRYPTO=y
 CONFIG_IXP4XX_WATCHDOG=y
+# CONFIG_IWMMXT is not set
 # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
 CONFIG_JFFS2_FS_DEBUG=0
 # CONFIG_JFS_FS is not set
+# CONFIG_KEXEC is not set
 # CONFIG_LANMEDIA is not set
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
@@ -318,6 +323,7 @@ CONFIG_PATA_ARTOP=m
 # CONFIG_PATA_HPT37X is not set
 # CONFIG_PATA_HPT3X2N is not set
 # CONFIG_PATA_HPT3X3 is not set
+CONFIG_PATA_IXP4XX_CF=m
 # CONFIG_PATA_IT821X is not set
 # CONFIG_PATA_JMICRON is not set
 # CONFIG_PATA_MPIIX is not set
@@ -389,6 +395,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_SENSORS_ADM1021 is not set
 # CONFIG_SENSORS_ADM1025 is not set
 # CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
 # CONFIG_SENSORS_ADM1031 is not set
 # CONFIG_SENSORS_ADM9240 is not set
 # CONFIG_SENSORS_ASB100 is not set
@@ -416,6 +423,7 @@ CONFIG_SENSORS_EEPROM=y
 # CONFIG_SENSORS_MAX1619 is not set
 # CONFIG_SENSORS_MAX6875 is not set
 # CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
 # CONFIG_SENSORS_PCA9539 is not set
 # CONFIG_SENSORS_PCF8574 is not set
 # CONFIG_SENSORS_PCF8591 is not set
@@ -431,6 +439,7 @@ CONFIG_SENSORS_EEPROM=y
 # CONFIG_SENSORS_W83781D is not set
 # CONFIG_SENSORS_W83791D is not set
 # CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
 # CONFIG_SENSORS_W83L785TS is not set
 # CONFIG_SERIAL_8250_EXTENDED is not set
 # CONFIG_SHMEM is not set

+ 196 - 0
target/linux/ixp4xx-2.6/patches/080-trivial_nslu2_nas100d_cleanup.patch

@@ -0,0 +1,196 @@
+This trivial patch updates the nslu2 and nas-100d headers to
+remove pointless GPIO defines, and updates nslu2-setup.c
+accordingly. In addition minor style cleanups to some comments
+are included.
+
+Signed-off-by: Michael-Luke Jones <[email protected]>
+
+Index: linux-2.6.21-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
+===================================================================
+--- linux-2.6.21-armeb.orig/arch/arm/mach-ixp4xx/nslu2-setup.c	2007-05-09 07:32:43.000000000 -0700
++++ linux-2.6.21-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c	2007-05-09 07:32:46.000000000 -0700
+@@ -50,26 +50,26 @@
+ static struct resource nslu2_led_resources[] = {
+ 	{
+ 		.name		= "ready",  /* green led */
+-		.start		= NSLU2_LED_GRN,
+-		.end		= NSLU2_LED_GRN,
++		.start		= NSLU2_LED_GRN_GPIO,
++		.end		= NSLU2_LED_GRN_GPIO,
+ 		.flags		= IXP4XX_GPIO_HIGH,
+ 	},
+ 	{
+ 		.name		= "status", /* red led */
+-		.start		= NSLU2_LED_RED,
+-		.end		= NSLU2_LED_RED,
++		.start		= NSLU2_LED_RED_GPIO,
++		.end		= NSLU2_LED_RED_GPIO,
+ 		.flags		= IXP4XX_GPIO_HIGH,
+ 	},
+ 	{
+ 		.name		= "disk-1",
+-		.start		= NSLU2_LED_DISK1,
+-		.end		= NSLU2_LED_DISK1,
++		.start		= NSLU2_LED_DISK1_GPIO,
++		.end		= NSLU2_LED_DISK1_GPIO,
+ 		.flags		= IXP4XX_GPIO_LOW,
+ 	},
+ 	{
+ 		.name		= "disk-2",
+-		.start		= NSLU2_LED_DISK2,
+-		.end		= NSLU2_LED_DISK2,
++		.start		= NSLU2_LED_DISK2_GPIO,
++		.end		= NSLU2_LED_DISK2_GPIO,
+ 		.flags		= IXP4XX_GPIO_LOW,
+ 	},
+ };
+@@ -181,7 +181,8 @@
+ 
+ 	pm_power_off = nslu2_power_off;
+ 
+-	/* This is only useful on a modified machine, but it is valuable
++	/*
++	 * This is only useful on a modified machine, but it is valuable
+ 	 * to have it first in order to see debug messages, and so that
+ 	 * it does *not* get removed if platform_add_devices fails!
+ 	 */
+Index: linux-2.6.21-armeb/include/asm-arm/arch-ixp4xx/nslu2.h
+===================================================================
+--- linux-2.6.21-armeb.orig/include/asm-arm/arch-ixp4xx/nslu2.h	2007-05-09 07:32:43.000000000 -0700
++++ linux-2.6.21-armeb/include/asm-arm/arch-ixp4xx/nslu2.h	2007-05-09 07:32:46.000000000 -0700
+@@ -9,7 +9,7 @@
+  * based on ixdp425.h:
+  *	Copyright 2004 (c) MontaVista, Software, Inc.
+  *
+- * This file is licensed under  the terms of the GNU General Public
++ * This file is licensed under the terms of the GNU General Public
+  * License version 2. This program is licensed "as is" without any
+  * warranty of any kind, whether express or implied.
+  */
+@@ -34,36 +34,14 @@
+ #define NSLU2_PCI_INTC_PIN	9
+ #define NSLU2_PCI_INTD_PIN	8
+ 
+-
+ /* NSLU2 Timer */
+ #define NSLU2_FREQ 66000000
+-#define NSLU2_CLOCK_TICK_RATE (((NSLU2_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
+-#define NSLU2_CLOCK_TICKS_PER_USEC ((NSLU2_CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC)
+-
+-/* GPIO */
+-
+-#define NSLU2_GPIO0		0
+-#define NSLU2_GPIO1		1
+-#define NSLU2_GPIO2		2
+-#define NSLU2_GPIO3		3
+-#define NSLU2_GPIO4		4
+-#define NSLU2_GPIO5		5
+-#define NSLU2_GPIO6		6
+-#define NSLU2_GPIO7		7
+-#define NSLU2_GPIO8		8
+-#define NSLU2_GPIO9		9
+-#define NSLU2_GPIO10		10
+-#define NSLU2_GPIO11		11
+-#define NSLU2_GPIO12		12
+-#define NSLU2_GPIO13		13
+-#define NSLU2_GPIO14		14
+-#define NSLU2_GPIO15		15
+ 
+ /* Buttons */
+ 
+-#define NSLU2_PB_GPIO		NSLU2_GPIO5
+-#define NSLU2_PO_GPIO		NSLU2_GPIO8	/* power off */
+-#define NSLU2_RB_GPIO		NSLU2_GPIO12
++#define NSLU2_PB_GPIO		5
++#define NSLU2_PO_GPIO		8	/* power off */
++#define NSLU2_RB_GPIO		12
+ 
+ #define NSLU2_PB_IRQ		IRQ_IXP4XX_GPIO5
+ #define NSLU2_RB_IRQ		IRQ_IXP4XX_GPIO12
+@@ -79,16 +57,16 @@
+ 
+ /* LEDs */
+ 
+-#define NSLU2_LED_RED		NSLU2_GPIO0
+-#define NSLU2_LED_GRN		NSLU2_GPIO1
++#define NSLU2_LED_RED_GPIO	0
++#define NSLU2_LED_GRN_GPIO	1
+ 
+-#define NSLU2_LED_RED_BM	(1L << NSLU2_LED_RED)
+-#define NSLU2_LED_GRN_BM	(1L << NSLU2_LED_GRN)
++#define NSLU2_LED_RED_BM	(1L << NSLU2_LED_RED_GPIO)
++#define NSLU2_LED_GRN_BM	(1L << NSLU2_LED_GRN_GPIO)
+ 
+-#define NSLU2_LED_DISK1		NSLU2_GPIO3
+-#define NSLU2_LED_DISK2		NSLU2_GPIO2
++#define NSLU2_LED_DISK1_GPIO	3
++#define NSLU2_LED_DISK2_GPIO	2
+ 
+-#define NSLU2_LED_DISK1_BM	(1L << NSLU2_GPIO2)
+-#define NSLU2_LED_DISK2_BM	(1L << NSLU2_GPIO3)
++#define NSLU2_LED_DISK1_BM	(1L << NSLU2_LED_DISK1_GPIO)
++#define NSLU2_LED_DISK2_BM	(1L << NSLU2_LED_DISK2_GPIO)
+ 
+ 
+Index: linux-2.6.21-armeb/include/asm-arm/arch-ixp4xx/nas100d.h
+===================================================================
+--- linux-2.6.21-armeb.orig/include/asm-arm/arch-ixp4xx/nas100d.h	2007-04-25 20:08:32.000000000 -0700
++++ linux-2.6.21-armeb/include/asm-arm/arch-ixp4xx/nas100d.h	2007-05-09 07:34:14.000000000 -0700
+@@ -10,7 +10,7 @@
+  * based on ixdp425.h:
+  *	Copyright 2004 (c) MontaVista, Software, Inc.
+  *
+- * This file is licensed under  the terms of the GNU General Public
++ * This file is licensed under the terms of the GNU General Public
+  * License version 2. This program is licensed "as is" without any
+  * warranty of any kind, whether express or implied.
+  */
+@@ -36,31 +36,11 @@
+ #define NAS100D_PCI_INTD_PIN	8
+ #define NAS100D_PCI_INTE_PIN	7
+ 
+-/* GPIO */
+-
+-#define NAS100D_GPIO0           0
+-#define NAS100D_GPIO1           1
+-#define NAS100D_GPIO2           2
+-#define NAS100D_GPIO3           3
+-#define NAS100D_GPIO4           4
+-#define NAS100D_GPIO5           5
+-#define NAS100D_GPIO6           6
+-#define NAS100D_GPIO7           7
+-#define NAS100D_GPIO8           8
+-#define NAS100D_GPIO9           9
+-#define NAS100D_GPIO10          10
+-#define NAS100D_GPIO11          11
+-#define NAS100D_GPIO12          12
+-#define NAS100D_GPIO13          13
+-#define NAS100D_GPIO14          14
+-#define NAS100D_GPIO15          15
+-
+-
+ /* Buttons */
+ 
+-#define NAS100D_PB_GPIO         NAS100D_GPIO14
+-#define NAS100D_RB_GPIO         NAS100D_GPIO4
+-#define NAS100D_PO_GPIO         NAS100D_GPIO12   /* power off */
++#define NAS100D_PB_GPIO         14
++#define NAS100D_RB_GPIO         4
++#define NAS100D_PO_GPIO         12   /* power off */
+ 
+ #define NAS100D_PB_IRQ          IRQ_IXP4XX_GPIO14
+ #define NAS100D_RB_IRQ          IRQ_IXP4XX_GPIO4
+Index: linux-2.6.21-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
+===================================================================
+--- linux-2.6.21-armeb.orig/arch/arm/mach-ixp4xx/nas100d-setup.c	2007-05-09 07:32:43.000000000 -0700
++++ linux-2.6.21-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c	2007-05-09 07:34:55.000000000 -0700
+@@ -155,7 +155,8 @@
+ 
+ 	pm_power_off = nas100d_power_off;
+ 
+-	/* This is only useful on a modified machine, but it is valuable
++	/*
++	 * This is only useful on a modified machine, but it is valuable
+ 	 * to have it first in order to see debug messages, and so that
+ 	 * it does *not* get removed if platform_add_devices fails!
+ 	 */

Fișier diff suprimat deoarece este prea mare
+ 712 - 671
target/linux/ixp4xx-2.6/patches/100-npe_driver.patch


+ 0 - 36
target/linux/ixp4xx-2.6/patches/102-nslu2_led_swap.patch

@@ -1,36 +0,0 @@
-Submitted as http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=3984/1
-
-This patch fixes an error in the numbering of the disk LEDs on the
-Linksys NSLU2.  The error crept in because the physical location
-of the LEDs has the Disk 2 LED *above* the Disk 1 LED.
-
-Thanks to Gordon Farquharson for reporting this.
-
-Signed-off-by: Rod Whitby <[email protected]>
-
-PATCH FOLLOWS
-KernelVersion: 2.6.19
-
-Index: linux-2.6.19/include/asm-arm/arch-ixp4xx/nslu2.h
-===================================================================
---- linux-2.6.19.orig/include/asm-arm/arch-ixp4xx/nslu2.h
-+++ linux-2.6.19/include/asm-arm/arch-ixp4xx/nslu2.h
-@@ -76,6 +76,7 @@
- 
- #define NSLU2_GPIO_BUZZ		4
- #define NSLU2_BZ_BM		(1L << NSLU2_GPIO_BUZZ)
-+
- /* LEDs */
- 
- #define NSLU2_LED_RED		NSLU2_GPIO0
-@@ -84,8 +85,8 @@
- #define NSLU2_LED_RED_BM	(1L << NSLU2_LED_RED)
- #define NSLU2_LED_GRN_BM	(1L << NSLU2_LED_GRN)
- 
--#define NSLU2_LED_DISK1		NSLU2_GPIO2
--#define NSLU2_LED_DISK2		NSLU2_GPIO3
-+#define NSLU2_LED_DISK1		NSLU2_GPIO3
-+#define NSLU2_LED_DISK2		NSLU2_GPIO2
- 
- #define NSLU2_LED_DISK1_BM	(1L << NSLU2_GPIO2)
- #define NSLU2_LED_DISK2_BM	(1L << NSLU2_GPIO3)

+ 17 - 0
target/linux/ixp4xx-2.6/patches/110-ixp4xx_net_driver_fix_mac_handling.patch

@@ -0,0 +1,17 @@
+---
+ drivers/net/ixp4xx/mac_driver.c |   24 ++++++++++--------------
+ 1 file changed, 10 insertions(+), 14 deletions(-)
+
+Index: linux-2.6.21-rc4-git6-arm/drivers/net/ixp4xx/mac_driver.c
+===================================================================
+--- linux-2.6.21-rc4-git6-arm.orig/drivers/net/ixp4xx/mac_driver.c	2007-03-22 10:32:20.735684085 +0000
++++ linux-2.6.21-rc4-git6-arm/drivers/net/ixp4xx/mac_driver.c	2007-03-22 10:33:29.355972584 +0000
+@@ -842,7 +842,7 @@
+ 	}
+ }
+ 
+-module_init(init_mac);
++late_initcall(init_mac);
+ module_exit(finish_mac);
+ 
+ MODULE_LICENSE("GPL");

+ 0 - 41
target/linux/ixp4xx-2.6/patches/133-ixp4xx_net_driver_improve_mac_handling.patch

@@ -1,41 +0,0 @@
-diff -Naupr a/drivers/net/ixp4xx/mac_driver.c b/drivers/net/ixp4xx/mac_driver.c
---- a/drivers/net/ixp4xx/mac_driver.c	2007-01-12 21:54:40.000000000 -0700
-+++ b/drivers/net/ixp4xx/mac_driver.c	2007-01-12 22:27:18.000000000 -0700
-@@ -350,6 +350,16 @@ static int ixmac_open (struct net_device
- 	mac->npe_stat_num = i<NPE_STAT_NUM ? NPE_STAT_NUM_BASE : NPE_STAT_NUM;
- 	mac->npe_stat_num += NPE_Q_STAT_NUM;
- 
-+	/* Only use platform or random if there's currently no device hw addr */
-+	if (is_zero_ether_addr(dev->dev_addr)) {
-+		if (is_zero_ether_addr(mac->plat->hwaddr)) {
-+			random_ether_addr(dev->dev_addr);
-+			dev->dev_addr[5] = mac->plat->phy_id;
-+		}
-+		else
-+			memcpy(dev->dev_addr, mac->plat->hwaddr, 6);
-+	}
-+
- 	mac_set_uniaddr(dev);
- 	media_check(dev, 1);
- 	ixmac_set_rx_mode(dev);
-@@ -691,20 +701,6 @@ static int mac_probe(struct platform_dev
- 
- 	INIT_WORK(&mac->mdio_thread, mac_mdio_thread, dev);
- 
--	/* The place of the MAC address is very system dependent.
--	 * Here we use a random one to be replaced by one of the
--	 * following commands:
--	 * "ip link set address 02:03:04:04:04:01 dev eth0"
--	 * "ifconfig eth0 hw ether 02:03:04:04:04:07"
--	*/
--
--	if (is_zero_ether_addr(plat->hwaddr)) {
--		random_ether_addr(dev->dev_addr);
--		dev->dev_addr[5] = plat->phy_id;
--	}
--	else
--		memcpy(dev->dev_addr, plat->hwaddr, 6);
--
- 	printk(KERN_INFO IXMAC_NAME " driver " IXMAC_VERSION
- 			": %s on %s with PHY[%d] initialized\n",
- 			dev->name, npe->plat->name, plat->phy_id);

+ 47 - 32
target/linux/ixp4xx-2.6/patches/139-ixp4xx_net_driver_mtd_load_fw.patch

@@ -1,7 +1,17 @@
-diff -Naupr a/drivers/net/ixp4xx/Kconfig b/drivers/net/ixp4xx/Kconfig
---- a/drivers/net/ixp4xx/Kconfig	2007-01-12 21:54:40.000000000 -0700
-+++ b/drivers/net/ixp4xx/Kconfig	2007-01-12 23:28:50.000000000 -0700
-@@ -11,6 +11,7 @@ config IXP4XX_NPE
+---
+ drivers/net/ixp4xx/Kconfig             |   10 +
+ drivers/net/ixp4xx/Makefile            |    1 
+ drivers/net/ixp4xx/npe_ucode.c         |  185 +++++++++++++++++++++++++++++++++
+ drivers/net/ixp4xx/ucode_dl.c          |   43 ++++---
+ include/asm-arm/arch-ixp4xx/platform.h |   19 +++
+ include/linux/ixp_npe.h                |    1 
+ 6 files changed, 239 insertions(+), 20 deletions(-)
+
+Index: linux-2.6.20-rc3/drivers/net/ixp4xx/Kconfig
+===================================================================
+--- linux-2.6.20-rc3.orig/drivers/net/ixp4xx/Kconfig
++++ linux-2.6.20-rc3/drivers/net/ixp4xx/Kconfig
+@@ -11,6 +11,7 @@
  	tristate "IXP4xx NPE support"
  	depends on ARCH_IXP4XX
  	depends on NET_ETHERNET
@@ -9,7 +19,7 @@ diff -Naupr a/drivers/net/ixp4xx/Kconfig b/drivers/net/ixp4xx/Kconfig
  	help
  	  The IXP4XX NPE driver supports the 3 CPU co-processors called
  	  "Network Processing Engines" (NPE). It adds support fo downloading
-@@ -18,7 +19,7 @@ config IXP4XX_NPE
+@@ -18,7 +19,7 @@
  	  More about this at: Documentation/networking/ixp4xx/README.
  	  You can either use this OR the Intel Access Library (IAL)
  
@@ -18,7 +28,7 @@ diff -Naupr a/drivers/net/ixp4xx/Kconfig b/drivers/net/ixp4xx/Kconfig
  	bool "Use Firmware hotplug for Microcode download"
  	depends on IXP4XX_NPE
  	select HOTPLUG
-@@ -28,6 +29,13 @@ config IXP4XX_FW_LOAD
+@@ -28,6 +29,13 @@
  	  /usr/lib/hotplug/firmware/NPE-[ABC]
  	  see Documentation/firmware_class/hotplug-script
  
@@ -32,9 +42,10 @@ diff -Naupr a/drivers/net/ixp4xx/Kconfig b/drivers/net/ixp4xx/Kconfig
  config IXP4XX_MAC
  	tristate "IXP4xx MAC support"
  	depends on IXP4XX_NPE
-diff -Naupr a/drivers/net/ixp4xx/Makefile b/drivers/net/ixp4xx/Makefile
---- a/drivers/net/ixp4xx/Makefile	2007-01-12 21:54:40.000000000 -0700
-+++ b/drivers/net/ixp4xx/Makefile	2007-01-12 23:28:50.000000000 -0700
+Index: linux-2.6.20-rc3/drivers/net/ixp4xx/Makefile
+===================================================================
+--- linux-2.6.20-rc3.orig/drivers/net/ixp4xx/Makefile
++++ linux-2.6.20-rc3/drivers/net/ixp4xx/Makefile
 @@ -1,5 +1,6 @@
  obj-$(CONFIG_IXP4XX_QMGR) += ixp4xx_qmgr.o
  obj-$(CONFIG_IXP4XX_NPE) += ixp4xx_npe.o
@@ -42,9 +53,10 @@ diff -Naupr a/drivers/net/ixp4xx/Makefile b/drivers/net/ixp4xx/Makefile
  obj-$(CONFIG_IXP4XX_MAC) += ixp4xx_mac.o
  obj-$(CONFIG_IXP4XX_CRYPTO) += ixp4xx_crypto.o
  
-diff -Naupr a/drivers/net/ixp4xx/npe_ucode.c b/drivers/net/ixp4xx/npe_ucode.c
---- a/drivers/net/ixp4xx/npe_ucode.c	1969-12-31 17:00:00.000000000 -0700
-+++ b/drivers/net/ixp4xx/npe_ucode.c	2007-01-12 23:28:50.000000000 -0700
+Index: linux-2.6.20-rc3/drivers/net/ixp4xx/npe_ucode.c
+===================================================================
+--- /dev/null
++++ linux-2.6.20-rc3/drivers/net/ixp4xx/npe_ucode.c
 @@ -0,0 +1,185 @@
 +/*
 + * Provide an NPE platform device for microcode handling
@@ -231,9 +243,10 @@ diff -Naupr a/drivers/net/ixp4xx/npe_ucode.c b/drivers/net/ixp4xx/npe_ucode.c
 +
 +MODULE_LICENSE("GPL");
 +MODULE_AUTHOR("Alessandro Zummo <[email protected]>");
-diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c
---- a/drivers/net/ixp4xx/ucode_dl.c	2007-01-12 21:54:40.000000000 -0700
-+++ b/drivers/net/ixp4xx/ucode_dl.c	2007-01-12 23:28:50.000000000 -0700
+Index: linux-2.6.20-rc3/drivers/net/ixp4xx/ucode_dl.c
+===================================================================
+--- linux-2.6.20-rc3.orig/drivers/net/ixp4xx/ucode_dl.c
++++ linux-2.6.20-rc3/drivers/net/ixp4xx/ucode_dl.c
 @@ -16,6 +16,7 @@
  #include <linux/firmware.h>
  #include <linux/dma-mapping.h>
@@ -255,7 +268,7 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c
  #define EOF_BLOCK 0xf
  #define IMG_SIZE(image) (((image)->size * sizeof(u32)) + \
  		sizeof(struct dl_image))
-@@ -38,21 +45,6 @@ enum blk_type {
+@@ -38,21 +45,6 @@
  	data,
  };
  
@@ -277,7 +290,7 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c
  struct dl_codeblock {
  	u32 npe_addr;
  	u32 size;
-@@ -127,20 +119,33 @@ download_block(struct npe_info *npe, str
+@@ -127,20 +119,33 @@
  	return 0;
  }
  
@@ -313,7 +326,7 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c
  	npe = dev_get_drvdata(dev);
  	if (npe->loaded && (npe->usage > 0)) {
  		printk(KERN_INFO "Cowardly refusing to reload an Image "
-@@ -267,8 +272,7 @@ static ssize_t ucode_write(struct file *
+@@ -267,8 +272,7 @@
  
  static void npe_firmware_probe(struct device *dev)
  {
@@ -323,17 +336,18 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c
  	const struct firmware *fw_entry;
  	struct npe_info *npe = dev_get_drvdata(dev);
  	struct dl_image *image;
-@@ -477,3 +481,4 @@ MODULE_AUTHOR("Christian Hohnstaedt <cho
+@@ -477,3 +481,4 @@
  
  EXPORT_SYMBOL(get_npe_by_id);
  EXPORT_SYMBOL(return_npe_dev);
 +EXPORT_SYMBOL(store_npe_image);
-diff -Naupr a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4xx/platform.h
---- a/include/asm-arm/arch-ixp4xx/platform.h	2007-01-12 21:54:40.000000000 -0700
-+++ b/include/asm-arm/arch-ixp4xx/platform.h	2007-01-12 23:28:50.000000000 -0700
-@@ -89,6 +89,21 @@ struct ixp4xx_i2c_pins {
- 
- struct sys_timer;
+Index: linux-2.6.20-rc3/include/asm-arm/arch-ixp4xx/platform.h
+===================================================================
+--- linux-2.6.20-rc3.orig/include/asm-arm/arch-ixp4xx/platform.h
++++ linux-2.6.20-rc3/include/asm-arm/arch-ixp4xx/platform.h
+@@ -86,6 +86,21 @@
+ 	unsigned long scl_pin;
+ };
  
 +struct dl_block {
 +	u32 type;
@@ -353,7 +367,7 @@ diff -Naupr a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4
  struct npe_plat_data {
  	const char *name;
  	int data_size;
-@@ -108,6 +123,10 @@ struct mac_plat_info {
+@@ -105,6 +120,10 @@
  
  };
  
@@ -362,12 +376,13 @@ diff -Naupr a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4
 +};
 + 
  /*
-  * Frequency of clock used for primary clocksource
-  */
-diff -Naupr a/include/linux/ixp_npe.h b/include/linux/ixp_npe.h
---- a/include/linux/ixp_npe.h	2007-01-12 21:54:40.000000000 -0700
-+++ b/include/linux/ixp_npe.h	2007-01-12 23:28:50.000000000 -0700
-@@ -99,6 +99,7 @@ extern void npe_reset(struct npe_info *n
+  * This structure provide a means for the board setup code
+  * to give information to th pata_ixp4xx driver. It is
+Index: linux-2.6.20-rc3/include/linux/ixp_npe.h
+===================================================================
+--- linux-2.6.20-rc3.orig/include/linux/ixp_npe.h
++++ linux-2.6.20-rc3/include/linux/ixp_npe.h
+@@ -99,6 +99,7 @@
  
  extern struct device *get_npe_by_id(int id);
  extern void return_npe_dev(struct device *dev);

+ 10 - 6
target/linux/ixp4xx-2.6/patches/500-compex.patch

@@ -129,8 +129,8 @@ diff -Nur linux-2.6.19.2/arch/arm/mach-ixp4xx/ixdp425-pci.c linux-2.6.19.2-owrt/
  int __init ixdp425_pci_init(void)
  {
  	if (machine_is_ixdp425() || machine_is_ixcdp1100() ||
--			machine_is_avila() || machine_is_ixdp465())
-+			machine_is_avila() || machine_is_ixdp465() || machine_is_compex())
+-			machine_is_ixdp465())
++			machine_is_ixdp465() || machine_is_compex())
  		pci_common_init(&ixdp425_pci);
  	return 0;
  }
@@ -173,8 +173,12 @@ diff -Nur linux-2.6.19.2/arch/arm/mach-ixp4xx/Makefile linux-2.6.19.2-owrt/arch/
 diff -Nur linux-2.6.19.2/arch/arm/tools/mach-types linux-2.6.19.2-owrt/arch/arm/tools/mach-types
 --- linux-2.6.19.2/arch/arm/tools/mach-types	2007-04-10 01:27:55.000000000 +0200
 +++ linux-2.6.19.2-owrt/arch/arm/tools/mach-types	2007-04-09 20:22:33.000000000 +0200
-@@ -1171,3 +1171,4 @@
- cdcs_quoll		MACH_CDCS_QUOLL		CDCS_QUOLL		1158
- quicksilver		MACH_QUICKSILVER	QUICKSILVER		1159
- uplat926		MACH_UPLAT926		UPLAT926		1160
+@@ -1278,7 +1278,7 @@
+ smdk6400		MACH_SMDK6400		SMDK6400		1270
+ nokia_n800		MACH_NOKIA_N800		NOKIA_N800		1271
+ greenphone		MACH_GREENPHONE		GREENPHONE		1272
+-compex42x		MACH_COMPEXWP18		COMPEXWP18		1273
 +compex			MACH_COMPEX		COMPEX			1273
+ xmate			MACH_XMATE		XMATE			1274
+ energizer		MACH_ENERGIZER		ENERGIZER		1275
+ ime1			MACH_IME1		IME1			1276

+ 0 - 39
target/linux/ixp4xx-2.6/patches/700-remove_avila_ixdp425_setup.patch

@@ -1,39 +0,0 @@
-diff -Nur linux-2.6.19.2/arch/arm/mach-ixp4xx/ixdp425-pci.c linux-2.6.19.2-owrt/arch/arm/mach-ixp4xx/ixdp425-pci.c
---- linux-2.6.19.2/arch/arm/mach-ixp4xx/ixdp425-pci.c	2007-04-15 14:26:04.000000000 +0200
-+++ linux-2.6.19.2-owrt/arch/arm/mach-ixp4xx/ixdp425-pci.c	2007-05-10 11:10:40.000000000 +0200
-@@ -66,7 +66,7 @@
- int __init ixdp425_pci_init(void)
- {
- 	if (machine_is_ixdp425() || machine_is_ixcdp1100() ||
--			machine_is_avila() || machine_is_ixdp465() || machine_is_compex())
-+			machine_is_ixdp465() || machine_is_compex())
- 		pci_common_init(&ixdp425_pci);
- 	return 0;
- }
-diff -Nur linux-2.6.19.2/arch/arm/mach-ixp4xx/ixdp425-setup.c linux-2.6.19.2-owrt/arch/arm/mach-ixp4xx/ixdp425-setup.c
---- linux-2.6.19.2/arch/arm/mach-ixp4xx/ixdp425-setup.c	2007-04-15 14:26:49.000000000 +0200
-+++ linux-2.6.19.2-owrt/arch/arm/mach-ixp4xx/ixdp425-setup.c	2007-05-10 11:10:01.000000000 +0200
-@@ -205,23 +205,3 @@
- 	.init_machine	= ixdp425_init,
- MACHINE_END
- #endif
--
--/*
-- * Avila is functionally equivalent to IXDP425 except that it adds
-- * a CF IDE slot hanging off the expansion bus. When we have a 
-- * driver for IXP4xx CF IDE with driver model support we'll move
-- * Avila to it's own setup file.
-- */
--#ifdef CONFIG_ARCH_AVILA
--MACHINE_START(AVILA, "Gateworks Avila Network Platform")
--	/* Maintainer: Deepak Saxena <[email protected]> */
--	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
--	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
--	.map_io		= ixp4xx_map_io,
--	.init_irq	= ixp4xx_init_irq,
--	.timer		= &ixp4xx_timer,
--	.boot_params	= 0x0100,
--	.init_machine	= ixdp425_init,
--MACHINE_END
--#endif
--

+ 0 - 381
target/linux/ixp4xx-2.6/patches/710-avila_loft_setup.patch

@@ -1,381 +0,0 @@
-This patch adds support for the Gateworks Avila Network Platform in
-a separate set of setup files to the IXDP425. This is necessary now
-that a driver for the Avila CF card slot is available. It also adds
-support for a minor variant on the Avila board known as the Loft,
-which has a different number of maximum PCI devices.
-
-Signed-off-by: Michael-Luke Jones <mlj28 <at> cam.ac.uk>
-
-Index: linux-2.6.19/arch/arm/mach-ixp4xx/Kconfig
-===================================================================
---- linux-2.6.19.orig/arch/arm/mach-ixp4xx/Kconfig
-+++ linux-2.6.19/arch/arm/mach-ixp4xx/Kconfig
-@@ -17,7 +17,7 @@ config MACH_NSLU2
- 	  NSLU2 NAS device. For more information on this platform,
- 	  see http://www.nslu2-linux.org
- 
--config ARCH_AVILA
-+config MACH_AVILA
- 	bool "Avila"
- 	select PCI
- 	help
-@@ -25,6 +25,14 @@ config ARCH_AVILA
- 	  Avila Network Platform. For more information on this platform,
- 	  see <file:Documentation/arm/IXP4xx>.
- 
-+config MACH_LOFT
-+    bool "Loft"
-+    depends on MACH_AVILA
-+    help
-+	  Say 'Y' here if you want your kernel to support the Giant
-+	  Shoulder Inc Loft board (a minor variation on the standard
-+	  Gateworks Avila Network Platform).  
-+
- config ARCH_ADI_COYOTE
- 	bool "Coyote"
- 	select PCI
-@@ -86,7 +94,7 @@ config MACH_NAS100D
- #
- config	ARCH_IXDP4XX
- 	bool
--	depends on ARCH_IXDP425 || ARCH_AVILA || MACH_IXDP465
-+	depends on ARCH_IXDP425 || MACH_IXDP465
- 	default y
- 
- #
-Index: linux-2.6.19/arch/arm/mach-ixp4xx/Makefile
-===================================================================
---- linux-2.6.19.orig/arch/arm/mach-ixp4xx/Makefile
-+++ linux-2.6.19/arch/arm/mach-ixp4xx/Makefile
-@@ -6,6 +6,7 @@ obj-pci-y	:=
- obj-pci-n	:=
- 
- obj-pci-$(CONFIG_ARCH_IXDP4XX)		+= ixdp425-pci.o
-+obj-pci-$(CONFIG_MACH_AVILA)		+= avila-pci.o
- obj-pci-$(CONFIG_MACH_IXDPG425)		+= ixdpg425-pci.o
- obj-pci-$(CONFIG_ARCH_ADI_COYOTE)	+= coyote-pci.o
- obj-pci-$(CONFIG_MACH_GTWX5715)		+= gtwx5715-pci.o
-@@ -15,6 +16,7 @@ obj-pci-$(CONFIG_MACH_NAS100D)		+= nas10
- obj-y	+= common.o
- 
- obj-$(CONFIG_ARCH_IXDP4XX)	+= ixdp425-setup.o
-+obj-$(CONFIG_MACH_AVILA)	+= avila-setup.o
- obj-$(CONFIG_MACH_IXDPG425)	+= coyote-setup.o
- obj-$(CONFIG_ARCH_ADI_COYOTE)	+= coyote-setup.o
- obj-$(CONFIG_MACH_GTWX5715)	+= gtwx5715-setup.o
-Index: linux-2.6.19/arch/arm/mach-ixp4xx/avila-pci.c
-===================================================================
---- /dev/null
-+++ linux-2.6.19/arch/arm/mach-ixp4xx/avila-pci.c
-@@ -0,0 +1,78 @@
-+/*
-+ * arch/arm/mach-ixp4xx/avila-pci.c 
-+ *
-+ * Gateworks Avila board-level PCI initialization
-+ *
-+ * Author: Michael-Luke Jones <[email protected]>
-+ *
-+ * Based on ixdp-pci.c
-+ * Copyright (C) 2002 Intel Corporation.
-+ * Copyright (C) 2003-2004 MontaVista Software, Inc.
-+ *
-+ * Maintainer: Deepak Saxena <[email protected]>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/pci.h>
-+#include <linux/init.h>
-+#include <linux/irq.h>
-+#include <linux/delay.h>
-+
-+#include <asm/mach/pci.h>
-+#include <asm/irq.h>
-+#include <asm/hardware.h>
-+#include <asm/mach-types.h>
-+
-+void __init avila_pci_preinit(void)
-+{
-+	set_irq_type(IRQ_AVILA_PCI_INTA, IRQT_LOW);
-+	set_irq_type(IRQ_AVILA_PCI_INTB, IRQT_LOW);
-+	set_irq_type(IRQ_AVILA_PCI_INTC, IRQT_LOW);
-+	set_irq_type(IRQ_AVILA_PCI_INTD, IRQT_LOW);
-+
-+	ixp4xx_pci_preinit();
-+}
-+
-+static int __init avila_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
-+{
-+	static int pci_irq_table[AVILA_PCI_IRQ_LINES] = {
-+		IRQ_AVILA_PCI_INTA,
-+		IRQ_AVILA_PCI_INTB,
-+		IRQ_AVILA_PCI_INTC,
-+		IRQ_AVILA_PCI_INTD
-+	};
-+
-+	int irq = -1;
-+
-+	if (slot >= 1 &&
-+	slot <= (machine_is_loft() ? LOFT_PCI_MAX_DEV : AVILA_PCI_MAX_DEV) &&
-+		pin >= 1 && pin <= AVILA_PCI_IRQ_LINES) {
-+		irq = pci_irq_table[(slot + pin - 2) % 4];
-+	}
-+
-+	return irq;
-+}
-+
-+struct hw_pci avila_pci __initdata = {
-+	.nr_controllers = 1,
-+	.preinit	= avila_pci_preinit,
-+	.swizzle	= pci_std_swizzle,
-+	.setup		= ixp4xx_setup,
-+	.scan		= ixp4xx_scan_bus,
-+	.map_irq	= avila_map_irq,
-+};
-+
-+int __init avila_pci_init(void)
-+{
-+	if (machine_is_avila() || machine_is_loft())
-+		pci_common_init(&avila_pci);
-+	return 0;
-+}
-+
-+subsys_initcall(avila_pci_init);
-+
-Index: linux-2.6.19/arch/arm/mach-ixp4xx/avila-setup.c
-===================================================================
---- /dev/null
-+++ linux-2.6.19/arch/arm/mach-ixp4xx/avila-setup.c
-@@ -0,0 +1,152 @@
-+/*
-+ * arch/arm/mach-ixp4xx/avila-setup.c
-+ *
-+ * Gateworks Avila board-setup 
-+ *
-+ * Author: Michael-Luke Jones <[email protected]>
-+ *
-+ * Based on ixdp-setup.c
-+ * Copyright (C) 2003-2005 MontaVista Software, Inc.
-+ *
-+ * Author: Deepak Saxena <[email protected]>
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/device.h>
-+#include <linux/serial.h>
-+#include <linux/tty.h>
-+#include <linux/serial_8250.h>
-+#include <linux/slab.h>
-+
-+#include <asm/types.h>
-+#include <asm/setup.h>
-+#include <asm/memory.h>
-+#include <asm/hardware.h>
-+#include <asm/mach-types.h>
-+#include <asm/irq.h>
-+#include <asm/mach/arch.h>
-+#include <asm/mach/flash.h>
-+
-+static struct flash_platform_data avila_flash_data = {
-+	.map_name	= "cfi_probe",
-+	.width		= 2,
-+};
-+
-+static struct resource avila_flash_resource = {
-+	.flags		= IORESOURCE_MEM,
-+};
-+
-+static struct platform_device avila_flash = {
-+	.name		= "IXP4XX-Flash",
-+	.id		= 0,
-+	.dev		= {
-+		.platform_data = &avila_flash_data,
-+	},
-+	.num_resources	= 1,
-+	.resource	= &avila_flash_resource,
-+};
-+
-+static struct ixp4xx_i2c_pins avila_i2c_gpio_pins = {
-+	.sda_pin	= AVILA_SDA_PIN,
-+	.scl_pin	= AVILA_SCL_PIN,
-+};
-+
-+static struct platform_device avila_i2c_controller = {
-+	.name		= "IXP4XX-I2C",
-+	.id		= 0,
-+	.dev		= {
-+		.platform_data = &avila_i2c_gpio_pins,
-+	},
-+	.num_resources	= 0
-+};
-+
-+static struct resource avila_uart_resources[] = {
-+	{
-+		.start		= IXP4XX_UART1_BASE_PHYS,
-+		.end		= IXP4XX_UART1_BASE_PHYS + 0x0fff,
-+		.flags		= IORESOURCE_MEM
-+	},
-+	{
-+		.start		= IXP4XX_UART2_BASE_PHYS,
-+		.end		= IXP4XX_UART2_BASE_PHYS + 0x0fff,
-+		.flags		= IORESOURCE_MEM
-+	}
-+};
-+
-+static struct plat_serial8250_port avila_uart_data[] = {
-+	{
-+		.mapbase	= IXP4XX_UART1_BASE_PHYS,
-+		.membase	= (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET,
-+		.irq		= IRQ_IXP4XX_UART1,
-+		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
-+		.iotype		= UPIO_MEM,
-+		.regshift	= 2,
-+		.uartclk	= IXP4XX_UART_XTAL,
-+	},
-+	{
-+		.mapbase	= IXP4XX_UART2_BASE_PHYS,
-+		.membase	= (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
-+		.irq		= IRQ_IXP4XX_UART2,
-+		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
-+		.iotype		= UPIO_MEM,
-+		.regshift	= 2,
-+		.uartclk	= IXP4XX_UART_XTAL,
-+	},
-+	{ },
-+};
-+
-+static struct platform_device avila_uart = {
-+	.name			= "serial8250",
-+	.id			= PLAT8250_DEV_PLATFORM,
-+	.dev.platform_data	= avila_uart_data,
-+	.num_resources		= 2,
-+	.resource		= avila_uart_resources
-+};
-+
-+static struct platform_device *avila_devices[] __initdata = {
-+	&avila_i2c_controller,
-+	&avila_flash,
-+	&avila_uart
-+};
-+
-+static void __init avila_init(void)
-+{
-+	ixp4xx_sys_init();
-+
-+	avila_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
-+	avila_flash_resource.end =
-+		IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1;
-+
-+	platform_add_devices(avila_devices, ARRAY_SIZE(avila_devices));
-+}
-+
-+MACHINE_START(AVILA, "Gateworks Avila Network Platform")
-+	/* Maintainer: Deepak Saxena <[email protected]> */
-+	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
-+	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
-+	.map_io		= ixp4xx_map_io,
-+	.init_irq	= ixp4xx_init_irq,
-+	.timer		= &ixp4xx_timer,
-+	.boot_params	= 0x0100,
-+	.init_machine	= avila_init,
-+MACHINE_END
-+
-+ /*
-+  * Loft is functionally equivalent to Avila except that it has a
-+  * different number for the maximum PCI devices.  The MACHINE
-+  * structure below is identical to Avila except for the comment.
-+  */
-+#ifdef CONFIG_MACH_LOFT
-+MACHINE_START(LOFT, "Giant Shoulder Inc Loft board")
-+	/* Maintainer: Tom Billman <[email protected]> */
-+	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
-+	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
-+	.map_io		= ixp4xx_map_io,
-+	.init_irq	= ixp4xx_init_irq,
-+	.timer		= &ixp4xx_timer,
-+	.boot_params	= 0x0100,
-+	.init_machine	= avila_init,
-+MACHINE_END
-+#endif
-+
-Index: linux-2.6.19/include/asm-arm/arch-ixp4xx/avila.h
-===================================================================
---- /dev/null
-+++ linux-2.6.19/include/asm-arm/arch-ixp4xx/avila.h
-@@ -0,0 +1,39 @@
-+/*
-+ * include/asm-arm/arch-ixp4xx/avila.h
-+ *
-+ * Gateworks Avila platform specific definitions
-+ *
-+ * Author: Michael-Luke Jones <[email protected]>
-+ *
-+ * Based on ixdp425.h
-+ * Author: Deepak Saxena <[email protected]>
-+ *
-+ * Copyright 2004 (c) MontaVista, Software, Inc. 
-+ * 
-+ * This file is licensed under  the terms of the GNU General Public 
-+ * License version 2. This program is licensed "as is" without any 
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#ifndef __ASM_ARCH_HARDWARE_H__
-+#error "Do not include this directly, instead #include <asm/hardware.h>"
-+#endif
-+
-+#define	AVILA_SDA_PIN		7
-+#define	AVILA_SCL_PIN		6
-+
-+/*
-+ * AVILA PCI IRQs
-+ */
-+#define AVILA_PCI_MAX_DEV	4
-+#define LOFT_PCI_MAX_DEV    6
-+#define AVILA_PCI_IRQ_LINES	4
-+
-+
-+/* PCI controller GPIO to IRQ pin mappings */
-+#define AVILA_PCI_INTA_PIN	11
-+#define AVILA_PCI_INTB_PIN	10
-+#define AVILA_PCI_INTC_PIN	9
-+#define AVILA_PCI_INTD_PIN	8
-+
-+
-Index: linux-2.6.19/include/asm-arm/arch-ixp4xx/hardware.h
-===================================================================
---- linux-2.6.19.orig/include/asm-arm/arch-ixp4xx/hardware.h
-+++ linux-2.6.19/include/asm-arm/arch-ixp4xx/hardware.h
-@@ -42,6 +42,7 @@ extern unsigned int processor_id;
- 
- /* Platform specific details */
- #include "ixdp425.h"
-+#include "avila.h"
- #include "coyote.h"
- #include "prpmc1100.h"
- #include "nslu2.h"
-Index: linux-2.6.19/include/asm-arm/arch-ixp4xx/irqs.h
-===================================================================
---- linux-2.6.19.orig/include/asm-arm/arch-ixp4xx/irqs.h
-+++ linux-2.6.19/include/asm-arm/arch-ixp4xx/irqs.h
-@@ -79,6 +79,15 @@
- #define	IRQ_IXDP425_PCI_INTD	IRQ_IXP4XX_GPIO8
- 
- /*
-+ * Gateworks Avila board IRQs
-+ */
-+#define	IRQ_AVILA_PCI_INTA	IRQ_IXP4XX_GPIO11
-+#define	IRQ_AVILA_PCI_INTB	IRQ_IXP4XX_GPIO10
-+#define	IRQ_AVILA_PCI_INTC	IRQ_IXP4XX_GPIO9
-+#define	IRQ_AVILA_PCI_INTD	IRQ_IXP4XX_GPIO8
-+
-+
-+/*
-  * PrPMC1100 Board IRQs
-  */
- #define	IRQ_PRPMC1100_PCI_INTA	IRQ_IXP4XX_GPIO11

+ 15 - 15
target/linux/ixp4xx-2.6/patches/800-eeprom_new_notifier.patch

@@ -9,11 +9,11 @@ the 'maclist' code and read out by the ethernet config.
 
 Signed-off-by: John Bowler <[email protected]>
 
-Index: linux-2.6.19/drivers/i2c/chips/eeprom.c
+Index: linux-2.6.21-rc1-arm/drivers/i2c/chips/eeprom.c
 ===================================================================
---- linux-2.6.19.orig/drivers/i2c/chips/eeprom.c
-+++ linux-2.6.19/drivers/i2c/chips/eeprom.c
-@@ -34,6 +34,8 @@
+--- linux-2.6.21-rc1-arm.orig/drivers/i2c/chips/eeprom.c	2007-02-21 02:24:14.000000000 -0800
++++ linux-2.6.21-rc1-arm/drivers/i2c/chips/eeprom.c	2007-02-21 02:25:01.000000000 -0800
+@@ -33,6 +33,8 @@
  #include <linux/jiffies.h>
  #include <linux/i2c.h>
  #include <linux/mutex.h>
@@ -22,7 +22,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c
  
  /* Addresses to scan */
  static unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54,
-@@ -42,26 +44,7 @@ static unsigned short normal_i2c[] = { 0
+@@ -41,26 +43,7 @@
  /* Insmod parameters */
  I2C_CLIENT_INSMOD_1(eeprom);
  
@@ -50,7 +50,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c
  
  static int eeprom_attach_adapter(struct i2c_adapter *adapter);
  static int eeprom_detect(struct i2c_adapter *adapter, int address, int kind);
-@@ -190,6 +173,7 @@ static int eeprom_detect(struct i2c_adap
+@@ -189,6 +172,7 @@
  	data->valid = 0;
  	mutex_init(&data->update_lock);
  	data->nature = UNKNOWN;
@@ -58,7 +58,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c
  
  	/* Tell the I2C layer a new client has arrived */
  	if ((err = i2c_attach_client(new_client)))
-@@ -213,6 +197,9 @@ static int eeprom_detect(struct i2c_adap
+@@ -212,6 +196,9 @@
  	if (err)
  		goto exit_detach;
  
@@ -68,7 +68,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c
  	return 0;
  
  exit_detach:
-@@ -238,6 +225,41 @@ static int eeprom_detach_client(struct i
+@@ -237,6 +224,41 @@
  	return 0;
  }
  
@@ -110,10 +110,10 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c
  static int __init eeprom_init(void)
  {
  	return i2c_add_driver(&eeprom_driver);
-Index: linux-2.6.19/include/linux/eeprom.h
+Index: linux-2.6.21-rc1-arm/include/linux/eeprom.h
 ===================================================================
---- /dev/null
-+++ linux-2.6.19/include/linux/eeprom.h
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21-rc1-arm/include/linux/eeprom.h	2007-02-21 02:25:01.000000000 -0800
 @@ -0,0 +1,71 @@
 +#ifndef _LINUX_EEPROM_H
 +#define _LINUX_EEPROM_H
@@ -186,11 +186,11 @@ Index: linux-2.6.19/include/linux/eeprom.h
 +extern int unregister_eeprom_notifier(struct notifier_block *nb);
 +
 +#endif /* _LINUX_EEPROM_H */
-Index: linux-2.6.19/include/linux/notifier.h
+Index: linux-2.6.21-rc1-arm/include/linux/notifier.h
 ===================================================================
---- linux-2.6.19.orig/include/linux/notifier.h
-+++ linux-2.6.19/include/linux/notifier.h
-@@ -187,5 +187,8 @@ extern int srcu_notifier_call_chain(stru
+--- linux-2.6.21-rc1-arm.orig/include/linux/notifier.h	2007-02-21 02:24:14.000000000 -0800
++++ linux-2.6.21-rc1-arm/include/linux/notifier.h	2007-02-21 02:25:01.000000000 -0800
+@@ -187,5 +187,8 @@
  #define CPU_DOWN_FAILED		0x0006 /* CPU (unsigned)v NOT going down */
  #define CPU_DEAD		0x0007 /* CPU (unsigned)v dead */
  

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff