break trunk temporary - upgrade to 2.6.21.1 and iptables 1.3.7
SVN-Revision: 7315
This commit is contained in:
		| @@ -6,9 +6,9 @@ ifeq ($(LINUX_VERSION),) | |||||||
|     LINUX_RELEASE:=1 |     LINUX_RELEASE:=1 | ||||||
|     LINUX_KERNEL_MD5SUM:=f59665540a7f3351ea416a0dad104b55 |     LINUX_KERNEL_MD5SUM:=f59665540a7f3351ea416a0dad104b55 | ||||||
|   else |   else | ||||||
|     LINUX_VERSION:=2.6.19.2 |     LINUX_VERSION:=2.6.21.1 | ||||||
|     LINUX_RELEASE:=1 |     LINUX_RELEASE:=1 | ||||||
|     LINUX_KERNEL_MD5SUM:=ca0ce8f288e8ae93ac243b568f906bf8 |     LINUX_KERNEL_MD5SUM:=a28b78793cd368592f7873bf36cb38b0 | ||||||
|   endif |   endif | ||||||
| endif | endif | ||||||
| KERNEL:=2.$(word 2,$(subst ., ,$(strip $(LINUX_VERSION)))) | KERNEL:=2.$(word 2,$(subst ., ,$(strip $(LINUX_VERSION)))) | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk | |||||||
| include $(INCLUDE_DIR)/kernel.mk | include $(INCLUDE_DIR)/kernel.mk | ||||||
|  |  | ||||||
| PKG_NAME:=iptables | PKG_NAME:=iptables | ||||||
| PKG_VERSION:=1.3.5 | PKG_VERSION:=1.3.7 | ||||||
| PKG_RELEASE:=1 | PKG_RELEASE:=1 | ||||||
|  |  | ||||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | 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.be.netfilter.org/pub/netfilter/iptables/ \ | ||||||
| 	ftp://ftp.de.netfilter.org/pub/netfilter/iptables/ \ | 	ftp://ftp.de.netfilter.org/pub/netfilter/iptables/ \ | ||||||
| 	ftp://ftp.no.netfilter.org/pub/netfilter/iptables/ | 	ftp://ftp.no.netfilter.org/pub/netfilter/iptables/ | ||||||
| PKG_MD5SUM:=00fb916fa8040ca992a5ace56d905ea5 | PKG_MD5SUM:=dd965bdacbb86ce2a6498829fddda6b7 | ||||||
|  |  | ||||||
| include $(INCLUDE_DIR)/package.mk | include $(INCLUDE_DIR)/package.mk | ||||||
| ifeq ($(DUMP),) | ifeq ($(DUMP),) | ||||||
|   | |||||||
| @@ -1,20 +1,11 @@ | |||||||
| diff -urN iptables.old/extensions/.IMQ-test iptables.dev/extensions/.IMQ-test | --- iptables-1.3.6.orig/extensions.orig/.IMQ-test6	Thu Jan  1 01:00:00 1970 | ||||||
| --- iptables.old/extensions/.IMQ-test	1970-01-01 01:00:00.000000000 +0100 | +++ iptables-1.3.6/extensions/.IMQ-test6	Mon Jun 16 10:12:47 2003 | ||||||
| +++ 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 |  | ||||||
| @@ -0,0 +1,3 @@ | @@ -0,0 +1,3 @@ | ||||||
| +#!/bin/sh | +#!/bin/sh | ||||||
| +# True if IMQ target patch is applied. | +# True if IMQ target patch is applied. | ||||||
| +[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_IMQ.c ] && echo IMQ | +[ -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-1.3.6.orig/extensions.orig/libip6t_IMQ.c	Thu Jan  1 01:00:00 1970 | ||||||
| --- iptables.old/extensions/libip6t_IMQ.c	1970-01-01 01:00:00.000000000 +0100 | +++ iptables-1.3.6/extensions/libip6t_IMQ.c	Mon Jun 16 10:12:47 2003 | ||||||
| +++ iptables.dev/extensions/libip6t_IMQ.c	2005-10-09 01:00:36.358959750 +0200 |  | ||||||
| @@ -0,0 +1,101 @@ | @@ -0,0 +1,101 @@ | ||||||
| +/* Shared library add-on to iptables to add IMQ target support. */ | +/* Shared library add-on to iptables to add IMQ target support. */ | ||||||
| +#include <stdio.h> | +#include <stdio.h> | ||||||
| @@ -113,13 +104,18 @@ diff -urN iptables.old/extensions/libip6t_IMQ.c iptables.dev/extensions/libip6t_ | |||||||
| +	.extra_opts	= opts | +	.extra_opts	= opts | ||||||
| +}; | +}; | ||||||
| + | + | ||||||
| +void _init(void) | +static __attribute__((constructor)) void _init(void) | ||||||
| +{ | +{ | ||||||
| +	register_target6(&imq); | +	register_target6(&imq); | ||||||
| +} | +} | ||||||
| diff -urN iptables.old/extensions/libipt_IMQ.c iptables.dev/extensions/libipt_IMQ.c | --- iptables-1.3.6.orig/extensions.orig/.IMQ-test	Thu Jan  1 01:00:00 1970 | ||||||
| --- iptables.old/extensions/libipt_IMQ.c	1970-01-01 01:00:00.000000000 +0100 | +++ iptables-1.3.6/extensions/.IMQ-test	Mon Jun 16 10:12:47 2003 | ||||||
| +++ iptables.dev/extensions/libipt_IMQ.c	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 | ||||||
|  | --- 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 @@ | @@ -0,0 +1,101 @@ | ||||||
| +/* Shared library add-on to iptables to add IMQ target support. */ | +/* Shared library add-on to iptables to add IMQ target support. */ | ||||||
| +#include <stdio.h> | +#include <stdio.h> | ||||||
| @@ -218,7 +214,8 @@ diff -urN iptables.old/extensions/libipt_IMQ.c iptables.dev/extensions/libipt_IM | |||||||
| +	.extra_opts	= opts | +	.extra_opts	= opts | ||||||
| +}; | +}; | ||||||
| + | + | ||||||
| +void _init(void) | +static __attribute__((constructor)) void _init(void) | ||||||
| +{ | +{ | ||||||
| +	register_target(&imq); | +	register_target(&imq); | ||||||
| +} | +} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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; |  | ||||||
| @@ -20,6 +20,7 @@ CONFIG_ASK_IP_FIB_HASH=y | |||||||
| # CONFIG_ATALK is not set | # CONFIG_ATALK is not set | ||||||
| # CONFIG_ATARI_PARTITION is not set | # CONFIG_ATARI_PARTITION is not set | ||||||
| # CONFIG_ATA_OVER_ETH is not set | # CONFIG_ATA_OVER_ETH is not set | ||||||
|  | # CONFIG_ATL1 is not set | ||||||
| CONFIG_ATM=m | CONFIG_ATM=m | ||||||
| CONFIG_ATMEL=m | CONFIG_ATMEL=m | ||||||
| # CONFIG_ATM_AMBASSADOR is not set | # CONFIG_ATM_AMBASSADOR is not set | ||||||
| @@ -134,6 +135,7 @@ CONFIG_BT_SCO=m | |||||||
| CONFIG_BUG=y | CONFIG_BUG=y | ||||||
| # CONFIG_CAPI_AVM is not set | # CONFIG_CAPI_AVM is not set | ||||||
| # CONFIG_CAPI_EICON is not set | # CONFIG_CAPI_EICON is not set | ||||||
|  | # CONFIG_CAPI_TRACE is not set | ||||||
| CONFIG_CARDBUS=y | CONFIG_CARDBUS=y | ||||||
| # CONFIG_CARDMAN_4000 is not set | # CONFIG_CARDMAN_4000 is not set | ||||||
| # CONFIG_CARDMAN_4040 is not set | # CONFIG_CARDMAN_4040 is not set | ||||||
| @@ -141,6 +143,7 @@ CONFIG_CARDBUS=y | |||||||
| CONFIG_CC_OPTIMIZE_FOR_SIZE=y | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||||||
| # CONFIG_CDROM_PKTCDVD is not set | # CONFIG_CDROM_PKTCDVD is not set | ||||||
| # CONFIG_CHELSIO_T1 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_OSST is not set | ||||||
| # CONFIG_CHR_DEV_SCH is not set | # CONFIG_CHR_DEV_SCH is not set | ||||||
| # CONFIG_CHR_DEV_SG is not set | # CONFIG_CHR_DEV_SG is not set | ||||||
| @@ -172,6 +175,7 @@ CONFIG_CRYPTO_ANUBIS=m | |||||||
| CONFIG_CRYPTO_ARC4=m | CONFIG_CRYPTO_ARC4=m | ||||||
| CONFIG_CRYPTO_BLKCIPHER=y | CONFIG_CRYPTO_BLKCIPHER=y | ||||||
| CONFIG_CRYPTO_BLOWFISH=m | CONFIG_CRYPTO_BLOWFISH=m | ||||||
|  | # CONFIG_CRYPTO_CAMELLIA is not set | ||||||
| CONFIG_CRYPTO_CAST5=m | CONFIG_CRYPTO_CAST5=m | ||||||
| CONFIG_CRYPTO_CAST6=m | CONFIG_CRYPTO_CAST6=m | ||||||
| CONFIG_CRYPTO_CBC=y | CONFIG_CRYPTO_CBC=y | ||||||
| @@ -179,14 +183,18 @@ CONFIG_CRYPTO_CRC32C=m | |||||||
| CONFIG_CRYPTO_DEFLATE=m | CONFIG_CRYPTO_DEFLATE=m | ||||||
| CONFIG_CRYPTO_DES=y | CONFIG_CRYPTO_DES=y | ||||||
| CONFIG_CRYPTO_ECB=m | CONFIG_CRYPTO_ECB=m | ||||||
|  | # CONFIG_CRYPTO_FCRYPT is not set | ||||||
|  | # CONFIG_CRYPTO_GF128MUL is not set | ||||||
| CONFIG_CRYPTO_HASH=m | CONFIG_CRYPTO_HASH=m | ||||||
| CONFIG_CRYPTO_HMAC=m | CONFIG_CRYPTO_HMAC=m | ||||||
| CONFIG_CRYPTO_KHAZAD=m | CONFIG_CRYPTO_KHAZAD=m | ||||||
|  | # CONFIG_CRYPTO_LRW is not set | ||||||
| CONFIG_CRYPTO_MANAGER=y | CONFIG_CRYPTO_MANAGER=y | ||||||
| CONFIG_CRYPTO_MD4=m | CONFIG_CRYPTO_MD4=m | ||||||
| CONFIG_CRYPTO_MD5=y | CONFIG_CRYPTO_MD5=y | ||||||
| CONFIG_CRYPTO_MICHAEL_MIC=m | CONFIG_CRYPTO_MICHAEL_MIC=m | ||||||
| CONFIG_CRYPTO_NULL=m | CONFIG_CRYPTO_NULL=m | ||||||
|  | # CONFIG_CRYPTO_PCBC is not set | ||||||
| CONFIG_CRYPTO_SERPENT=m | CONFIG_CRYPTO_SERPENT=m | ||||||
| CONFIG_CRYPTO_SHA1=m | CONFIG_CRYPTO_SHA1=m | ||||||
| CONFIG_CRYPTO_SHA256=m | CONFIG_CRYPTO_SHA256=m | ||||||
| @@ -197,6 +205,7 @@ CONFIG_CRYPTO_TGR192=m | |||||||
| CONFIG_CRYPTO_TWOFISH=m | CONFIG_CRYPTO_TWOFISH=m | ||||||
| CONFIG_CRYPTO_TWOFISH_COMMON=m | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||||||
| CONFIG_CRYPTO_WP512=m | CONFIG_CRYPTO_WP512=m | ||||||
|  | # CONFIG_CRYPTO_XCBC is not set | ||||||
| # CONFIG_DAVICOM_PHY is not set | # CONFIG_DAVICOM_PHY is not set | ||||||
| # CONFIG_DEBUG_FS is not set | # CONFIG_DEBUG_FS is not set | ||||||
| # CONFIG_DEBUG_KERNEL is not set | # CONFIG_DEBUG_KERNEL is not set | ||||||
| @@ -220,6 +229,7 @@ CONFIG_DEVFS_MOUNT=y | |||||||
| # CONFIG_DGRS is not set | # CONFIG_DGRS is not set | ||||||
| # CONFIG_DISCONTIGMEM_MANUAL is not set | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||||||
| # CONFIG_DL2K is not set | # CONFIG_DL2K is not set | ||||||
|  | # CONFIG_DLM is not set | ||||||
| # CONFIG_DMA_ENGINE is not set | # CONFIG_DMA_ENGINE is not set | ||||||
| # CONFIG_DNOTIFY is not set | # CONFIG_DNOTIFY is not set | ||||||
| # CONFIG_DRM 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_HL=m | ||||||
| CONFIG_IP6_NF_MATCH_IPV6HEADER=m | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||||||
| CONFIG_IP6_NF_MATCH_LIMIT=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_OPTS=m | ||||||
| CONFIG_IP6_NF_MATCH_OWNER=m | CONFIG_IP6_NF_MATCH_OWNER=m | ||||||
| CONFIG_IP6_NF_MATCH_RT=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=y | ||||||
| # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||||||
| CONFIG_IP_NF_CONNTRACK_MARK=y | CONFIG_IP_NF_CONNTRACK_MARK=y | ||||||
|  | # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | ||||||
| CONFIG_IP_NF_CT_ACCT=y | CONFIG_IP_NF_CT_ACCT=y | ||||||
| CONFIG_IP_NF_CT_PROTO_SCTP=m | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||||||
| CONFIG_IP_NF_FILTER=y | CONFIG_IP_NF_FILTER=y | ||||||
| @@ -555,6 +567,7 @@ CONFIG_MAC_PARTITION=y | |||||||
| # CONFIG_MEGARAID_LEGACY is not set | # CONFIG_MEGARAID_LEGACY is not set | ||||||
| # CONFIG_MEGARAID_NEWGEN is not set | # CONFIG_MEGARAID_NEWGEN is not set | ||||||
| # CONFIG_MEGARAID_SAS is not set | # CONFIG_MEGARAID_SAS is not set | ||||||
|  | # CONFIG_MFD_SM501 is not set | ||||||
| CONFIG_MII=y | CONFIG_MII=y | ||||||
| CONFIG_MINIX_FS=m | CONFIG_MINIX_FS=m | ||||||
| # CONFIG_MINIX_SUBPARTITION is not set | # 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_DCCP=m | ||||||
| CONFIG_NETFILTER_XT_MATCH_DSCP=m | CONFIG_NETFILTER_XT_MATCH_DSCP=m | ||||||
| CONFIG_NETFILTER_XT_MATCH_ESP=m | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||||||
|  | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | ||||||
| CONFIG_NETFILTER_XT_MATCH_HELPER=m | CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||||||
| CONFIG_NETFILTER_XT_MATCH_LENGTH=m | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||||||
| CONFIG_NETFILTER_XT_MATCH_LIMIT=y | 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_DELUDE=m | ||||||
| CONFIG_NETFILTER_XT_TARGET_DSCP=m | CONFIG_NETFILTER_XT_TARGET_DSCP=m | ||||||
| CONFIG_NETFILTER_XT_TARGET_MARK=m | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||||||
|  | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||||||
| CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||||||
| CONFIG_NETFILTER_XT_TARGET_NOTRACK=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_NETPOLL is not set | ||||||
| # CONFIG_NETROM is not set | # CONFIG_NETROM is not set | ||||||
| # CONFIG_NETWORK_SECMARK is not set | # CONFIG_NETWORK_SECMARK is not set | ||||||
|  | # CONFIG_NETXEN_NIC is not set | ||||||
| CONFIG_NET_ACT_GACT=m | CONFIG_NET_ACT_GACT=m | ||||||
| CONFIG_NET_ACT_IPT=m | CONFIG_NET_ACT_IPT=m | ||||||
| CONFIG_NET_ACT_MIRRED=m | CONFIG_NET_ACT_MIRRED=m | ||||||
| @@ -674,6 +692,26 @@ CONFIG_NET_SCH_TEQL=m | |||||||
| CONFIG_NET_WIRELESS=y | CONFIG_NET_WIRELESS=y | ||||||
| CONFIG_NET_WIRELESS_RTNETLINK=y | CONFIG_NET_WIRELESS_RTNETLINK=y | ||||||
| CONFIG_NEW_LEDS=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=m | ||||||
| CONFIG_NFSD_TCP=y | CONFIG_NFSD_TCP=y | ||||||
| # CONFIG_NFSD_V2_ACL is not set | # CONFIG_NFSD_V2_ACL is not set | ||||||
| @@ -739,6 +777,10 @@ CONFIG_PACKET=y | |||||||
| CONFIG_PACKET_MMAP=y | CONFIG_PACKET_MMAP=y | ||||||
| # CONFIG_PARPORT is not set | # CONFIG_PARPORT is not set | ||||||
| CONFIG_PARTITION_ADVANCED=y | 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_PCCARD is not set | ||||||
| CONFIG_PCI=y | CONFIG_PCI=y | ||||||
| CONFIG_PCI_ATMEL=m | CONFIG_PCI_ATMEL=m | ||||||
| @@ -810,8 +852,11 @@ CONFIG_ROMFS_FS=m | |||||||
| CONFIG_RPCSEC_GSS_KRB5=m | CONFIG_RPCSEC_GSS_KRB5=m | ||||||
| # CONFIG_RPCSEC_GSS_SPKM3 is not set | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||||||
| # CONFIG_RTC_CLASS is not set | # CONFIG_RTC_CLASS is not set | ||||||
|  | CONFIG_RTC_DRV_CMOS=y | ||||||
| CONFIG_RT_MUTEXES=y | CONFIG_RT_MUTEXES=y | ||||||
| # CONFIG_S2IO is not set | # CONFIG_S2IO is not set | ||||||
|  | # CONFIG_SATA_INIC162X is not set | ||||||
|  | # CONFIG_SC92031 is not set | ||||||
| CONFIG_SCSI=m | CONFIG_SCSI=m | ||||||
| # CONFIG_SCSI_3W_9XXX is not set | # CONFIG_SCSI_3W_9XXX is not set | ||||||
| # CONFIG_SCSI_AACRAID 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_QLOGIC_1280 is not set | ||||||
| # CONFIG_SCSI_SAS_ATTRS is not set | # CONFIG_SCSI_SAS_ATTRS is not set | ||||||
| # CONFIG_SCSI_SAS_LIBSAS 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_SPI_ATTRS is not set | ||||||
|  | # CONFIG_SCSI_SRP is not set | ||||||
| # CONFIG_SCSI_STEX is not set | # CONFIG_SCSI_STEX is not set | ||||||
| # CONFIG_SCSI_SYM53C8XX_2 is not set | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||||||
|  | # CONFIG_SCSI_TGT is not set | ||||||
| # CONFIG_SECURITY is not set | # CONFIG_SECURITY is not set | ||||||
| CONFIG_SELECT_MEMORY_MODEL=y | CONFIG_SELECT_MEMORY_MODEL=y | ||||||
| CONFIG_SERIAL_8250=y | CONFIG_SERIAL_8250=y | ||||||
| @@ -980,6 +1028,7 @@ CONFIG_SYN_COOKIES=y | |||||||
| CONFIG_SYSCTL=y | CONFIG_SYSCTL=y | ||||||
| CONFIG_SYSCTL_SYSCALL=y | CONFIG_SYSCTL_SYSCALL=y | ||||||
| CONFIG_SYSFS=y | CONFIG_SYSFS=y | ||||||
|  | # CONFIG_SYSFS_DEPRECATED is not set | ||||||
| CONFIG_SYSVIPC=y | CONFIG_SYSVIPC=y | ||||||
| # CONFIG_SYSV_FS is not set | # CONFIG_SYSV_FS is not set | ||||||
| # CONFIG_SYS_HYPERVISOR 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_VEGAS=y | ||||||
| CONFIG_TCP_CONG_VENO=m | CONFIG_TCP_CONG_VENO=m | ||||||
| CONFIG_TCP_CONG_WESTWOOD=m | CONFIG_TCP_CONG_WESTWOOD=m | ||||||
|  | # CONFIG_TCP_MD5SIG is not set | ||||||
| CONFIG_TEXTSEARCH=y | CONFIG_TEXTSEARCH=y | ||||||
| CONFIG_TEXTSEARCH_BM=m | CONFIG_TEXTSEARCH_BM=m | ||||||
| CONFIG_TEXTSEARCH_FSM=m | CONFIG_TEXTSEARCH_FSM=m | ||||||
| @@ -1037,6 +1087,7 @@ CONFIG_USB_ATM=m | |||||||
| # CONFIG_USB_AUERSWALD is not set | # CONFIG_USB_AUERSWALD is not set | ||||||
| # CONFIG_USB_BANDWIDTH is not set | # CONFIG_USB_BANDWIDTH is not set | ||||||
| CONFIG_USB_BELKIN=y | CONFIG_USB_BELKIN=y | ||||||
|  | # CONFIG_USB_BERRY_CHARGE is not set | ||||||
| CONFIG_USB_CATC=m | CONFIG_USB_CATC=m | ||||||
| # CONFIG_USB_CXACRU is not set | # CONFIG_USB_CXACRU is not set | ||||||
| # CONFIG_USB_CYPRESS_CY7C63 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_GADGET is not set | ||||||
| # CONFIG_USB_HID is not set | # CONFIG_USB_HID is not set | ||||||
| # CONFIG_USB_IDMOUSE is not set | # CONFIG_USB_IDMOUSE is not set | ||||||
|  | # CONFIG_USB_IOWARRIOR is not set | ||||||
| # CONFIG_USB_ISP116X_HCD is not set | # CONFIG_USB_ISP116X_HCD is not set | ||||||
| CONFIG_USB_KAWETH=m | CONFIG_USB_KAWETH=m | ||||||
| # CONFIG_USB_KBD is not set | # CONFIG_USB_KBD is not set | ||||||
| @@ -1176,12 +1228,15 @@ CONFIG_VIDEO_V4L2=y | |||||||
| # CONFIG_VIDEO_TEA6415C is not set | # CONFIG_VIDEO_TEA6415C is not set | ||||||
| # CONFIG_VIDEO_TEA6420 is not set | # CONFIG_VIDEO_TEA6420 is not set | ||||||
| # CONFIG_VIDEO_MSP3400 is not set | # CONFIG_VIDEO_MSP3400 is not set | ||||||
|  | # CONFIG_VIDEO_CAFE_CCIC is not set | ||||||
| # CONFIG_VIDEO_CS53L32A is not set | # CONFIG_VIDEO_CS53L32A is not set | ||||||
| # CONFIG_VIDEO_TLV320AIC23B is not set | # CONFIG_VIDEO_TLV320AIC23B is not set | ||||||
|  | # CONFIG_VIDEO_OV7670 is not set | ||||||
| # CONFIG_VIDEO_WM8775 is not set | # CONFIG_VIDEO_WM8775 is not set | ||||||
| # CONFIG_VIDEO_WM8739 is not set | # CONFIG_VIDEO_WM8739 is not set | ||||||
| # CONFIG_VIDEO_SAA711X is not set | # CONFIG_VIDEO_SAA711X is not set | ||||||
| # CONFIG_VIDEO_TVP5150 is not set | # CONFIG_VIDEO_TVP5150 is not set | ||||||
|  | # CONFIG_VIDEO_USBVISION is not set | ||||||
| # CONFIG_VIDEO_CX25840 is not set | # CONFIG_VIDEO_CX25840 is not set | ||||||
| # CONFIG_VIDEO_CX2341X is not set | # CONFIG_VIDEO_CX2341X is not set | ||||||
| # CONFIG_VIDEO_SAA7127 is not set | # CONFIG_VIDEO_SAA7127 is not set | ||||||
| @@ -1226,6 +1281,7 @@ CONFIG_WIRELESS_EXT=y | |||||||
| # CONFIG_WR_PPMC is not set | # CONFIG_WR_PPMC is not set | ||||||
| # CONFIG_X25 is not set | # CONFIG_X25 is not set | ||||||
| CONFIG_XFRM=y | CONFIG_XFRM=y | ||||||
|  | # CONFIG_XFRM_MIGRATE is not set | ||||||
| # CONFIG_XFRM_SUB_POLICY is not set | # CONFIG_XFRM_SUB_POLICY is not set | ||||||
| CONFIG_XFRM_USER=m | CONFIG_XFRM_USER=m | ||||||
| CONFIG_XFS_FS=m | CONFIG_XFS_FS=m | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| diff -urN linux-2.6.19.old/fs/Kconfig linux-2.6.19.dev/fs/Kconfig | diff -Nur linux-2.6.21.1/fs/Kconfig linux-2.6.21.1-owrt/fs/Kconfig | ||||||
| --- linux-2.6.19.old/fs/Kconfig	2006-12-14 03:13:16.000000000 +0100 | --- linux-2.6.21.1/fs/Kconfig	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux-2.6.19.dev/fs/Kconfig	2006-12-14 03:13:16.000000000 +0100 | +++ linux-2.6.21.1-owrt/fs/Kconfig	2007-05-23 19:09:55.000000000 +0200 | ||||||
| @@ -1457,6 +1457,71 @@ | @@ -1371,6 +1371,71 @@ | ||||||
|   |   | ||||||
|  	  If unsure, say N. |  	  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 |  config VXFS_FS | ||||||
|  	tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" |  	tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" | ||||||
|  	depends on BLOCK |  	depends on BLOCK | ||||||
| diff -urN linux-2.6.19.old/fs/Makefile linux-2.6.19.dev/fs/Makefile | diff -Nur linux-2.6.21.1/fs/Makefile linux-2.6.21.1-owrt/fs/Makefile | ||||||
| --- linux-2.6.19.old/fs/Makefile	2006-12-14 03:13:16.000000000 +0100 | --- linux-2.6.21.1/fs/Makefile	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux-2.6.19.dev/fs/Makefile	2006-12-14 03:13:16.000000000 +0100 | +++ linux-2.6.21.1-owrt/fs/Makefile	2007-05-23 19:09:55.000000000 +0200 | ||||||
| @@ -67,6 +67,7 @@ | @@ -68,6 +68,7 @@ | ||||||
|  obj-$(CONFIG_JBD2)		+= jbd2/ |  obj-$(CONFIG_JBD2)		+= jbd2/ | ||||||
|  obj-$(CONFIG_EXT2_FS)		+= ext2/ |  obj-$(CONFIG_EXT2_FS)		+= ext2/ | ||||||
|  obj-$(CONFIG_CRAMFS)		+= cramfs/ |  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_RAMFS)		+= ramfs/ | ||||||
|  obj-$(CONFIG_HUGETLBFS)		+= hugetlbfs/ |  obj-$(CONFIG_HUGETLBFS)		+= hugetlbfs/ | ||||||
|  obj-$(CONFIG_CODA_FS)		+= coda/ |  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 | diff -Nur linux-2.6.21.1/fs/squashfs/inode.c linux-2.6.21.1-owrt/fs/squashfs/inode.c | ||||||
| --- linux-2.6.19.old/fs/squashfs/inode.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/squashfs/inode.c	2007-05-23 19:52:20.000000000 +0200 | ||||||
| @@ -0,0 +1,2124 @@ | @@ -0,0 +1,2124 @@ | ||||||
| +/* | +/* | ||||||
| + * Squashfs - a compressed read only filesystem for Linux | + * 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) | +static struct inode *squashfs_alloc_inode(struct super_block *sb) | ||||||
| +{ | +{ | ||||||
| +	struct squashfs_inode_info *ei; | +	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) | +	if (!ei) | ||||||
| +		return NULL; | +		return NULL; | ||||||
| +	return &ei->vfs_inode; | +	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; | +	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_DESCRIPTION("squashfs, a compressed read-only filesystem"); | ||||||
| +MODULE_AUTHOR("Phillip Lougher <phillip@lougher.org.uk>"); | +MODULE_AUTHOR("Phillip Lougher <phillip@lougher.org.uk>"); | ||||||
| +MODULE_LICENSE("GPL"); | +MODULE_LICENSE("GPL"); | ||||||
| diff -urN linux-2.6.19.old/fs/squashfs/Makefile linux-2.6.19.dev/fs/squashfs/Makefile | diff -Nur linux-2.6.21.1/fs/squashfs/Makefile linux-2.6.21.1-owrt/fs/squashfs/Makefile | ||||||
| --- linux-2.6.19.old/fs/squashfs/Makefile	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/squashfs/Makefile	2007-05-23 19:09:55.000000000 +0200 | ||||||
| @@ -0,0 +1,7 @@ | @@ -0,0 +1,7 @@ | ||||||
| +# | +# | ||||||
| +# Makefile for the linux squashfs routines. | +# 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 | +obj-$(CONFIG_SQUASHFS) += squashfs.o | ||||||
| +squashfs-y += inode.o | +squashfs-y += inode.o | ||||||
| +squashfs-y += squashfs2_0.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 | 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.19.old/fs/squashfs/squashfs2_0.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/squashfs/squashfs2_0.c	2007-05-23 19:09:55.000000000 +0200 | ||||||
| @@ -0,0 +1,758 @@ | @@ -0,0 +1,758 @@ | ||||||
| +/* | +/* | ||||||
| + * Squashfs - a compressed read only filesystem for Linux | + * 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; | +	return 1; | ||||||
| +} | +} | ||||||
| diff -urN linux-2.6.19.old/fs/squashfs/squashfs.h linux-2.6.19.dev/fs/squashfs/squashfs.h | diff -Nur linux-2.6.21.1/fs/squashfs/squashfs.h linux-2.6.21.1-owrt/fs/squashfs/squashfs.h | ||||||
| --- linux-2.6.19.old/fs/squashfs/squashfs.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/squashfs/squashfs.h	2007-05-23 19:09:56.000000000 +0200 | ||||||
| @@ -0,0 +1,86 @@ | @@ -0,0 +1,86 @@ | ||||||
| +/* | +/* | ||||||
| + * Squashfs - a compressed read only filesystem for Linux | + * 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; | +	return 0; | ||||||
| +} | +} | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux-2.6.19.old/include/linux/squashfs_fs.h linux-2.6.19.dev/include/linux/squashfs_fs.h | 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.19.old/include/linux/squashfs_fs.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/include/linux/squashfs_fs.h	2007-05-23 19:09:56.000000000 +0200 | ||||||
| @@ -0,0 +1,911 @@ | @@ -0,0 +1,911 @@ | ||||||
| +#ifndef SQUASHFS_FS | +#ifndef SQUASHFS_FS | ||||||
| +#define 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 | ||||||
| +#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 | 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.19.old/include/linux/squashfs_fs_i.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/include/linux/squashfs_fs_i.h	2007-05-23 19:09:56.000000000 +0200 | ||||||
| @@ -0,0 +1,45 @@ | @@ -0,0 +1,45 @@ | ||||||
| +#ifndef SQUASHFS_FS_I | +#ifndef SQUASHFS_FS_I | ||||||
| +#define 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; | +	struct inode	vfs_inode; | ||||||
| +}; | +}; | ||||||
| +#endif | +#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 | 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.19.old/include/linux/squashfs_fs_sb.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/include/linux/squashfs_fs_sb.h	2007-05-23 19:09:56.000000000 +0200 | ||||||
| @@ -0,0 +1,74 @@ | @@ -0,0 +1,74 @@ | ||||||
| +#ifndef SQUASHFS_FS_SB | +#ifndef SQUASHFS_FS_SB | ||||||
| +#define 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); | +	int			(*read_fragment_index_table)(struct super_block *s); | ||||||
| +}; | +}; | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux-2.6.19.old/init/do_mounts_rd.c linux-2.6.19.dev/init/do_mounts_rd.c | 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.19.old/init/do_mounts_rd.c	2006-11-29 22:57:37.000000000 +0100 | --- linux-2.6.21.1/init/do_mounts_rd.c	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux-2.6.19.dev/init/do_mounts_rd.c	2006-12-14 03:13:16.000000000 +0100 | +++ linux-2.6.21.1-owrt/init/do_mounts_rd.c	2007-05-23 19:09:56.000000000 +0200 | ||||||
| @@ -5,6 +5,7 @@ | @@ -5,6 +5,7 @@ | ||||||
|  #include <linux/ext2_fs.h> |  #include <linux/ext2_fs.h> | ||||||
|  #include <linux/romfs_fs.h> |  #include <linux/romfs_fs.h> | ||||||
|   | |||||||
| @@ -1,15 +1,110 @@ | |||||||
| --- linux-2.6.19.old/lib/Makefile	2007-04-18 17:41:22.679403384 +0200 | diff -Nur linux-2.6.21.1/include/linux/LzmaDecode.h linux-2.6.21.1-owrt/include/linux/LzmaDecode.h | ||||||
| +++ linux-2.6.19.dev/lib/Makefile	2007-04-18 17:41:43.303268080 +0200 | --- linux-2.6.21.1/include/linux/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100 | ||||||
| @@ -54,6 +54,7 @@ | +++ linux-2.6.21.1-owrt/include/linux/LzmaDecode.h	2007-05-14 10:51:05.000000000 +0200 | ||||||
|  obj-$(CONFIG_AUDIT_GENERIC) += audit.o | @@ -0,0 +1,100 @@ | ||||||
|   | +/* | ||||||
|  obj-$(CONFIG_SWIOTLB) += swiotlb.o | +  LzmaDecode.h | ||||||
| +obj-y += LzmaDecode.o | +  LZMA Decoder interface | ||||||
|   | + | ||||||
|  hostprogs-y	:= gen_crc32table | +  LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25) | ||||||
|  clean-files	:= crc32table.h | +  http://www.7-zip.org/ | ||||||
| --- 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 | +  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 @@ | @@ -0,0 +1,663 @@ | ||||||
| +/* | +/* | ||||||
| +  LzmaDecode.c | +  LzmaDecode.c | ||||||
| @@ -674,107 +769,23 @@ | |||||||
| +  *outSizeProcessed = nowPos; | +  *outSizeProcessed = nowPos; | ||||||
| +  return LZMA_RESULT_OK; | +  return LZMA_RESULT_OK; | ||||||
| +} | +} | ||||||
| --- linux-2.6.19.old/include/linux/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100 | diff -Nur linux-2.6.21.1/lib/Makefile linux-2.6.21.1-owrt/lib/Makefile | ||||||
| +++ linux-2.6.19.dev/include/linux/LzmaDecode.h	2006-12-14 03:13:20.000000000 +0100 | --- linux-2.6.21.1/lib/Makefile	2007-04-27 23:49:26.000000000 +0200 | ||||||
| @@ -0,0 +1,100 @@ | +++ linux-2.6.21.1-owrt/lib/Makefile	2007-05-14 10:52:43.000000000 +0200 | ||||||
| +/* | @@ -12,7 +12,7 @@ | ||||||
| +  LzmaDecode.h |   | ||||||
| +  LZMA Decoder interface |  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 | ||||||
| + | + | ||||||
| +  LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25) |  obj-$(CONFIG_FAULT_INJECTION) += fault-inject.o | ||||||
| +  http://www.7-zip.org/ |   | ||||||
| + |  lib-$(CONFIG_GENERIC_BUG) += bug.o | ||||||
| +  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 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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 */ |  | ||||||
| @@ -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 <rod@whitby.id.au> |  | ||||||
| -- |  | ||||||
|  |  | ||||||
| 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; |  | ||||||
|   |  | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| diff -ur linux.old/drivers/mtd/Kconfig linux.dev/drivers/mtd/Kconfig | diff -Nur linux-2.6.21.1/drivers/mtd/Kconfig linux-2.6.21.1-owrt/drivers/mtd/Kconfig | ||||||
| --- linux.old/drivers/mtd/Kconfig	2007-01-10 20:10:37.000000000 +0100 | --- linux-2.6.21.1/drivers/mtd/Kconfig	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux.dev/drivers/mtd/Kconfig	2007-02-19 23:00:53.739457000 +0100 | +++ linux-2.6.21.1-owrt/drivers/mtd/Kconfig	2007-05-14 10:59:59.000000000 +0200 | ||||||
| @@ -49,6 +49,11 @@ | @@ -49,6 +49,11 @@ | ||||||
|  	  devices. Partitioning on NFTL 'devices' is a different - that's the |  	  devices. Partitioning on NFTL 'devices' is a different - that's the | ||||||
|  	  'normal' form of partitioning used on a block device. |  	  '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 |  config MTD_REDBOOT_PARTS | ||||||
|  	tristate "RedBoot partition table parsing" |  	tristate "RedBoot partition table parsing" | ||||||
|  	depends on MTD_PARTITIONS |  	depends on MTD_PARTITIONS | ||||||
| diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | diff -Nur linux-2.6.21.1/drivers/mtd/mtdpart.c linux-2.6.21.1-owrt/drivers/mtd/mtdpart.c | ||||||
| --- linux.old/drivers/mtd/mtdpart.c	2007-01-10 20:10:37.000000000 +0100 | --- linux-2.6.21.1/drivers/mtd/mtdpart.c	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux.dev/drivers/mtd/mtdpart.c	2007-02-20 00:01:38.587355896 +0100 | +++ linux-2.6.21.1-owrt/drivers/mtd/mtdpart.c	2007-05-14 11:18:56.000000000 +0200 | ||||||
| @@ -20,6 +20,8 @@ | @@ -20,6 +20,8 @@ | ||||||
|  #include <linux/mtd/mtd.h> |  #include <linux/mtd/mtd.h> | ||||||
|  #include <linux/mtd/partitions.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 */ |  /* Our partition linked list */ | ||||||
|  static LIST_HEAD(mtd_partitions); |  static LIST_HEAD(mtd_partitions); | ||||||
| @@ -303,6 +305,173 @@ | @@ -308,6 +310,172 @@ | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -35,14 +35,13 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | |||||||
| +	struct mtd_part *slave; | +	struct mtd_part *slave; | ||||||
| +	 | +	 | ||||||
| +	/* allocate the partition structure */ | +	/* allocate the partition structure */ | ||||||
| +	slave = kmalloc (sizeof(*slave), GFP_KERNEL); | +	slave = kzalloc (sizeof(*slave), GFP_KERNEL); | ||||||
| +	if (!slave) { | +	if (!slave) { | ||||||
| +		printk ("memory allocation error while creating partitions for \"%s\"\n", | +		printk ("memory allocation error while creating partitions for \"%s\"\n", | ||||||
| +			master->name); | +			master->name); | ||||||
| +		del_mtd_partitions(master); | +		del_mtd_partitions(master); | ||||||
| +		return -ENOMEM; | +		return -ENOMEM; | ||||||
| +	} | +	} | ||||||
| +	memset(slave, 0, sizeof(*slave)); |  | ||||||
| +	list_add(&slave->list, &mtd_partitions); | +	list_add(&slave->list, &mtd_partitions); | ||||||
| + | + | ||||||
| +	/* set up the MTD object for this partition */ | +	/* 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.size = part->size; | ||||||
| +	slave->mtd.writesize = master->writesize; | +	slave->mtd.writesize = master->writesize; | ||||||
| +	slave->mtd.oobsize = master->oobsize; | +	slave->mtd.oobsize = master->oobsize; | ||||||
| +	slave->mtd.ecctype = master->ecctype; | +	slave->mtd.oobavail = master->oobavail; | ||||||
| +	slave->mtd.eccsize = master->eccsize; | +	slave->mtd.subpage_sft = master->subpage_sft; | ||||||
| + | + | ||||||
| +	slave->mtd.name = part->name; | +	slave->mtd.name = part->name; | ||||||
| +	slave->mtd.bank_size = master->bank_size; | +	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 |   * 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 |   * 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, |  		       const struct mtd_partition *parts, | ||||||
|  		       int nbparts) |  		       int nbparts) | ||||||
|  { |  { | ||||||
| @@ -250,14 +249,13 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | |||||||
| +					return ret; | +					return ret; | ||||||
|   |   | ||||||
| -		/* allocate the partition structure */ | -		/* allocate the partition structure */ | ||||||
| -		slave = kmalloc (sizeof(*slave), GFP_KERNEL); | -		slave = kzalloc (sizeof(*slave), GFP_KERNEL); | ||||||
| -		if (!slave) { | -		if (!slave) { | ||||||
| -			printk ("memory allocation error while creating partitions for \"%s\"\n", | -			printk ("memory allocation error while creating partitions for \"%s\"\n", | ||||||
| -				master->name); | -				master->name); | ||||||
| -			del_mtd_partitions(master); | -			del_mtd_partitions(master); | ||||||
| -			return -ENOMEM; | -			return -ENOMEM; | ||||||
| -		} | -		} | ||||||
| -		memset(slave, 0, sizeof(*slave)); |  | ||||||
| -		list_add(&slave->list, &mtd_partitions); | -		list_add(&slave->list, &mtd_partitions); | ||||||
| - | - | ||||||
| -		/* set up the MTD object for this partition */ | -		/* 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.size = parts[i].size; | ||||||
| -		slave->mtd.writesize = master->writesize; | -		slave->mtd.writesize = master->writesize; | ||||||
| -		slave->mtd.oobsize = master->oobsize; | -		slave->mtd.oobsize = master->oobsize; | ||||||
| -		slave->mtd.ecctype = master->ecctype; | -		slave->mtd.oobavail = master->oobavail; | ||||||
| -		slave->mtd.eccsize = master->eccsize; | -		slave->mtd.subpage_sft = master->subpage_sft; | ||||||
| - | - | ||||||
| -		slave->mtd.name = parts[i].name; | -		slave->mtd.name = parts[i].name; | ||||||
| -		slave->mtd.bank_size = master->bank_size; | -		slave->mtd.bank_size = master->bank_size; | ||||||
|   | |||||||
| @@ -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) | +static int __init init(void) | ||||||
| +{ | +{ | ||||||
| +    printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION); | +    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) | +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); | +    printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION); | ||||||
| +} | +} | ||||||
| + | + | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| diff -urN linux-2.6.19.old/include/net/xfrmudp.h linux-2.6.19.dev/include/net/xfrmudp.h | diff -Nur linux-2.6.21.1/include/net/xfrmudp.h linux-2.6.21.1-owrt/include/net/xfrmudp.h | ||||||
| --- linux-2.6.19.old/include/net/xfrmudp.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/include/net/xfrmudp.h	2007-05-14 11:26:11.000000000 +0200 | ||||||
| @@ -0,0 +1,10 @@ | @@ -0,0 +1,10 @@ | ||||||
| +/* | +/* | ||||||
| + * pointer to function for type that xfrm4_input wants, to permit | + * 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 | +extern int udp4_register_esp_rcvencap(xfrm4_rcv_encap_t func | ||||||
| +				      , xfrm4_rcv_encap_t *oldfunc); | +				      , xfrm4_rcv_encap_t *oldfunc); | ||||||
| +extern int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func); | +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 | diff -Nur linux-2.6.21.1/net/ipv4/Kconfig linux-2.6.21.1-owrt/net/ipv4/Kconfig | ||||||
| --- linux-2.6.19.old/net/ipv4/Kconfig	2006-11-29 22:57:37.000000000 +0100 | --- linux-2.6.21.1/net/ipv4/Kconfig	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux-2.6.19.dev/net/ipv4/Kconfig	2006-12-14 03:13:41.000000000 +0100 | +++ linux-2.6.21.1-owrt/net/ipv4/Kconfig	2007-05-14 11:26:11.000000000 +0200 | ||||||
| @@ -273,6 +273,12 @@ | @@ -266,6 +266,12 @@ | ||||||
|  	  Network), but can be distributed all over the Internet. If you want |  	  Network), but can be distributed all over the Internet. If you want | ||||||
|  	  to do that, say Y here and to "IP multicast routing" below. |  	  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 |  config IP_MROUTE | ||||||
|  	bool "IP: multicast routing" |  	bool "IP: multicast routing" | ||||||
|  	depends on IP_MULTICAST |  	depends on IP_MULTICAST | ||||||
| diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c | diff -Nur linux-2.6.21.1/net/ipv4/udp.c linux-2.6.21.1-owrt/net/ipv4/udp.c | ||||||
| --- linux-2.6.19.old/net/ipv4/udp.c	2006-11-29 22:57:37.000000000 +0100 | --- linux-2.6.21.1/net/ipv4/udp.c	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux-2.6.19.dev/net/ipv4/udp.c	2006-12-14 03:13:41.000000000 +0100 | +++ linux-2.6.21.1-owrt/net/ipv4/udp.c	2007-05-14 11:42:44.000000000 +0200 | ||||||
| @@ -108,11 +108,14 @@ | @@ -101,12 +101,15 @@ | ||||||
|  #include <net/inet_common.h> |  #include <net/route.h> | ||||||
|  #include <net/checksum.h> |  #include <net/checksum.h> | ||||||
|  #include <net/xfrm.h> |  #include <net/xfrm.h> | ||||||
| +#include <net/xfrmudp.h> | +#include <net/xfrmudp.h> | ||||||
|  |  #include "udp_impl.h" | ||||||
|   |   | ||||||
|  /* |  /* | ||||||
|   *	Snmp MIB for the UDP layer |   *	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; |  DEFINE_SNMP_STAT(struct udp_mib, udp_statistics) __read_mostly; | ||||||
|   |   | ||||||
|  struct hlist_head udp_hash[UDP_HTABLE_SIZE]; |  struct hlist_head udp_hash[UDP_HTABLE_SIZE]; | ||||||
| @@ -917,6 +920,42 @@ | @@ -915,6 +918,42 @@ | ||||||
|  	sk_common_release(sk); |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| +#if defined(CONFIG_XFRM) || defined(CONFIG_IPSEC_NAT_TRAVERSAL) | +#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: |  /* return: | ||||||
|   * 	1  if the the UDP system should process it |   * 	1  if the the UDP system should process it | ||||||
|   *	0  if we should drop this packet |   *	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) |  static int udp_encap_rcv(struct sock * sk, struct sk_buff *skb) | ||||||
|  { |  { | ||||||
| -#ifndef CONFIG_XFRM | -#ifndef CONFIG_XFRM | ||||||
| +#if !defined(CONFIG_XFRM) && !defined(CONFIG_IPSEC_NAT_TRAVERSAL) | +#if !defined(CONFIG_XFRM) && !defined(CONFIG_IPSEC_NAT_TRAVERSAL) | ||||||
|  	return 1;  |  	return 1; | ||||||
| -#else |  #else | ||||||
| +#else /* either CONFIG_XFRM or CONFIG_IPSEC_NAT_TRAVERSAL */ |  | ||||||
|  	struct udp_sock *up = udp_sk(sk); |  	struct udp_sock *up = udp_sk(sk); | ||||||
|    	struct udphdr *uh; | @@ -937,11 +976,11 @@ | ||||||
|  	struct iphdr *iph; |  | ||||||
| @@ -939,11 +978,11 @@ |  | ||||||
|  	/* if we're overly short, let UDP handle it */ |  	/* if we're overly short, let UDP handle it */ | ||||||
|  	len = skb->len - sizeof(struct udphdr); |  	len = skb->len - sizeof(struct udphdr); | ||||||
|  	if (len <= 0) |  	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 |  	/* If this is a paged skb, make sure we pull up | ||||||
|  	 * whatever data we need to look at. */ |  	 * whatever data we need to look at. */ | ||||||
| @@ -966,7 +1005,7 @@ | @@ -964,7 +1003,7 @@ | ||||||
|  			len = sizeof(struct udphdr); |  			len = sizeof(struct udphdr); | ||||||
|  		} else |  		} else | ||||||
|  			/* Must be an IKE packet.. pass it through */ |  			/* 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; |  		break; | ||||||
|  	case UDP_ENCAP_ESPINUDP_NON_IKE: |  	case UDP_ENCAP_ESPINUDP_NON_IKE: | ||||||
|  		/* Check if this is a keepalive packet.  If so, eat it. */ |  		/* 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); |  			len = sizeof(struct udphdr) + 2 * sizeof(u32); | ||||||
|  		} else |  		} else | ||||||
|  			/* Must be an IKE packet.. pass it through */ |  			/* 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; |  		break; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -990,6 +1029,8 @@ | @@ -988,6 +1027,8 @@ | ||||||
|  	 */ |  	 */ | ||||||
|  	if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) |  	if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) | ||||||
|  		return 0; |  		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... */ |  	/* Now we can update and verify the packet length... */ | ||||||
|  	iph = skb->nh.iph; |  	iph = skb->nh.iph; | ||||||
| @@ -1055,9 +1096,13 @@ | @@ -1051,9 +1092,13 @@ | ||||||
|  			return 0; |  			return 0; | ||||||
|  		} |  		} | ||||||
|  		if (ret < 0) { |  		if (ret < 0) { | ||||||
| -			/* process the ESP packet */ | -			/* process the ESP packet */ | ||||||
| -			ret = xfrm4_rcv_encap(skb, up->encap_type); | -			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) { | +			if(xfrm4_rcv_encap_func != NULL) { | ||||||
| +			  ret = (*xfrm4_rcv_encap_func)(skb, up->encap_type); | +			  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 { | +			} else { | ||||||
| +			  UDP_INC_STATS_BH(UDP_MIB_INERRORS); | +			  UDP_INC_STATS_BH(UDP_MIB_INERRORS, up->pcflag); | ||||||
| +			  ret = 1; | +			  ret = 1; | ||||||
| +			} | +			} | ||||||
|  			return -ret; |  			return -ret; | ||||||
|  		} |  		} | ||||||
|  		/* FALLTHROUGH -- it's a UDP Packet */ |  		/* FALLTHROUGH -- it's a UDP Packet */ | ||||||
| @@ -1639,3 +1684,9 @@ | @@ -1733,3 +1778,9 @@ | ||||||
|  EXPORT_SYMBOL(udp_proc_register); |  EXPORT_SYMBOL(udp_proc_register); | ||||||
|  EXPORT_SYMBOL(udp_proc_unregister); |  EXPORT_SYMBOL(udp_proc_unregister); | ||||||
|  #endif |  #endif | ||||||
|   | |||||||
| @@ -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 | 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.19.old/include/linux/netfilter_ipv4/ip_set.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,489 @@ | ||||||
| +#ifndef _IP_SET_H | +#ifndef _IP_SET_H | ||||||
| +#define _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				/* __KERNEL__ */ | ||||||
| + | + | ||||||
| +#endif /*_IP_SET_H*/ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_iphash.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,30 @@ | ||||||
| +#ifndef __IP_SET_IPHASH_H | +#ifndef __IP_SET_IPHASH_H | ||||||
| +#define __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 */ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_ipmap.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,56 @@ | ||||||
| +#ifndef __IP_SET_IPMAP_H | +#ifndef __IP_SET_IPMAP_H | ||||||
| +#define __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 */ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_iptree.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,39 @@ | ||||||
| +#ifndef __IP_SET_IPTREE_H | +#ifndef __IP_SET_IPTREE_H | ||||||
| +#define __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 */ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_jhash.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,148 @@ | ||||||
| +#ifndef _LINUX_IPSET_JHASH_H | +#ifndef _LINUX_IPSET_JHASH_H | ||||||
| +#define _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 */ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_macipmap.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,38 @@ | ||||||
| +#ifndef __IP_SET_MACIPMAP_H | +#ifndef __IP_SET_MACIPMAP_H | ||||||
| +#define __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 */ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_malloc.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,42 @@ | ||||||
| +#ifndef _IP_SET_MALLOC_H | +#ifndef _IP_SET_MALLOC_H | ||||||
| +#define _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				/* __KERNEL__ */ | ||||||
| + | + | ||||||
| +#endif /*_IP_SET_MALLOC_H*/ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_nethash.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,55 @@ | ||||||
| +#ifndef __IP_SET_NETHASH_H | +#ifndef __IP_SET_NETHASH_H | ||||||
| +#define __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 */ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_portmap.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,25 @@ | ||||||
| +#ifndef __IP_SET_PORTMAP_H | +#ifndef __IP_SET_PORTMAP_H | ||||||
| +#define __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 */ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ip_set_prime.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,34 @@ | ||||||
| +#ifndef __IP_SET_PRIME_H | +#ifndef __IP_SET_PRIME_H | ||||||
| +#define __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 */ | +#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 | 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.19.old/include/linux/netfilter_ipv4/ipt_set.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,21 @@ | ||||||
| +#ifndef _IPT_SET_H | +#ifndef _IPT_SET_H | ||||||
| +#define _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*/ | +#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 | 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.19.old/include/linux/netfilter_ipv4/listhelp.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/listhelp.h	2007-05-14 11:44:19.000000000 +0200 | ||||||
| @@ -0,0 +1,123 @@ | @@ -0,0 +1,123 @@ | ||||||
| +#ifndef _LISTHELP_H | +#ifndef _LISTHELP_H | ||||||
| +#define _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) | +LIST_FIND(head, __list_cmp_name, void *, name) | ||||||
| + | + | ||||||
| +#endif /*_LISTHELP_H*/ | +#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 | 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.19.old/net/ipv4/netfilter/ip_set.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set.c	2007-05-14 11:44:19.000000000 +0200 | ||||||
| @@ -0,0 +1,1989 @@ | @@ -0,0 +1,1989 @@ | ||||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||||
| + *                         Patrick Schaaf <bof@bof.de> | + *                         Patrick Schaaf <bof@bof.de> | ||||||
| @@ -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_init(init); | ||||||
| +module_exit(fini); | +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 | 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.19.old/net/ipv4/netfilter/ip_set_iphash.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,379 @@ | ||||||
| +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | ||||||
| + * | + * | ||||||
| @@ -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_init(init); | ||||||
| +module_exit(fini); | +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 | 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.19.old/net/ipv4/netfilter/ip_set_ipmap.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,313 @@ | ||||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||||
| + *                         Patrick Schaaf <bof@bof.de> | + *                         Patrick Schaaf <bof@bof.de> | ||||||
| @@ -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_init(init); | ||||||
| +module_exit(fini); | +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 | 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.19.old/net/ipv4/netfilter/ip_set_iptree.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,510 @@ | ||||||
| +/* Copyright (C) 2005 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | +/* Copyright (C) 2005 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | ||||||
| + * | + * | ||||||
| @@ -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_init(init); | ||||||
| +module_exit(fini); | +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 | 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.19.old/net/ipv4/netfilter/ip_set_macipmap.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,338 @@ | ||||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||||
| + *                         Patrick Schaaf <bof@bof.de> | + *                         Patrick Schaaf <bof@bof.de> | ||||||
| @@ -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_init(init); | ||||||
| +module_exit(fini); | +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 | 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.19.old/net/ipv4/netfilter/ip_set_nethash.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,449 @@ | ||||||
| +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | ||||||
| + * | + * | ||||||
| @@ -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_init(init); | ||||||
| +module_exit(fini); | +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 | 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.19.old/net/ipv4/netfilter/ip_set_portmap.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ 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 @@ | @@ -0,0 +1,325 @@ | ||||||
| +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | ||||||
| + * | + * | ||||||
| @@ -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_init(init); | ||||||
| +module_exit(fini); | +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 | 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.19.old/net/ipv4/netfilter/ipt_set.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_set.c	2007-05-14 11:44:19.000000000 +0200 | ||||||
| @@ -0,0 +1,105 @@ | @@ -0,0 +1,105 @@ | ||||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||||
| + *                         Patrick Schaaf <bof@bof.de> | + *                         Patrick Schaaf <bof@bof.de> | ||||||
| @@ -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_init(init); | ||||||
| +module_exit(fini); | +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 | 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.19.old/net/ipv4/netfilter/ipt_SET.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_SET.c	2007-05-14 11:44:19.000000000 +0200 | ||||||
| @@ -0,0 +1,120 @@ | @@ -0,0 +1,120 @@ | ||||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||||
| + *                         Patrick Schaaf <bof@bof.de> | + *                         Patrick Schaaf <bof@bof.de> | ||||||
| @@ -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) | +static int __init init(void) | ||||||
| +{ | +{ | ||||||
| +	return ipt_register_target(&SET_target); | +	return xt_register_target(&SET_target); | ||||||
| +} | +} | ||||||
| + | + | ||||||
| +static void __exit fini(void) | +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_init(init); | ||||||
| +module_exit(fini); | +module_exit(fini); | ||||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/Kconfig linux-2.6.19.dev/net/ipv4/netfilter/Kconfig | diff -Nur linux-2.6.21.1/net/ipv4/netfilter/Kconfig linux-2.6.21.1-owrt/net/ipv4/netfilter/Kconfig | ||||||
| --- linux-2.6.19.old/net/ipv4/netfilter/Kconfig	2006-12-14 03:13:41.000000000 +0100 | --- linux-2.6.21.1/net/ipv4/netfilter/Kconfig	2007-05-14 11:24:57.000000000 +0200 | ||||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/Kconfig	2006-12-14 03:13:43.000000000 +0100 | +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/Kconfig	2007-05-14 11:44:19.000000000 +0200 | ||||||
| @@ -647,5 +647,106 @@ | @@ -681,5 +681,106 @@ | ||||||
|  	  Allows altering the ARP packet payload: source and destination |  	  Allows altering the ARP packet payload: source and destination | ||||||
|  	  hardware and network addresses. |  	  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 |  endmenu | ||||||
|   |   | ||||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/Makefile linux-2.6.19.dev/net/ipv4/netfilter/Makefile | diff -Nur linux-2.6.21.1/net/ipv4/netfilter/Makefile linux-2.6.21.1-owrt/net/ipv4/netfilter/Makefile | ||||||
| --- linux-2.6.19.old/net/ipv4/netfilter/Makefile	2006-12-14 03:13:41.000000000 +0100 | --- linux-2.6.21.1/net/ipv4/netfilter/Makefile	2007-05-14 11:24:57.000000000 +0200 | ||||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/Makefile	2006-12-14 03:13:43.000000000 +0100 | +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/Makefile	2007-05-14 11:47:22.000000000 +0200 | ||||||
| @@ -54,6 +54,7 @@ | @@ -83,6 +83,7 @@ | ||||||
|  |  obj-$(CONFIG_IP_NF_RAW) += iptable_raw.o | ||||||
|   |   | ||||||
|  # matches |  # matches | ||||||
|  obj-$(CONFIG_IP_NF_MATCH_HASHLIMIT) += ipt_hashlimit.o |  | ||||||
| +obj-$(CONFIG_IP_NF_MATCH_SET) += ipt_set.o | +obj-$(CONFIG_IP_NF_MATCH_SET) += ipt_set.o | ||||||
|  obj-$(CONFIG_IP_NF_MATCH_IPRANGE) += ipt_iprange.o |  obj-$(CONFIG_IP_NF_MATCH_IPRANGE) += ipt_iprange.o | ||||||
|  obj-$(CONFIG_IP_NF_MATCH_OWNER) += ipt_owner.o |  obj-$(CONFIG_IP_NF_MATCH_OWNER) += ipt_owner.o | ||||||
|  obj-$(CONFIG_IP_NF_MATCH_TOS) += ipt_tos.o |  obj-$(CONFIG_IP_NF_MATCH_TOS) += ipt_tos.o | ||||||
| @@ -77,6 +78,17 @@ | @@ -107,6 +108,16 @@ | ||||||
|  obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o |  | ||||||
|  obj-$(CONFIG_IP_NF_TARGET_ULOG) += ipt_ULOG.o |  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 | +obj-$(CONFIG_IP_NF_TARGET_SET) += ipt_SET.o | ||||||
| + | + | ||||||
| +# sets | +# 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_IPHASH) += ip_set_iphash.o | ||||||
| +obj-$(CONFIG_IP_NF_SET_NETHASH) += ip_set_nethash.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_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 | ||||||
|   | |||||||
| @@ -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.20-original/drivers/net/imq.c	1970-01-01 02:00:00.000000000 +0200 | ||||||
| --- linux-2.6.19/drivers/net/imq.c	1970-01-01 09:30:00.000000000 +0930 | +++ linux-2.6.20/drivers/net/imq.c	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/drivers/net/imq.c	2006-12-05 23:01:02.000000000 +1030 |  | ||||||
| @@ -0,0 +1,402 @@ | @@ -0,0 +1,402 @@ | ||||||
| +/* | +/* | ||||||
| + *             Pseudo-driver for the intermediate queue device. | + *             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_AUTHOR("http://www.linuximq.net"); | ||||||
| +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | ||||||
| +MODULE_LICENSE("GPL"); | +MODULE_LICENSE("GPL"); | ||||||
| diff -urN linux-2.6.19/drivers/net/Kconfig linux-2.6.19+imq/drivers/net/Kconfig | --- linux-2.6.20-original/drivers/net/Kconfig	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/drivers/net/Kconfig	2006-12-01 14:05:30.000000000 +1030 | +++ linux-2.6.20/drivers/net/Kconfig	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/drivers/net/Kconfig	2006-12-05 23:03:52.000000000 +1030 |  | ||||||
| @@ -96,6 +96,129 @@ | @@ -96,6 +96,129 @@ | ||||||
|  	  To compile this driver as a module, choose M here: the module |  	  To compile this driver as a module, choose M here: the module | ||||||
|  	  will be called eql.  If unsure, say N. |  	  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 |  config TUN | ||||||
|  	tristate "Universal TUN/TAP device driver support" |  	tristate "Universal TUN/TAP device driver support" | ||||||
|  	select CRC32 |  	select CRC32 | ||||||
| diff -urN linux-2.6.19/drivers/net/Makefile linux-2.6.19+imq/drivers/net/Makefile | --- linux-2.6.20-original/drivers/net/Makefile	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/drivers/net/Makefile	2006-12-01 14:05:30.000000000 +1030 | +++ linux-2.6.20/drivers/net/Makefile	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/drivers/net/Makefile	2006-12-04 12:41:01.000000000 +1030 |  | ||||||
| @@ -124,6 +124,7 @@ | @@ -124,6 +124,7 @@ | ||||||
|  obj-$(CONFIG_SLHC) += slhc.o |  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_IFB) += ifb.o | ||||||
|  obj-$(CONFIG_DE600) += de600.o |  obj-$(CONFIG_DE600) += de600.o | ||||||
|  obj-$(CONFIG_DE620) += de620.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.20-original/include/linux/imq.h	1970-01-01 02:00:00.000000000 +0200 | ||||||
| --- linux-2.6.19/include/linux/imq.h	1970-01-01 09:30:00.000000000 +0930 | +++ linux-2.6.20/include/linux/imq.h	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/include/linux/imq.h	2006-12-04 12:41:01.000000000 +1030 |  | ||||||
| @@ -0,0 +1,9 @@ | @@ -0,0 +1,9 @@ | ||||||
| +#ifndef _IMQ_H | +#ifndef _IMQ_H | ||||||
| +#define _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 | +#define IMQ_F_ENQUEUE  0x80 | ||||||
| + | + | ||||||
| +#endif /* _IMQ_H */ | +#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.20-original/include/linux/netfilter_ipv4/ipt_IMQ.h	1970-01-01 02:00:00.000000000 +0200 | ||||||
| --- linux-2.6.19/include/linux/netfilter_ipv4/ipt_IMQ.h	1970-01-01 09:30:00.000000000 +0930 | +++ linux-2.6.20/include/linux/netfilter_ipv4/ipt_IMQ.h	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/include/linux/netfilter_ipv4/ipt_IMQ.h	2006-12-05 23:04:22.000000000 +1030 |  | ||||||
| @@ -0,0 +1,8 @@ | @@ -0,0 +1,8 @@ | ||||||
| +#ifndef _IPT_IMQ_H | +#ifndef _IPT_IMQ_H | ||||||
| +#define _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 */ | +#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.20-original/include/linux/netfilter_ipv6/ip6t_IMQ.h	1970-01-01 02:00:00.000000000 +0200 | ||||||
| --- linux-2.6.19/include/linux/netfilter_ipv6/ip6t_IMQ.h	1970-01-01 09:30:00.000000000 +0930 | +++ linux-2.6.20/include/linux/netfilter_ipv6/ip6t_IMQ.h	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/include/linux/netfilter_ipv6/ip6t_IMQ.h	2006-12-05 23:04:32.000000000 +1030 |  | ||||||
| @@ -0,0 +1,8 @@ | @@ -0,0 +1,8 @@ | ||||||
| +#ifndef _IP6T_IMQ_H | +#ifndef _IP6T_IMQ_H | ||||||
| +#define _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 */ | +#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.20-original/include/linux/skbuff.h	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/include/linux/skbuff.h	2006-12-01 14:05:44.000000000 +1030 | +++ linux-2.6.20/include/linux/skbuff.h	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/include/linux/skbuff.h	2006-12-05 23:05:06.000000000 +1030 | @@ -293,6 +293,10 @@ | ||||||
| @@ -292,6 +292,10 @@ |  | ||||||
|  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) |  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) | ||||||
|  	struct sk_buff		*nfct_reasm; |  	struct sk_buff		*nfct_reasm; | ||||||
|  #endif |  #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 |  #ifdef CONFIG_BRIDGE_NETFILTER | ||||||
|  	struct nf_bridge_info	*nf_bridge; |  	struct nf_bridge_info	*nf_bridge; | ||||||
|  #endif |  #endif | ||||||
| diff -urN linux-2.6.19/net/core/dev.c linux-2.6.19+imq/net/core/dev.c | --- linux-2.6.20-original/net/core/dev.c	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/net/core/dev.c	2006-12-01 14:05:45.000000000 +1030 | +++ linux-2.6.20/net/core/dev.c	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/net/core/dev.c	2006-12-05 23:05:40.000000000 +1030 |  | ||||||
| @@ -94,6 +94,9 @@ | @@ -94,6 +94,9 @@ | ||||||
|  #include <linux/skbuff.h> |  #include <linux/skbuff.h> | ||||||
|  #include <net/sock.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/proc_fs.h> | ||||||
|  #include <linux/seq_file.h> |  #include <linux/seq_file.h> | ||||||
|  #include <linux/stat.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) |  int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) | ||||||
|  { |  { | ||||||
|  	if (likely(!skb->next)) { |  	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); |  			dev_queue_xmit_nit(skb, dev); | ||||||
|   |   | ||||||
|  		if (netif_needs_gso(dev, skb)) { |  		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.20-original/net/core/skbuff.c	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/net/core/skbuff.c	2006-12-01 14:05:45.000000000 +1030 | +++ linux-2.6.20/net/core/skbuff.c	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/net/core/skbuff.c	2006-12-04 12:41:01.000000000 +1030 | @@ -485,6 +485,10 @@ | ||||||
| @@ -482,6 +482,10 @@ |  | ||||||
|  	C(nfct_reasm); |  	C(nfct_reasm); | ||||||
|  	nf_conntrack_get_reasm(skb->nfct_reasm); |  	nf_conntrack_get_reasm(skb->nfct_reasm); | ||||||
|  #endif |  #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 |  #ifdef CONFIG_BRIDGE_NETFILTER | ||||||
|  	C(nf_bridge); |  	C(nf_bridge); | ||||||
|  	nf_bridge_get(skb->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) |  #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) | ||||||
|  	new->ipvs_property = old->ipvs_property; |  	new->ipvs_property = old->ipvs_property; | ||||||
|  #endif |  #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 |  #ifdef CONFIG_BRIDGE_NETFILTER | ||||||
|  	new->nf_bridge	= old->nf_bridge; |  	new->nf_bridge	= old->nf_bridge; | ||||||
|  	nf_bridge_get(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.20-original/net/ipv4/netfilter/ipt_IMQ.c	1970-01-01 02:00:00.000000000 +0200 | ||||||
| --- linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c	1970-01-01 09:30:00.000000000 +0930 | +++ linux-2.6.20/net/ipv4/netfilter/ipt_IMQ.c	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19.2/net/ipv4/netfilter/ipt_IMQ.c	2007-01-25 09:59:34.000000000 +0100 |  | ||||||
| @@ -0,0 +1,71 @@ | @@ -0,0 +1,71 @@ | ||||||
| +/* | +/* | ||||||
| + * This target marks packets to be enqueued to an imq device | + * 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) | +static int __init init(void) | ||||||
| +{ | +{ | ||||||
| +	if (ipt_register_target(&ipt_imq_reg)) | +	if (xt_register_target(&ipt_imq_reg)) | ||||||
| +		return -EINVAL; | +		return -EINVAL; | ||||||
| + | + | ||||||
| +	return 0; | +	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) | +static void __exit fini(void) | ||||||
| +{ | +{ | ||||||
| +	ipt_unregister_target(&ipt_imq_reg); | +	xt_unregister_target(&ipt_imq_reg); | ||||||
| +} | +} | ||||||
| + | + | ||||||
| +module_init(init); | +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_AUTHOR("http://www.linuximq.net"); | ||||||
| +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | ||||||
| +MODULE_LICENSE("GPL"); | +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.20-original/net/ipv4/netfilter/Kconfig	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/net/ipv4/netfilter/Kconfig	2006-12-01 14:05:45.000000000 +1030 | +++ linux-2.6.20/net/ipv4/netfilter/Kconfig	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/net/ipv4/netfilter/Kconfig	2006-12-04 12:41:01.000000000 +1030 | @@ -591,6 +591,17 @@ | ||||||
| @@ -533,6 +533,17 @@ |  | ||||||
|   |   | ||||||
|  	  To compile it as a module, choose M here.  If unsure, say N. |  	  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 |  config IP_NF_TARGET_TOS | ||||||
|  	tristate "TOS target support" |  	tristate "TOS target support" | ||||||
|  	depends on IP_NF_MANGLE |  	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.20-original/net/ipv4/netfilter/Makefile	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/net/ipv4/netfilter/Makefile	2006-12-01 14:05:45.000000000 +1030 | +++ linux-2.6.20/net/ipv4/netfilter/Makefile	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/net/ipv4/netfilter/Makefile	2006-12-04 12:41:01.000000000 +1030 | @@ -96,6 +96,7 @@ | ||||||
| @@ -67,6 +67,7 @@ |  | ||||||
|  obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o |  obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o | ||||||
|  obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o |  obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o | ||||||
|  obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.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_MASQUERADE) += ipt_MASQUERADE.o | ||||||
|  obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o |  obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o | ||||||
|  obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.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.20-original/net/ipv6/netfilter/ip6t_IMQ.c	1970-01-01 02:00:00.000000000 +0200 | ||||||
| --- linux-2.6.19/net/ipv6/netfilter/ip6t_IMQ.c	1970-01-01 09:30:00.000000000 +0930 | +++ linux-2.6.20/net/ipv6/netfilter/ip6t_IMQ.c	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19.2/net/ipv6/netfilter/ip6t_IMQ.c	2007-01-25 10:06:41.000000000 +0100 |  | ||||||
| @@ -0,0 +1,71 @@ | @@ -0,0 +1,71 @@ | ||||||
| +/* | +/* | ||||||
| + * This target marks packets to be enqueued to an imq device | + * 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_AUTHOR("http://www.linuximq.net"); | ||||||
| +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | ||||||
| +MODULE_LICENSE("GPL"); | +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.20-original/net/ipv6/netfilter/Kconfig	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/net/ipv6/netfilter/Kconfig	2006-12-01 14:05:46.000000000 +1030 | +++ linux-2.6.20/net/ipv6/netfilter/Kconfig	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/net/ipv6/netfilter/Kconfig	2006-12-04 12:41:01.000000000 +1030 | @@ -164,6 +164,15 @@ | ||||||
| @@ -163,6 +163,15 @@ |  | ||||||
|   |   | ||||||
|  	  To compile it as a module, choose M here.  If unsure, say N. |  	  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 |  config IP6_NF_TARGET_HL | ||||||
|  	tristate  'HL (hoplimit) target support' |  	tristate  'HL (hoplimit) target support' | ||||||
|  	depends on IP6_NF_MANGLE |  	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.20-original/net/ipv6/netfilter/Makefile	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/net/ipv6/netfilter/Makefile	2006-12-01 14:05:46.000000000 +1030 | +++ linux-2.6.20/net/ipv6/netfilter/Makefile	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/net/ipv6/netfilter/Makefile	2006-12-04 12:41:01.000000000 +1030 |  | ||||||
| @@ -13,6 +13,7 @@ | @@ -13,6 +13,7 @@ | ||||||
|  obj-$(CONFIG_IP6_NF_MATCH_OWNER) += ip6t_owner.o |  obj-$(CONFIG_IP6_NF_MATCH_OWNER) += ip6t_owner.o | ||||||
|  obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.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_TARGET_HL) += ip6t_HL.o | ||||||
|  obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o |  obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o | ||||||
|  obj-$(CONFIG_IP6_NF_TARGET_LOG) += ip6t_LOG.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.20-original/net/sched/sch_generic.c	2007-02-04 20:44:54.000000000 +0200 | ||||||
| --- linux-2.6.19/net/sched/sch_generic.c	2006-12-01 14:05:46.000000000 +1030 | +++ linux-2.6.20/net/sched/sch_generic.c	2007-02-12 23:55:04.000000000 +0200 | ||||||
| +++ linux-2.6.19+imq/net/sched/sch_generic.c	2006-12-05 23:08:54.000000000 +1030 |  | ||||||
| @@ -87,7 +87,6 @@ | @@ -87,7 +87,6 @@ | ||||||
|   |   | ||||||
|     NOTE: Called under dev->queue_lock with locally disabled BH. |     NOTE: Called under dev->queue_lock with locally disabled BH. | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -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 | 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.19.1.orig/include/linux/netfilter/xt_CHAOS.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/include/linux/netfilter/oot_conntrack.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 | +++ 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 @@ | @@ -0,0 +1,14 @@ | ||||||
| +#ifndef _LINUX_XT_CHAOS_H | +#ifndef _LINUX_XT_CHAOS_H | ||||||
| +#define _LINUX_XT_CHAOS_H 1 | +#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 */ | +#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 | 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.19.1.orig/include/linux/netfilter/xt_portscan.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/include/linux/netfilter/xt_portscan.h	2007-05-14 14:18:54.000000000 +0200 | ||||||
| @@ -0,0 +1,8 @@ | @@ -0,0 +1,8 @@ | ||||||
| +#ifndef _LINUX_XT_PORTSCAN_H | +#ifndef _LINUX_XT_PORTSCAN_H | ||||||
| +#define _LINUX_XT_PORTSCAN_H 1 | +#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 */ | +#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 | 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.19.1.orig/net/netfilter/find_match.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/net/netfilter/find_match.c	2007-05-14 14:18:54.000000000 +0200 | ||||||
| @@ -0,0 +1,37 @@ | @@ -0,0 +1,39 @@ | ||||||
| +/* | +/* | ||||||
| +    xt_request_find_match | +    xt_request_find_match | ||||||
| +    by Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007 | +    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 | +    it under the terms of the GNU General Public License version 2 as | ||||||
| +    published by the Free Software Foundation. | +    published by the Free Software Foundation. | ||||||
| +*/ | +*/ | ||||||
| + |  | ||||||
| +#include <linux/err.h> | +#include <linux/err.h> | ||||||
| +#include <linux/netfilter_arp.h> | +#include <linux/netfilter_arp.h> | ||||||
| +#include <linux/socket.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 | + * Yeah this code is sub-optimal, but the function is missing in | ||||||
| + * mainline so far. -jengelh | + * 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) | +    u8 revision) | ||||||
| +{ | +{ | ||||||
| +	static const char *const xt_prefix[] = { | +	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; | +	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 | +/* In case it goes into mainline, let this out-of-tree package compile */ | ||||||
| +++ linux-2.6.19.1/net/netfilter/Kconfig	2007-01-11 13:28:09.092097179 +0100 | +#define xt_request_find_match xt_request_find_match_lo | ||||||
| @@ -122,6 +122,14 @@ | 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 |  # 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 |  config NETFILTER_XT_TARGET_CLASSIFY | ||||||
|  	tristate '"CLASSIFY" target support' |  	tristate '"CLASSIFY" target support' | ||||||
|  	depends on NETFILTER_XTABLES |  	depends on NETFILTER_XTABLES | ||||||
| @@ -148,6 +156,14 @@ | @@ -315,6 +323,14 @@ | ||||||
|  	  <file:Documentation/modules.txt>.  The module will be called |  	  <file:Documentation/modules.txt>.  The module will be called | ||||||
|  	  ipt_CONNMARK.o.  If unsure, say `N'. |  	  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 |  config NETFILTER_XT_TARGET_DSCP | ||||||
|  	tristate '"DSCP" target support' |  	tristate '"DSCP" target support' | ||||||
|  	depends on NETFILTER_XTABLES |  	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. |  	  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 |  config NETFILTER_XT_MATCH_MULTIPORT | ||||||
|  	tristate "Multiple port match support" |  	tristate "Multiple port match support" | ||||||
|  	depends on NETFILTER_XTABLES |  	depends on NETFILTER_XTABLES | ||||||
| diff -ruN linux-2.6.19.1.orig/net/netfilter/Makefile linux-2.6.19.1/net/netfilter/Makefile | diff -Nur linux-2.6.21.1/net/netfilter/Makefile linux-2.6.21.1-owrt/net/netfilter/Makefile | ||||||
| --- linux-2.6.19.1.orig/net/netfilter/Makefile	2007-01-11 13:27:24.445577700 +0100 | --- linux-2.6.21.1/net/netfilter/Makefile	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux-2.6.19.1/net/netfilter/Makefile	2007-01-11 13:28:07.656144799 +0100 | +++ linux-2.6.21.1-owrt/net/netfilter/Makefile	2007-05-14 14:30:47.000000000 +0200 | ||||||
| @@ -23,8 +23,10 @@ | @@ -37,8 +37,10 @@ | ||||||
|  obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o |  obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o | ||||||
|   |   | ||||||
|  # targets |  # 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_DSCP) += xt_DSCP.o | ||||||
|  obj-$(CONFIG_NETFILTER_XT_TARGET_MARK) += xt_MARK.o |  obj-$(CONFIG_NETFILTER_XT_TARGET_MARK) += xt_MARK.o | ||||||
|  obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.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_MARK) += xt_mark.o | ||||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_MULTIPORT) += xt_multiport.o |  obj-$(CONFIG_NETFILTER_XT_MATCH_MULTIPORT) += xt_multiport.o | ||||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_POLICY) += xt_policy.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_PKTTYPE) += xt_pkttype.o | ||||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_QUOTA) += xt_quota.o |  obj-$(CONFIG_NETFILTER_XT_MATCH_QUOTA) += xt_quota.o | ||||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_REALM) += xt_realm.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 | 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.19.1.orig/net/netfilter/xt_CHAOS.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/net/netfilter/xt_CHAOS.c	2007-05-14 14:36:58.000000000 +0200 | ||||||
| @@ -0,0 +1,180 @@ | @@ -0,0 +1,204 @@ | ||||||
| +/* | +/* | ||||||
| +    CHAOS target for netfilter | +	CHAOS target for netfilter | ||||||
| + | + | ||||||
| +    Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007 | +	Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007 | ||||||
| +    released under the terms of the GNU General Public | +	This program is free software; you can redistribute it and/or modify | ||||||
| +    License version 2.x and only versions 2.x. | +	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/icmp.h> | ||||||
| +#include <linux/in.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 <net/ip.h> | ||||||
| +#include <linux/netfilter/xt_CHAOS.h> | +#include <linux/netfilter/xt_CHAOS.h> | ||||||
| +#include "find_match.c" | +#include "find_match.c" | ||||||
|  | +#include <linux/netfilter/oot_trans.h> | ||||||
| +#define PFX KBUILD_MODNAME ": " | +#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 */ | +/* Module parameters */ | ||||||
| +static unsigned int reject_percentage = ~0U * .01; | +static unsigned int reject_percentage = ~0U * .01; | ||||||
| +static unsigned int delude_percentage = ~0U * .0101; | +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_match *xm_tcp; | ||||||
| +static struct xt_target *xt_delude, *xt_reject, *xt_tarpit; | +static struct xt_target *xt_delude, *xt_reject, *xt_tarpit; | ||||||
| + | + | ||||||
|  | +static int have_delude, have_tarpit; | ||||||
|  | + | ||||||
| +/* Static data for other matches/targets */ | +/* Static data for other matches/targets */ | ||||||
| +static const struct ipt_reject_info reject_params = { | +static const struct ipt_reject_info reject_params = { | ||||||
| +	.with = ICMP_HOST_UNREACH, | +	.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: | +	/* Equivalent to: | ||||||
| +	 * -A chaos -m statistic --mode random --probability \ | +	 * -A chaos -m statistic --mode random --probability \ | ||||||
| +	 *         $reject_percentage -j REJECT --reject-with host-unreach; | +	 *         $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; | +	 *         $delude_percentage -j DELUDE; | ||||||
| +	 * -A chaos -j DROP; | +	 * -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; | +	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 = { | +static struct xt_target xt_chaos_info = { | ||||||
| +	.name       = "CHAOS", | +	.name       = "CHAOS", | ||||||
| +	.target     = xt_chaos_target, | +	.target     = xt_chaos_target, | ||||||
|  | +	.checkentry = xt_chaos_checkentry, | ||||||
| +	.table      = "filter", | +	.table      = "filter", | ||||||
| +	.targetsize = sizeof(struct xt_chaos_info), | +	.targetsize = sizeof(struct xt_chaos_info), | ||||||
| +	.hooks      = (1 << NF_IP_LOCAL_IN) | (1 << NF_IP_FORWARD) | | +	.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); | +	xm_tcp = xt_request_find_match(AF_INET, "tcp", 0); | ||||||
| +	if(xm_tcp == NULL) { | +	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; | +		return -EINVAL; | ||||||
| +	} | +	} | ||||||
| + | + | ||||||
| +	xt_reject = xt_request_find_target(AF_INET, "REJECT", 0); | +	xt_reject = xt_request_find_target(AF_INET, "REJECT", 0); | ||||||
| +	if(xt_reject == NULL) { | +	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; | +		goto out2; | ||||||
| +	} | +	} | ||||||
| + | + | ||||||
| +	xt_tarpit = xt_request_find_target(AF_INET, "TARPIT", 0); | +	xt_tarpit   = xt_request_find_target(AF_INET, "TARPIT", 0); | ||||||
| +	if(xt_tarpit == NULL) { | +	have_tarpit = xt_tarpit != NULL; | ||||||
| +		printk(KERN_WARNING PFX "Could not find \"TARPIT\" target\n"); | +	if(!have_tarpit) | ||||||
| +		goto out3; | +		printk(KERN_WARNING PFX "Warning: Could not find or load " | ||||||
| +	} | +		       "\"TARPIT\" target\n"); | ||||||
| + | + | ||||||
| +	xt_delude = xt_request_find_target(AF_INET, "DELUDE", 0); | +	xt_delude   = xt_request_find_target(AF_INET, "DELUDE", 0); | ||||||
| +	if(xt_delude == NULL) { | +	have_delude = xt_delude != NULL; | ||||||
| +		printk(KERN_WARNING PFX "Could not find \"DELUDE\" target\n"); | +	if(!have_delude) | ||||||
| +		goto out4; | +		printk(KERN_WARNING PFX "Warning: Could not find or load " | ||||||
| +	} | +		       "\"DELUDE\" target\n"); | ||||||
| + | + | ||||||
| +	if((ret = xt_register_target(&xt_chaos_info)) != 0) { | +	if((ret = xt_register_target(&xt_chaos_info)) != 0) { | ||||||
| +		printk(KERN_WARNING PFX "xt_register_target returned " | +		printk(KERN_WARNING PFX "xt_register_target returned " | ||||||
| +		       "error %d\n", ret); | +		       "error %d\n", ret); | ||||||
| +		goto out5; | +		goto out3; | ||||||
| +	} | +	} | ||||||
| + | + | ||||||
| +	return 0; | +	return 0; | ||||||
| + | + | ||||||
| + out5: |  | ||||||
| + 	module_put(xt_delude->me); |  | ||||||
| + out4: |  | ||||||
| +	module_put(xt_tarpit->me); |  | ||||||
| + out3: | + out3: | ||||||
|  | + 	if(have_delude) | ||||||
|  | + 		module_put(xt_delude->me); | ||||||
|  | +	if(have_tarpit) | ||||||
|  | +		module_put(xt_tarpit->me); | ||||||
| +	module_put(xt_reject->me); | +	module_put(xt_reject->me); | ||||||
| + out2: | + out2: | ||||||
| +	module_put(xm_tcp->me); | +	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); | +	xt_unregister_target(&xt_chaos_info); | ||||||
| +	module_put(xm_tcp->me); | +	module_put(xm_tcp->me); | ||||||
| +	module_put(xt_reject->me); | +	module_put(xt_reject->me); | ||||||
| +	module_put(xt_delude->me); | +	if(have_delude) | ||||||
| +	module_put(xt_tarpit->me); | +		module_put(xt_delude->me); | ||||||
|  | +	if(have_tarpit) | ||||||
|  | +		module_put(xt_tarpit->me); | ||||||
| +	return; | +	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_DESCRIPTION("netfilter CHAOS target"); | ||||||
| +MODULE_LICENSE("GPL"); | +MODULE_LICENSE("GPL"); | ||||||
| +MODULE_ALIAS("ipt_CHAOS"); | +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 | 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.19.1.orig/net/netfilter/xt_DELUDE.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/net/netfilter/xt_DELUDE.c	2007-05-14 14:53:12.000000000 +0200 | ||||||
| @@ -0,0 +1,265 @@ | @@ -0,0 +1,288 @@ | ||||||
| +/* | +/* | ||||||
| +    DELUDE target | +	DELUDE target | ||||||
| +    Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2007 | +	Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2007 | ||||||
| + | + | ||||||
| +    Based upon linux-2.6.18.5/net/ipv4/netfilter/ipt_REJECT.c: | +	Based upon linux-2.6.18.5/net/ipv4/netfilter/ipt_REJECT.c: | ||||||
| +    (C) 1999-2001 Paul `Rusty' Russell | +	(C) 1999-2001 Paul `Rusty' Russell | ||||||
| +    (C) 2002-2004 Netfilter Core Team <coreteam@netfilter.org> | +	(C) 2002-2004 Netfilter Core Team <coreteam@netfilter.org> | ||||||
| + | + | ||||||
| +    This program is free software; you can redistribute it and/or modify | +	xt_DELUDE acts like REJECT, but does reply with SYN-ACK on SYN. | ||||||
| +    it under the terms of the GNU General Public License version 2 as | + | ||||||
| +    published by the Free Software Foundation. | +	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/module.h> | ||||||
| +#include <linux/skbuff.h> | +#include <linux/skbuff.h> | ||||||
| +#include <linux/ip.h> | +#include <linux/ip.h> | ||||||
|  | +#include <linux/random.h> | ||||||
| +#include <linux/tcp.h> | +#include <linux/tcp.h> | ||||||
| +#include <linux/udp.h> | +#include <linux/udp.h> | ||||||
| +#include <linux/icmp.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 <net/dst.h> | ||||||
| +#include <linux/netfilter_ipv4/ip_tables.h> | +#include <linux/netfilter_ipv4/ip_tables.h> | ||||||
| +#ifdef CONFIG_BRIDGE_NETFILTER | +#ifdef CONFIG_BRIDGE_NETFILTER | ||||||
| +#include <linux/netfilter_bridge.h> | +#	include <linux/netfilter_bridge.h> | ||||||
| +#endif | +#endif | ||||||
|  | +#include <linux/netfilter/oot_trans.h> | ||||||
| +#define PFX KBUILD_MODNAME ": " | +#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, | +static inline struct rtable *route_reverse(struct sk_buff *skb, | ||||||
| +					   struct tcphdr *tcph, int hook) | +					   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 sk_buff *nskb; | ||||||
| +	struct iphdr *iph = oldskb->nh.iph; | +	struct iphdr *iph = oldskb->nh.iph; | ||||||
| +	struct tcphdr _otcph, *oth, *tcph; | +	struct tcphdr _otcph, *oth, *tcph; | ||||||
| +	struct rtable *rt; | +	__be16 tmp_port; | ||||||
| +	u_int16_t tmp_port; | +	__be32 tmp_addr; | ||||||
| +	u_int32_t tmp_addr; | +	int needs_ack; | ||||||
| +	int hh_len; | +	unsigned int addr_type; | ||||||
| + | + | ||||||
| +	/* IP header checks: fragment. */ | +	/* IP header checks: fragment. */ | ||||||
| +	if (oldskb->nh.iph->frag_off & htons(IP_OFFSET)) | +	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, | +	oth = skb_header_pointer(oldskb, oldskb->nh.iph->ihl * 4, | ||||||
| +				 sizeof(_otcph), &_otcph); | +				 sizeof(_otcph), &_otcph); | ||||||
| +	if (oth == NULL) | +	if (oth == NULL) | ||||||
| + 		return; | +		return; | ||||||
| + | + | ||||||
| +	/* DELUDE only answers SYN. */ | +	/* No RST for RST. */ | ||||||
| +	if(!oth->syn || oth->ack || oth->fin || oth->rst) | +	if (oth->rst) | ||||||
| +		return; | +		return; | ||||||
| + | + | ||||||
| +	/* Check checksum */ | +	/* Check checksum */ | ||||||
| +	if (nf_ip_checksum(oldskb, hook, iph->ihl * 4, IPPROTO_TCP)) | +	if (nf_ip_checksum(oldskb, hook, iph->ihl * 4, IPPROTO_TCP)) | ||||||
| +		return; | +		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 | +	/* We need a linear, writeable skb.  We also need to expand | ||||||
| +	   headroom in case hh_len of incoming interface < hh_len of | +	   headroom in case hh_len of incoming interface < hh_len of | ||||||
| +	   outgoing interface */ | +	   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); | +			       GFP_ATOMIC); | ||||||
| +	if (!nskb) { | +	if (!nskb) | ||||||
| +		dst_release(&rt->u.dst); |  | ||||||
| +		return; | +		return; | ||||||
| +	} |  | ||||||
| + |  | ||||||
| +	dst_release(nskb->dst); |  | ||||||
| +	nskb->dst = &rt->u.dst; |  | ||||||
| + | + | ||||||
| +	/* This packet will not be the same as the other: clear nf fields */ | +	/* This packet will not be the same as the other: clear nf fields */ | ||||||
| +	nf_reset(nskb); | +	nf_reset(nskb); | ||||||
| +	nskb->nfmark = 0; | +	nskb->nfmark = 0; | ||||||
| +	skb_init_secmark(nskb); | +	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); | +	tcph = (struct tcphdr *)((u_int32_t*)nskb->nh.iph + nskb->nh.iph->ihl); | ||||||
| + | + | ||||||
| +	/* Swap source and dest */ | +	/* 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)); | +	skb_trim(nskb, nskb->nh.iph->ihl*4 + sizeof(struct tcphdr)); | ||||||
| +	nskb->nh.iph->tot_len = htons(nskb->len); | +	nskb->nh.iph->tot_len = htons(nskb->len); | ||||||
| + | + | ||||||
| +	tcph->seq = oth->ack_seq; | +	if(oth->syn && !oth->ack && !oth->rst && !oth->fin) { | ||||||
| +	tcph->ack_seq = 0; | +		/* 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->window = 0; | ||||||
| +	tcph->urg_ptr = 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, | +				   csum_partial((char *)tcph, | ||||||
| +						sizeof(struct tcphdr), 0)); | +						sizeof(struct tcphdr), 0)); | ||||||
| + | + | ||||||
| +	/* Adjust IP TTL, DF */ |  | ||||||
| +	nskb->nh.iph->ttl = dst_metric(nskb->dst, RTAX_HOPLIMIT); |  | ||||||
| +	/* Set DF, id = 0 */ | +	/* Set DF, id = 0 */ | ||||||
| +	nskb->nh.iph->frag_off = htons(IP_DF); | +	nskb->nh.iph->frag_off = htons(IP_DF); | ||||||
| +	nskb->nh.iph->id = 0; | +	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 */ | +	/* Adjust IP checksum */ | ||||||
| +	nskb->nh.iph->check = 0; | +	nskb->nh.iph->check = 0; | ||||||
| +	nskb->nh.iph->check = ip_fast_csum((unsigned char *)nskb->nh.iph, | +	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: | + free_nskb: | ||||||
| +	kfree_skb(nskb); | +	kfree_skb(nskb); | ||||||
| +	return; |  | ||||||
| +} | +} | ||||||
| + | + | ||||||
| +static unsigned int xt_delude_target(struct sk_buff **pskb, | +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_init(xt_delude_init); | ||||||
| +module_exit(xt_delude_exit); | +module_exit(xt_delude_exit); | ||||||
| +MODULE_LICENSE("GPL"); |  | ||||||
| +MODULE_AUTHOR("Jan Engelhardt <jengelh@gmx.de>"); | +MODULE_AUTHOR("Jan Engelhardt <jengelh@gmx.de>"); | ||||||
| +MODULE_DESCRIPTION("netfilter DELUDE target"); | +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 | +MODULE_LICENSE("GPL"); | ||||||
| --- linux-2.6.19.1.orig/net/netfilter/xt_portscan.c	1970-01-01 01:00:00.000000000 +0100 | +MODULE_ALIAS("ipt_DELUDE"); | ||||||
| +++ linux-2.6.19.1/net/netfilter/xt_portscan.c	2007-01-11 13:28:14.407920893 +0100 | diff -Nur linux-2.6.21.1/net/netfilter/xt_portscan.c linux-2.6.21.1-owrt/net/netfilter/xt_portscan.c | ||||||
| @@ -0,0 +1,282 @@ | --- 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 | +	Written by Jan Engelhardt, 2006 - 2007 | ||||||
| +    released under the terms of the GNU General Public | +	This program is free software; you can redistribute it and/or modify | ||||||
| +    License version 2.x and only versions 2.x. | +	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/in.h> | ||||||
| +#include <linux/ip.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/version.h> | ||||||
| +#include <linux/netfilter/x_tables.h> | +#include <linux/netfilter/x_tables.h> | ||||||
| +#include <linux/netfilter/xt_tcpudp.h> | +#include <linux/netfilter/xt_tcpudp.h> | ||||||
| +#if defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE) | +#include <linux/netfilter/oot_conntrack.h> | ||||||
| +#    include <linux/netfilter_ipv4/ip_conntrack.h> |  | ||||||
| +#else /* linux-2.6.20+ */ |  | ||||||
| +#    include <net/netfilter/nf_nat_rule.h> |  | ||||||
| +#endif |  | ||||||
| +#include <linux/netfilter/xt_portscan.h> | +#include <linux/netfilter/xt_portscan.h> | ||||||
|  | +#include <linux/netfilter/oot_trans.h> | ||||||
| +#define PFX KBUILD_MODNAME ": " | +#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 { | +enum { | ||||||
| +	TCP_FLAGS_ALL3 = TCP_FLAG_FIN | TCP_FLAG_RST | TCP_FLAG_SYN, | +	TCP_FLAGS_ALL3 = TCP_FLAG_FIN | TCP_FLAG_RST | TCP_FLAG_SYN, | ||||||
| +	TCP_FLAGS_ALL4 = TCP_FLAGS_ALL3 | TCP_FLAG_ACK, | +	TCP_FLAGS_ALL4 = TCP_FLAGS_ALL3 | TCP_FLAG_ACK, | ||||||
|   | |||||||
| @@ -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 | diff -Naur linux-2.6.20.orig/include/linux/pkt_sched.h linux-2.6.20/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.20.orig/include/linux/pkt_sched.h	2007-02-04 10:44:54.000000000 -0800 | ||||||
| +++ linux-2.6.19.dev/include/linux/pkt_sched.h	2006-12-14 03:13:51.000000000 +0100 | +++ linux-2.6.20/include/linux/pkt_sched.h	2007-02-14 23:58:41.000000000 -0800 | ||||||
| @@ -146,8 +146,35 @@ | @@ -146,8 +146,40 @@ | ||||||
|   * |   * | ||||||
|   *	The only reason for this is efficiency, it is possible |   *	The only reason for this is efficiency, it is possible | ||||||
|   *	to change these parameters in compile time. |   *	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_DSTDIR, | ||||||
| +	TCA_SFQ_HASH_SRCDIR, | +	TCA_SFQ_HASH_SRCDIR, | ||||||
| +	TCA_SFQ_HASH_FWMARKDIR, | +	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 | +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 */ |  /* RED section */ | ||||||
|   |   | ||||||
|  enum |  enum | ||||||
| diff -urN linux-2.6.19.old/net/sched/Kconfig linux-2.6.19.dev/net/sched/Kconfig | diff -Naur linux-2.6.20.orig/net/sched/Kconfig linux-2.6.20/net/sched/Kconfig | ||||||
| --- linux-2.6.19.old/net/sched/Kconfig	2006-11-29 22:57:37.000000000 +0100 | --- linux-2.6.20.orig/net/sched/Kconfig	2007-02-04 10:44:54.000000000 -0800 | ||||||
| +++ linux-2.6.19.dev/net/sched/Kconfig	2006-12-14 03:13:51.000000000 +0100 | +++ linux-2.6.20/net/sched/Kconfig	2007-02-14 23:58:41.000000000 -0800 | ||||||
| @@ -185,6 +185,28 @@ | @@ -189,6 +189,26 @@ | ||||||
|  	  To compile this code as a module, choose M here: the |  	  To compile this code as a module, choose M here: the | ||||||
|  	  module will be called sch_sfq. |  	  module will be called sch_sfq. | ||||||
|   |   | ||||||
| +config NET_SCH_ESFQ | +config NET_SCH_ESFQ | ||||||
| +	tristate "ESFQ queue" | +	tristate "Enhanced Stochastic Fairness Queueing (ESFQ)" | ||||||
| +	depends on NET_SCHED |  | ||||||
| +	---help--- | +	---help--- | ||||||
| +	  Say Y here if you want to use the Enhanced Stochastic Fairness | +	  Say Y here if you want to use the Enhanced Stochastic Fairness | ||||||
| +	  Queueing (ESFQ) packet scheduling algorithm for some of your network | +	  Queueing (ESFQ) packet scheduling algorithm for some of your network | ||||||
| +	  devices or as a leaf discipline for a classful qdisc such as HTB or | +	  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 | +	  CBQ (see the top of <file:net/sched/sch_esfq.c> for details and | ||||||
| +	  references to the SFQ algorithm). | +	  references to the SFQ algorithm). | ||||||
| +	   | + | ||||||
| +	  This is an enchanced SFQ version which allows you to control some | +	  This is an enchanced SFQ version which allows you to control some | ||||||
| +	  hardcoded values in the SFQ scheduler: queue depth, hash table size, | +	  hardcoded values in the SFQ scheduler. | ||||||
| +	  and queues limit. | + | ||||||
| +	   | +	  ESFQ also adds control of the hash function used to identify packet | ||||||
| +	  ESFQ also adds control to the hash function used to identify packet | +	  flows. The original SFQ discipline hashes by connection; ESFQ add | ||||||
| +	  flows. The original SFQ hashes by individual flow (TCP session or UDP | +	  several other hashing methods, such as by src IP or by dst IP, which | ||||||
| +	  stream); ESFQ can hash by src or dst IP as well, which can be more | +	  can be more fair to users in some networking situations. | ||||||
| +	  fair to users in some networking situations. |  | ||||||
| +	   | +	   | ||||||
| +	  To compile this code as a module, choose M here: the | +	  To compile this code as a module, choose M here: the | ||||||
| +	  module will be called sch_esfq. | +	  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 |  config NET_SCH_TEQL | ||||||
|  	tristate "True Link Equalizer (TEQL)" |  	tristate "True Link Equalizer (TEQL)" | ||||||
|  	---help--- |  	---help--- | ||||||
| diff -urN linux-2.6.19.old/net/sched/Makefile linux-2.6.19.dev/net/sched/Makefile | diff -Naur linux-2.6.20.orig/net/sched/Makefile linux-2.6.20/net/sched/Makefile | ||||||
| --- linux-2.6.19.old/net/sched/Makefile	2006-11-29 22:57:37.000000000 +0100 | --- linux-2.6.20.orig/net/sched/Makefile	2007-02-04 10:44:54.000000000 -0800 | ||||||
| +++ linux-2.6.19.dev/net/sched/Makefile	2006-12-14 03:13:51.000000000 +0100 | +++ linux-2.6.20/net/sched/Makefile	2007-02-14 23:58:41.000000000 -0800 | ||||||
| @@ -23,6 +23,7 @@ | @@ -24,6 +24,7 @@ | ||||||
|  obj-$(CONFIG_NET_SCH_INGRESS)	+= sch_ingress.o  |  obj-$(CONFIG_NET_SCH_INGRESS)	+= sch_ingress.o  | ||||||
|  obj-$(CONFIG_NET_SCH_DSMARK)	+= sch_dsmark.o |  obj-$(CONFIG_NET_SCH_DSMARK)	+= sch_dsmark.o | ||||||
|  obj-$(CONFIG_NET_SCH_SFQ)	+= sch_sfq.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_TBF)	+= sch_tbf.o | ||||||
|  obj-$(CONFIG_NET_SCH_TEQL)	+= sch_teql.o |  obj-$(CONFIG_NET_SCH_TEQL)	+= sch_teql.o | ||||||
|  obj-$(CONFIG_NET_SCH_PRIO)	+= sch_prio.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 | diff -Naur linux-2.6.20.orig/net/sched/sch_esfq.c linux-2.6.20/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.20.orig/net/sched/sch_esfq.c	1969-12-31 16:00:00.000000000 -0800 | ||||||
| +++ linux-2.6.19.dev/net/sched/sch_esfq.c	2006-12-14 03:13:51.000000000 +0100 | +++ linux-2.6.20/net/sched/sch_esfq.c	2007-02-15 00:19:56.000000000 -0800 | ||||||
| @@ -0,0 +1,644 @@ | @@ -0,0 +1,704 @@ | ||||||
| +/* | +/* | ||||||
| + * net/sched/sch_esfq.c	Extended Stochastic Fairness Queueing discipline. | + * 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, <bugfood-c@fatooh.org> | + * 		Corey Hickey, <bugfood-c@fatooh.org> | ||||||
| + *		Maintenance of the Linux 2.6 port. | + *		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 direct hashing for src, dst, and fwmark. | ||||||
|  | + *		Added usage of jhash. | ||||||
| + *		 | + *		 | ||||||
| + */ | + */ | ||||||
| + | + | ||||||
| +#include <linux/autoconf.h> |  | ||||||
| +#include <linux/module.h> | +#include <linux/module.h> | ||||||
| +#include <asm/uaccess.h> | +#include <asm/uaccess.h> | ||||||
| +#include <asm/system.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 <linux/skbuff.h> | ||||||
| +#include <net/sock.h> | +#include <net/sock.h> | ||||||
| +#include <net/pkt_sched.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. | +/*	Stochastic Fairness Queuing algorithm. | ||||||
| +	For more comments look at sch_sfq.c. | +	For more comments look at sch_sfq.c. | ||||||
| +	The difference is that you can change limit, depth, | +	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 | +	classic:	same as in sch_sfq.c | ||||||
| +	dst:		destination IP address | +	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: | +	dst_direct: | ||||||
| +	src_direct: | +	src_direct: | ||||||
| +	fwmark_direct:  direct hashing of the above sources | +	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 */ | +	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; | +	u32	proto;		/* protocol or port */ | ||||||
| + | +	u32	src;		/* source from packet header */ | ||||||
| +	if (pert) | +	u32	dst;		/* destination from packet header */ | ||||||
| +		h = (h<<pert) ^ (h>>(0x1F - pert)); | +	u32	ctorigsrc;	/* original source from conntrack */ | ||||||
| + | +	u32	ctorigdst;	/* original destination from conntrack */ | ||||||
| +	h = ntohl(h) * 2654435761UL; | +	u32	ctreplsrc;	/* reply source from conntrack */ | ||||||
| +	return h & (q->hash_divisor-1); | +	u32	ctrepldst;	/* reply destination from conntrack */ | ||||||
| +} | +	u32	mark;		/* netfilter mark (fwmark) */ | ||||||
|  | +}; | ||||||
| + | + | ||||||
| +/* Hash input values directly into the "nearest" slot, taking into account the | +/* 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 | + * 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) | +static __inline__ unsigned esfq_hash_direct(struct esfq_sched_data *q, u32 h) | ||||||
| +{ | +{ | ||||||
| +	/* adjust minimum and maximum */ | +	/* 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; | +		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 __inline__ unsigned esfq_jhash_3words(struct esfq_sched_data *q, u32 a, u32 b, u32 c) | ||||||
|  | +{ | ||||||
|  | +	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) | +static unsigned esfq_hash(struct esfq_sched_data *q, struct sk_buff *skb) | ||||||
| +{ | +{ | ||||||
| +	u32 h, h2; | +	struct esfq_packet_info info; | ||||||
| +	u32 hs; | +#ifdef CONFIG_NF_CONNTRACK_ENABLED | ||||||
| +	u32 nfm; | +	enum ip_conntrack_info ctinfo; | ||||||
| + | +	struct nf_conn *ct = nf_ct_get(skb, &ctinfo); | ||||||
|  | +#endif | ||||||
|  | +	 | ||||||
| +	switch (skb->protocol) { | +	switch (skb->protocol) { | ||||||
| +	case __constant_htons(ETH_P_IP): | +	case __constant_htons(ETH_P_IP): | ||||||
| +	{ | +	{ | ||||||
| +		struct iphdr *iph = skb->nh.iph; | +		struct iphdr *iph = skb->nh.iph; | ||||||
| +		h = iph->daddr; | +		info.dst = iph->daddr; | ||||||
| +		hs = iph->saddr; | +		info.src = iph->saddr; | ||||||
| +		nfm = skb->nfmark; |  | ||||||
| +		h2 = hs^iph->protocol; |  | ||||||
| +		if (!(iph->frag_off&htons(IP_MF|IP_OFFSET)) && | +		if (!(iph->frag_off&htons(IP_MF|IP_OFFSET)) && | ||||||
| +		    (iph->protocol == IPPROTO_TCP || | +		    (iph->protocol == IPPROTO_TCP || | ||||||
| +		     iph->protocol == IPPROTO_UDP || | +		     iph->protocol == IPPROTO_UDP || | ||||||
| +		     iph->protocol == IPPROTO_SCTP || | +		     iph->protocol == IPPROTO_SCTP || | ||||||
| +		     iph->protocol == IPPROTO_DCCP || | +		     iph->protocol == IPPROTO_DCCP || | ||||||
| +		     iph->protocol == IPPROTO_ESP)) | +		     iph->protocol == IPPROTO_ESP)) | ||||||
| +			h2 ^= *(((u32*)iph) + iph->ihl); | +			info.proto = *(((u32*)iph) + iph->ihl); | ||||||
|  | +		else | ||||||
|  | +			info.proto = iph->protocol; | ||||||
| +		break; | +		break; | ||||||
| +	} | +	} | ||||||
| +	case __constant_htons(ETH_P_IPV6): | +	case __constant_htons(ETH_P_IPV6): | ||||||
| +	{ | +	{ | ||||||
| +		struct ipv6hdr *iph = skb->nh.ipv6h; | +		struct ipv6hdr *iph = skb->nh.ipv6h; | ||||||
| +		h = iph->daddr.s6_addr32[3]; | +		/* Hash ipv6 addresses into a u32. This isn't ideal, | ||||||
| +		hs = iph->saddr.s6_addr32[3]; | +		 * but the code is simple. */ | ||||||
| +		nfm = skb->nfmark; | +		info.dst = jhash2(iph->daddr.s6_addr32, 4, q->perturbation); | ||||||
| +		h2 = hs^iph->nexthdr; | +		info.src = jhash2(iph->saddr.s6_addr32, 4, q->perturbation); | ||||||
| +		if (iph->nexthdr == IPPROTO_TCP || | +		if (iph->nexthdr == IPPROTO_TCP || | ||||||
| +		    iph->nexthdr == IPPROTO_UDP || | +		    iph->nexthdr == IPPROTO_UDP || | ||||||
| +		    iph->nexthdr == IPPROTO_SCTP || | +		    iph->nexthdr == IPPROTO_SCTP || | ||||||
| +		    iph->nexthdr == IPPROTO_DCCP || | +		    iph->nexthdr == IPPROTO_DCCP || | ||||||
| +		    iph->nexthdr == IPPROTO_ESP) | +		    iph->nexthdr == IPPROTO_ESP) | ||||||
| +			h2 ^= *(u32*)&iph[1]; | +			info.proto = *(u32*)&iph[1]; | ||||||
|  | +		else | ||||||
|  | +			info.proto = iph->nexthdr; | ||||||
| +		break; | +		break; | ||||||
| +	} | +	} | ||||||
| +	default: | +	default: | ||||||
| +		h = (u32)(unsigned long)skb->dst; | +		info.dst   = (u32)(unsigned long)skb->dst; | ||||||
| +		hs = (u32)(unsigned long)skb->sk; | +		info.src   = (u32)(unsigned long)skb->sk; | ||||||
| +		nfm = skb->nfmark; | +		info.proto = skb->protocol; | ||||||
| +		h2 = hs^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) | +	switch(q->hash_kind) | ||||||
| +	{ | +	{ | ||||||
| +	case TCA_SFQ_HASH_CLASSIC: | +	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: | +	case TCA_SFQ_HASH_DST: | ||||||
| +		return esfq_hash_u32(q,h); | +		return esfq_jhash_1word(q, info.dst); | ||||||
| +	case TCA_SFQ_HASH_DSTDIR: | +	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: | +	case TCA_SFQ_HASH_SRC: | ||||||
| +		return esfq_hash_u32(q,hs); | +		return esfq_jhash_1word(q, info.src); | ||||||
| +	case TCA_SFQ_HASH_SRCDIR: | +	case TCA_SFQ_HASH_SRCDIR: | ||||||
| +		return esfq_hash_direct(q, ntohl(hs)); | +		return esfq_hash_direct(q, ntohl(info.src)); | ||||||
| +#ifdef CONFIG_NETFILTER |  | ||||||
| +	case TCA_SFQ_HASH_FWMARK: | +	case TCA_SFQ_HASH_FWMARK: | ||||||
| +		return esfq_hash_u32(q,nfm); | +		return esfq_jhash_1word(q, info.mark); | ||||||
| +	case TCA_SFQ_HASH_FWMARKDIR: | +	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 | +#endif | ||||||
| +	default: | +	default: | ||||||
| +		if (net_ratelimit()) | +		if (net_ratelimit()) | ||||||
| +			printk(KERN_WARNING "ESFQ: Unknown hash method. Falling back to classic.\n"); | +			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) | +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); | +		esfq_dec(q, x); | ||||||
| +		sch->q.qlen--; | +		sch->q.qlen--; | ||||||
| +		sch->qstats.drops++; | +		sch->qstats.drops++; | ||||||
|  | +		sch->qstats.backlog -= len; | ||||||
| +		return 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--; | +		sch->q.qlen--; | ||||||
| +		q->ht[q->hash[d]] = q->depth; | +		q->ht[q->hash[d]] = q->depth; | ||||||
| +		sch->qstats.drops++; | +		sch->qstats.drops++; | ||||||
|  | +		sch->qstats.backlog -= len; | ||||||
| +		return 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->ht[hash] = x = q->dep[depth].next; | ||||||
| +		q->hash[x] = hash; | +		q->hash[x] = hash; | ||||||
| +	} | +	} | ||||||
|  | +	sch->qstats.backlog += skb->len; | ||||||
| +	__skb_queue_tail(&q->qs[x], skb); | +	__skb_queue_tail(&q->qs[x], skb); | ||||||
| +	esfq_inc(q, x); | +	esfq_inc(q, x); | ||||||
| +	if (q->qs[x].qlen == 1) {		/* The flow is new */ | +	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->ht[hash] = x = q->dep[depth].next; | ||||||
| +		q->hash[x] = hash; | +		q->hash[x] = hash; | ||||||
| +	} | +	} | ||||||
|  | +	sch->qstats.backlog += skb->len; | ||||||
| +	__skb_queue_head(&q->qs[x], skb); | +	__skb_queue_head(&q->qs[x], skb); | ||||||
| +	esfq_inc(q, x); | +	esfq_inc(q, x); | ||||||
| +	if (q->qs[x].qlen == 1) {		/* The flow is new */ | +	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]); | +	skb = __skb_dequeue(&q->qs[a]); | ||||||
| +	esfq_dec(q, a); | +	esfq_dec(q, a); | ||||||
| +	sch->q.qlen--; | +	sch->q.qlen--; | ||||||
|  | +	sch->qstats.backlog -= skb->len; | ||||||
| +	 | +	 | ||||||
| +	/* Is the slot empty? */ | +	/* Is the slot empty? */ | ||||||
| +	if (q->qs[a].qlen == 0) { | +	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) { | +	if (ctl->hash_kind) { | ||||||
| +		q->hash_kind = 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; | +			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 esfq_sched_data *q = qdisc_priv(sch); | ||||||
| +	struct tc_esfq_qopt *ctl; | +	struct tc_esfq_qopt *ctl; | ||||||
| +	esfq_index p = ~0UL/2; | +	esfq_index p = ~0U/2; | ||||||
| +	int i; | +	int i; | ||||||
| +	 | +	 | ||||||
| +	if (opt && opt->rta_len < RTA_LENGTH(sizeof(*ctl))) | +	if (opt && opt->rta_len < RTA_LENGTH(sizeof(*ctl))) | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,26 +1,26 @@ | |||||||
| diff -urN linux.old/fs/Kconfig linux.dev/fs/Kconfig | diff -Nur linux-2.6.21.1/fs/Kconfig linux-2.6.21.1-owrt/fs/Kconfig | ||||||
| --- linux.old/fs/Kconfig	2006-11-29 22:57:37.000000000 +0100 | --- linux-2.6.21.1/fs/Kconfig	2007-05-14 10:49:47.000000000 +0200 | ||||||
| +++ linux.dev/fs/Kconfig	2006-12-14 04:21:47.000000000 +0100 | +++ linux-2.6.21.1-owrt/fs/Kconfig	2007-05-14 11:53:15.000000000 +0200 | ||||||
| @@ -1202,6 +1202,8 @@ | @@ -1189,6 +1189,8 @@ | ||||||
|  	  To compile the EFS file system support as a module, choose M here: the |  	  To compile the EFS file system support as a module, choose M here: the | ||||||
|  	  module will be called efs. |  	  module will be called efs. | ||||||
|   |   | ||||||
| +source "fs/yaffs2/Kconfig" | +source "fs/yaffs2/Kconfig" | ||||||
| + | + | ||||||
|  config JFFS_FS |  config JFFS2_FS | ||||||
|  	tristate "Journalling Flash File System (JFFS) support" |  	tristate "Journalling Flash File System v2 (JFFS2) support" | ||||||
|  	depends on MTD && BLOCK |  	select CRC32 | ||||||
| diff -urN linux.old/fs/Makefile linux.dev/fs/Makefile | diff -Nur linux-2.6.21.1/fs/Makefile linux-2.6.21.1-owrt/fs/Makefile | ||||||
| --- linux.old/fs/Makefile	2006-11-29 22:57:37.000000000 +0100 | --- linux-2.6.21.1/fs/Makefile	2007-05-14 10:49:47.000000000 +0200 | ||||||
| +++ linux.dev/fs/Makefile	2006-12-14 04:21:47.000000000 +0100 | +++ linux-2.6.21.1-owrt/fs/Makefile	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -114,3 +114,4 @@ | @@ -115,3 +115,4 @@ | ||||||
|  obj-$(CONFIG_DEBUG_FS)		+= debugfs/ |  obj-$(CONFIG_DEBUG_FS)		+= debugfs/ | ||||||
|  obj-$(CONFIG_OCFS2_FS)		+= ocfs2/ |  obj-$(CONFIG_OCFS2_FS)		+= ocfs2/ | ||||||
|  obj-$(CONFIG_GFS2_FS)           += gfs2/ |  obj-$(CONFIG_GFS2_FS)           += gfs2/ | ||||||
| +obj-$(CONFIG_YAFFS_FS)		+= yaffs2/ | +obj-$(CONFIG_YAFFS_FS)		+= yaffs2/ | ||||||
| diff -urN linux.old/fs/yaffs2/devextras.h linux.dev/fs/yaffs2/devextras.h | diff -Nur linux-2.6.21.1/fs/yaffs2/devextras.h linux-2.6.21.1-owrt/fs/yaffs2/devextras.h | ||||||
| --- linux.old/fs/yaffs2/devextras.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/devextras.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,265 @@ | @@ -0,0 +1,265 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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 | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/Kconfig linux.dev/fs/yaffs2/Kconfig | diff -Nur linux-2.6.21.1/fs/yaffs2/Kconfig linux-2.6.21.1-owrt/fs/yaffs2/Kconfig | ||||||
| --- linux.old/fs/yaffs2/Kconfig	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/fs/yaffs2/Kconfig	1970-01-01 01:00:00.000000000 +0100 | ||||||
| +++ linux.dev/fs/yaffs2/Kconfig	2006-12-14 04:21:47.000000000 +0100 | +++ linux-2.6.21.1-owrt/fs/yaffs2/Kconfig	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,135 @@ | @@ -0,0 +1,135 @@ | ||||||
| +# | +# | ||||||
| +# YAFFS file system configurations | +# 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. | +	  but makes look-ups faster. | ||||||
| + | + | ||||||
| +	  If unsure, say Y. | +	  If unsure, say Y. | ||||||
| diff -urN linux.old/fs/yaffs2/Makefile linux.dev/fs/yaffs2/Makefile | diff -Nur linux-2.6.21.1/fs/yaffs2/Makefile linux-2.6.21.1-owrt/fs/yaffs2/Makefile | ||||||
| --- linux.old/fs/yaffs2/Makefile	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/fs/yaffs2/Makefile	1970-01-01 01:00:00.000000000 +0100 | ||||||
| +++ linux.dev/fs/yaffs2/Makefile	2006-12-14 04:21:47.000000000 +0100 | +++ linux-2.6.21.1-owrt/fs/yaffs2/Makefile	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,10 @@ | @@ -0,0 +1,10 @@ | ||||||
| +# | +# | ||||||
| +# Makefile for the linux YAFFS filesystem routines. | +# 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_packedtags2.o yaffs_nand.o yaffs_qsort.o | ||||||
| +yaffs-y += yaffs_tagscompat.o yaffs_tagsvalidity.o | +yaffs-y += yaffs_tagscompat.o yaffs_tagsvalidity.o | ||||||
| +yaffs-y += yaffs_mtdif.o yaffs_mtdif2.o | +yaffs-y += yaffs_mtdif.o yaffs_mtdif2.o | ||||||
| diff -urN linux.old/fs/yaffs2/moduleconfig.h linux.dev/fs/yaffs2/moduleconfig.h | diff -Nur linux-2.6.21.1/fs/yaffs2/moduleconfig.h linux-2.6.21.1-owrt/fs/yaffs2/moduleconfig.h | ||||||
| --- linux.old/fs/yaffs2/moduleconfig.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/moduleconfig.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,32 @@ | @@ -0,0 +1,32 @@ | ||||||
| +#ifndef __YAFFS_CONFIG_H__ | +#ifndef __YAFFS_CONFIG_H__ | ||||||
| +#define __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_OUT_OF_TREE */ | ||||||
| + | + | ||||||
| +#endif /* __YAFFS_CONFIG_H__ */ | +#endif /* __YAFFS_CONFIG_H__ */ | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.c linux.dev/fs/yaffs2/yaffs_checkptrw.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_checkptrw.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,384 @@ | @@ -0,0 +1,384 @@ | ||||||
| +/* YAFFS: Yet another FFS. A NAND-flash specific file system.  | +/* 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 | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_checkptrw.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,18 @@ | @@ -0,0 +1,18 @@ | ||||||
| +#ifndef __YAFFS_CHECKPTRW_H__ | +#ifndef __YAFFS_CHECKPTRW_H__ | ||||||
| +#define __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 | +#endif | ||||||
| + | + | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_ecc.c linux.dev/fs/yaffs2/yaffs_ecc.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_ecc.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_ecc.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,333 @@ | @@ -0,0 +1,333 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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 | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_ecc.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_ecc.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,44 @@ | @@ -0,0 +1,44 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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, | +			  yaffs_ECCOther * read_ecc, | ||||||
| +			  const yaffs_ECCOther * test_ecc); | +			  const yaffs_ECCOther * test_ecc); | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_fs.c linux.dev/fs/yaffs2/yaffs_fs.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_fs.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_fs.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_fs.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_fs.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,2136 @@ | @@ -0,0 +1,2136 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | + * 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_DESCRIPTION("YAFFS2 - a NAND specific flash file system"); | ||||||
| +MODULE_AUTHOR("Charles Manning, Aleph One Ltd., 2002-2006"); | +MODULE_AUTHOR("Charles Manning, Aleph One Ltd., 2002-2006"); | ||||||
| +MODULE_LICENSE("GPL"); | +MODULE_LICENSE("GPL"); | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_guts.c linux.dev/fs/yaffs2/yaffs_guts.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_guts.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_guts.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,6675 @@ | @@ -0,0 +1,6675 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | + * 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; | +	    return YAFFS_OK; | ||||||
| +} | +} | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_guts.h linux.dev/fs/yaffs2/yaffs_guts.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_guts.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_guts.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,893 @@ | @@ -0,0 +1,893 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | + * 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); | +void yaffs_HandleChunkError(yaffs_Device *dev, yaffs_BlockInfo *bi); | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffsinterface.h linux.dev/fs/yaffs2/yaffsinterface.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffsinterface.h linux-2.6.21.1-owrt/fs/yaffs2/yaffsinterface.h | ||||||
| --- linux.old/fs/yaffs2/yaffsinterface.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffsinterface.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | + * 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); | +int yaffs_Initialise(unsigned nBlocks); | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.c linux.dev/fs/yaffs2/yaffs_mtdif2.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_mtdif2.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,234 @@ | @@ -0,0 +1,234 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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; | +		return YAFFS_FAIL; | ||||||
| +} | +} | ||||||
| + | + | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.h linux.dev/fs/yaffs2/yaffs_mtdif2.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_mtdif2.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,29 @@ | @@ -0,0 +1,29 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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); | +			    yaffs_BlockState * state, int *sequenceNumber); | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_mtdif.c linux.dev/fs/yaffs2/yaffs_mtdif.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_mtdif.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,243 @@ | @@ -0,0 +1,243 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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; | +	return YAFFS_OK; | ||||||
| +} | +} | ||||||
| + | + | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_mtdif.h linux.dev/fs/yaffs2/yaffs_mtdif.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_mtdif.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,31 @@ | @@ -0,0 +1,31 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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_EraseBlockInNAND(yaffs_Device * dev, int blockNumber); | ||||||
| +int nandmtd_InitialiseNAND(yaffs_Device * dev); | +int nandmtd_InitialiseNAND(yaffs_Device * dev); | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_nand.c linux.dev/fs/yaffs2/yaffs_nand.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nand.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_nand.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,135 @@ | @@ -0,0 +1,135 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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 | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nandemul2k.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nandemul2k.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_nandemul2k.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nandemul2k.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,42 @@ | @@ -0,0 +1,42 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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); | +int nandemul2k_GetNumberOfBlocks(void); | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_nand.h linux.dev/fs/yaffs2/yaffs_nand.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nand.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_nand.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,43 @@ | @@ -0,0 +1,43 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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 | +#endif | ||||||
| + | + | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.c linux.dev/fs/yaffs2/yaffs_packedtags1.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_packedtags1.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,39 @@ | @@ -0,0 +1,39 @@ | ||||||
| +#include "yaffs_packedtags1.h" | +#include "yaffs_packedtags1.h" | ||||||
| +#include "yportenv.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 | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_packedtags1.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||||||
| +// This is used to pack YAFFS1 tags, not YAFFS2 tags. | +// 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_PackTags1(yaffs_PackedTags1 * pt, const yaffs_ExtendedTags * t); | ||||||
| +void yaffs_UnpackTags1(yaffs_ExtendedTags * t, const yaffs_PackedTags1 * pt); | +void yaffs_UnpackTags1(yaffs_ExtendedTags * t, const yaffs_PackedTags1 * pt); | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.c linux.dev/fs/yaffs2/yaffs_packedtags2.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_packedtags2.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,184 @@ | @@ -0,0 +1,184 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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); | +	yaffs_DumpTags2(t); | ||||||
| + | + | ||||||
| +} | +} | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.h linux.dev/fs/yaffs2/yaffs_packedtags2.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_packedtags2.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||||||
| +/* This is used to pack YAFFS2 tags, not YAFFS1tags. */ | +/* 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_PackTags2(yaffs_PackedTags2 * pt, const yaffs_ExtendedTags * t); | ||||||
| +void yaffs_UnpackTags2(yaffs_ExtendedTags * t, yaffs_PackedTags2 * pt); | +void yaffs_UnpackTags2(yaffs_ExtendedTags * t, yaffs_PackedTags2 * pt); | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_qsort.c linux.dev/fs/yaffs2/yaffs_qsort.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_qsort.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_qsort.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,156 @@ | @@ -0,0 +1,156 @@ | ||||||
| +/* | +/* | ||||||
| + * Copyright (c) 1992, 1993 | + * 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);*/ | +/*		qsort(pn - r, r / es, es, cmp);*/ | ||||||
| +} | +} | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_qsort.h linux.dev/fs/yaffs2/yaffs_qsort.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_qsort.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_qsort.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | + * 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 *)); | +                   int (*cmp)(const void *, const void *)); | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.c linux.dev/fs/yaffs2/yaffs_tagscompat.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_tagscompat.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,532 @@ | @@ -0,0 +1,532 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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; | +	return YAFFS_OK; | ||||||
| +} | +} | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.h linux.dev/fs/yaffs2/yaffs_tagscompat.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_tagscompat.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,40 @@ | @@ -0,0 +1,40 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * 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); | +					  state, int *sequenceNumber); | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.c linux.dev/fs/yaffs2/yaffs_tagsvalidity.c | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.c | ||||||
| --- linux.old/fs/yaffs2/yaffs_tagsvalidity.c	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.c	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,31 @@ | @@ -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); | +		tags->validMarker1 == 0x55555555); | ||||||
| + | + | ||||||
| +} | +} | ||||||
| diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.h linux.dev/fs/yaffs2/yaffs_tagsvalidity.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.h | ||||||
| --- linux.old/fs/yaffs2/yaffs_tagsvalidity.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,25 @@ | @@ -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); | +void yaffs_InitialiseTags(yaffs_ExtendedTags * tags); | ||||||
| +int yaffs_ValidateTags(yaffs_ExtendedTags * tags); | +int yaffs_ValidateTags(yaffs_ExtendedTags * tags); | ||||||
| +#endif | +#endif | ||||||
| diff -urN linux.old/fs/yaffs2/yportenv.h linux.dev/fs/yaffs2/yportenv.h | diff -Nur linux-2.6.21.1/fs/yaffs2/yportenv.h linux-2.6.21.1-owrt/fs/yaffs2/yportenv.h | ||||||
| --- linux.old/fs/yaffs2/yportenv.h	1970-01-01 01:00:00.000000000 +0100 | --- linux-2.6.21.1/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 | +++ linux-2.6.21.1-owrt/fs/yaffs2/yportenv.h	2007-05-14 11:52:43.000000000 +0200 | ||||||
| @@ -0,0 +1,165 @@ | @@ -0,0 +1,165 @@ | ||||||
| +/* | +/* | ||||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.c linux-lzma/arch/i386/boot/compressed/LzmaDecode.c | 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-old/arch/i386/boot/compressed/LzmaDecode.c	1969-12-31 19:00:00.000000000 -0500 | --- linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.c	1970-01-01 01:00:00.000000000 +0100 | ||||||
| +++ linux-lzma/arch/i386/boot/compressed/LzmaDecode.c	2005-06-05 00:07:38.000000000 -0400 | +++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.c	2007-05-14 11:55:38.000000000 +0200 | ||||||
| @@ -0,0 +1,586 @@ | @@ -0,0 +1,586 @@ | ||||||
| +/* | +/* | ||||||
| +  LzmaDecode.c | +  LzmaDecode.c | ||||||
| @@ -588,9 +588,9 @@ diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.c linux-lzma/arch/i386 | |||||||
| +  *outSizeProcessed = nowPos; | +  *outSizeProcessed = nowPos; | ||||||
| +  return LZMA_RESULT_OK; | +  return LZMA_RESULT_OK; | ||||||
| +} | +} | ||||||
| diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.h linux-lzma/arch/i386/boot/compressed/LzmaDecode.h | 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-old/arch/i386/boot/compressed/LzmaDecode.h	1969-12-31 19:00:00.000000000 -0500 | --- linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100 | ||||||
| +++ linux-lzma/arch/i386/boot/compressed/LzmaDecode.h	2005-06-05 00:07:39.000000000 -0400 | +++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.h	2007-05-14 11:55:38.000000000 +0200 | ||||||
| @@ -0,0 +1,100 @@ | @@ -0,0 +1,100 @@ | ||||||
| +/*  | +/*  | ||||||
| +  LzmaDecode.h | +  LzmaDecode.h | ||||||
| @@ -692,52 +692,9 @@ diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.h linux-lzma/arch/i386 | |||||||
| +    UInt32 *outSizeProcessed); | +    UInt32 *outSizeProcessed); | ||||||
| + | + | ||||||
| +#endif | +#endif | ||||||
| diff -Naur linux-old/arch/i386/boot/compressed/Makefile linux-lzma/arch/i386/boot/compressed/Makefile | 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-old/arch/i386/boot/compressed/Makefile	2005-06-04 21:53:40.000000000 -0400 | --- linux-2.6.21.1/arch/i386/boot/compressed/lzma_misc.c	1970-01-01 01:00:00.000000000 +0100 | ||||||
| +++ linux-lzma/arch/i386/boot/compressed/Makefile	2005-06-05 00:25:23.000000000 -0400 | +++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/lzma_misc.c	2007-05-14 11:55:38.000000000 +0200 | ||||||
| @@ -2,24 +2,33 @@ |  | ||||||
|  # linux/arch/i386/boot/compressed/Makefile |  | ||||||
|  # |  | ||||||
|  # create a compressed vmlinux image from the original vmlinux |  | ||||||
| +# patched by Ming-Ching Tiew <mctiew@yahoo.com> 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 |  | ||||||
| @@ -0,0 +1,412 @@ | @@ -0,0 +1,412 @@ | ||||||
| +/* | +/* | ||||||
| + * lzma_misc.c | + * 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); | +	if (high_loaded) close_output_buffer_if_we_run_high(mv); | ||||||
| +	return high_loaded; | +	return high_loaded; | ||||||
| +} | +} | ||||||
| diff -urN linux-2.6.19.2/scripts/Makefile.lib linux-2.6.19.2.new/scripts/Makefile.lib | 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.19.2/scripts/Makefile.lib	2007-01-10 20:10:37.000000000 +0100 | --- linux-2.6.21.1/arch/i386/boot/compressed/Makefile	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux-2.6.19.2.new/scripts/Makefile.lib	2007-04-15 23:51:54.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 @@ | @@ -162,4 +162,9 @@ | ||||||
|  quiet_cmd_gzip = GZIP    $@ |  quiet_cmd_gzip = GZIP    $@ | ||||||
|  cmd_gzip = gzip -f -9 < $< > $@ |  cmd_gzip = gzip -f -9 < $< > $@ | ||||||
|   | |||||||
| @@ -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); |  | ||||||
| @@ -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> |  | ||||||
| @@ -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 | 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.19.2/scripts/gen_initramfs_list.sh	2007-01-10 20:10:37.000000000 +0100 | --- linux-2.6.21.1/scripts/gen_initramfs_list.sh	2007-04-27 23:49:26.000000000 +0200 | ||||||
| +++ linux-2.6.19.2.new/scripts/gen_initramfs_list.sh	2007-05-03 16:25:06.000000000 +0200 | +++ linux-2.6.21.1-owrt/scripts/gen_initramfs_list.sh	2007-05-14 12:18:02.000000000 +0200 | ||||||
| @@ -120,9 +120,9 @@ | @@ -125,7 +125,7 @@ | ||||||
|  |  			str="${ftype} ${name} ${location} ${str}" | ||||||
|  			;; |  			;; | ||||||
|  		"nod") |  		"nod") | ||||||
|  			local dev_type= | -			local dev=`LC_ALL=C ls -l "${location}"` | ||||||
| -			local maj=$(LC_ALL=C ls -l "${location}" | \ | +			local dev=`LC_ALL=C ls -l --time-style=locale "${location}"` | ||||||
| +			local maj=$(LC_ALL=C ls --time-style=locale -l "${location}" | \ |  			local maj=`field 5 ${dev}` | ||||||
|  					gawk '{sub(/,/, "", $5); print $5}') |  			local min=`field 6 ${dev}` | ||||||
| -			local min=$(LC_ALL=C ls -l "${location}" | \ |  			maj=${maj%,} | ||||||
| +			local min=$(LC_ALL=C ls --time-style=locale -l "${location}" | \ | @@ -135,7 +135,7 @@ | ||||||
|  					gawk '{print $6}') |  			str="${ftype} ${name} ${str} ${dev} ${maj} ${min}" | ||||||
|   |  | ||||||
|  			if [ -b "${location}" ]; then |  | ||||||
| @@ -133,7 +133,7 @@ |  | ||||||
|  			str="${ftype} ${name} ${str} ${dev_type} ${maj} ${min}" |  | ||||||
|  			;; |  			;; | ||||||
|  		"slink") |  		"slink") | ||||||
| -			local target=$(LC_ALL=C ls -l "${location}" | \ | -			local target=`field 11 $(LC_ALL=C ls -l "${location}")` | ||||||
| +			local target=$(LC_ALL=C ls --time-style=locale -l "${location}" | \ | +			local target=`field 11 $(LC_ALL=C ls -l --time-style=locale "${location}")` | ||||||
|  					gawk '{print $11}') |  | ||||||
|  			str="${ftype} ${name} ${target} ${str}" |  			str="${ftype} ${name} ${target} ${str}" | ||||||
|  			;; |  			;; | ||||||
|  |  		*) | ||||||
|   | |||||||
| @@ -15,8 +15,10 @@ CONFIG_ALIGNMENT_TRAP=y | |||||||
| # CONFIG_ARCH_H720X is not set | # CONFIG_ARCH_H720X is not set | ||||||
| # CONFIG_ARCH_IMX is not set | # CONFIG_ARCH_IMX is not set | ||||||
| # CONFIG_ARCH_INTEGRATOR is not set | # CONFIG_ARCH_INTEGRATOR is not set | ||||||
|  | # CONFIG_ARCH_IOP13XX is not set | ||||||
| # CONFIG_ARCH_IOP32X is not set | # CONFIG_ARCH_IOP32X is not set | ||||||
| # CONFIG_ARCH_IOP33X is not set | # CONFIG_ARCH_IOP33X is not set | ||||||
|  | CONFIG_ARCH_IXCDP1100=y | ||||||
| CONFIG_ARCH_IXDP425=y | CONFIG_ARCH_IXDP425=y | ||||||
| CONFIG_ARCH_IXDP4XX=y | CONFIG_ARCH_IXDP4XX=y | ||||||
| # CONFIG_ARCH_IXP2000 is not set | # CONFIG_ARCH_IXP2000 is not set | ||||||
| @@ -25,6 +27,7 @@ CONFIG_ARCH_IXP4XX=y | |||||||
| # CONFIG_ARCH_L7200 is not set | # CONFIG_ARCH_L7200 is not set | ||||||
| # CONFIG_ARCH_LH7A40X is not set | # CONFIG_ARCH_LH7A40X is not set | ||||||
| # CONFIG_ARCH_NETX is not set | # CONFIG_ARCH_NETX is not set | ||||||
|  | # CONFIG_ARCH_NS9XXX is not set | ||||||
| # CONFIG_ARCH_OMAP is not set | # CONFIG_ARCH_OMAP is not set | ||||||
| # CONFIG_ARCH_PNX4008 is not set | # CONFIG_ARCH_PNX4008 is not set | ||||||
| # CONFIG_ARCH_PRPMC1100 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_QMGR=y | ||||||
| CONFIG_IXP4XX_CRYPTO=y | CONFIG_IXP4XX_CRYPTO=y | ||||||
| CONFIG_IXP4XX_WATCHDOG=y | CONFIG_IXP4XX_WATCHDOG=y | ||||||
|  | # CONFIG_IWMMXT is not set | ||||||
| # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||||||
| CONFIG_JFFS2_FS_DEBUG=0 | CONFIG_JFFS2_FS_DEBUG=0 | ||||||
| # CONFIG_JFS_FS is not set | # CONFIG_JFS_FS is not set | ||||||
|  | # CONFIG_KEXEC is not set | ||||||
| # CONFIG_LANMEDIA is not set | # CONFIG_LANMEDIA is not set | ||||||
| CONFIG_LEGACY_PTYS=y | CONFIG_LEGACY_PTYS=y | ||||||
| CONFIG_LEGACY_PTY_COUNT=256 | CONFIG_LEGACY_PTY_COUNT=256 | ||||||
| @@ -318,6 +323,7 @@ CONFIG_PATA_ARTOP=m | |||||||
| # CONFIG_PATA_HPT37X is not set | # CONFIG_PATA_HPT37X is not set | ||||||
| # CONFIG_PATA_HPT3X2N is not set | # CONFIG_PATA_HPT3X2N is not set | ||||||
| # CONFIG_PATA_HPT3X3 is not set | # CONFIG_PATA_HPT3X3 is not set | ||||||
|  | CONFIG_PATA_IXP4XX_CF=m | ||||||
| # CONFIG_PATA_IT821X is not set | # CONFIG_PATA_IT821X is not set | ||||||
| # CONFIG_PATA_JMICRON is not set | # CONFIG_PATA_JMICRON is not set | ||||||
| # CONFIG_PATA_MPIIX 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_ADM1021 is not set | ||||||
| # CONFIG_SENSORS_ADM1025 is not set | # CONFIG_SENSORS_ADM1025 is not set | ||||||
| # CONFIG_SENSORS_ADM1026 is not set | # CONFIG_SENSORS_ADM1026 is not set | ||||||
|  | # CONFIG_SENSORS_ADM1029 is not set | ||||||
| # CONFIG_SENSORS_ADM1031 is not set | # CONFIG_SENSORS_ADM1031 is not set | ||||||
| # CONFIG_SENSORS_ADM9240 is not set | # CONFIG_SENSORS_ADM9240 is not set | ||||||
| # CONFIG_SENSORS_ASB100 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_MAX1619 is not set | ||||||
| # CONFIG_SENSORS_MAX6875 is not set | # CONFIG_SENSORS_MAX6875 is not set | ||||||
| # CONFIG_SENSORS_PC87360 is not set | # CONFIG_SENSORS_PC87360 is not set | ||||||
|  | # CONFIG_SENSORS_PC87427 is not set | ||||||
| # CONFIG_SENSORS_PCA9539 is not set | # CONFIG_SENSORS_PCA9539 is not set | ||||||
| # CONFIG_SENSORS_PCF8574 is not set | # CONFIG_SENSORS_PCF8574 is not set | ||||||
| # CONFIG_SENSORS_PCF8591 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_W83781D is not set | ||||||
| # CONFIG_SENSORS_W83791D is not set | # CONFIG_SENSORS_W83791D is not set | ||||||
| # CONFIG_SENSORS_W83792D is not set | # CONFIG_SENSORS_W83792D is not set | ||||||
|  | # CONFIG_SENSORS_W83793 is not set | ||||||
| # CONFIG_SENSORS_W83L785TS is not set | # CONFIG_SENSORS_W83L785TS is not set | ||||||
| # CONFIG_SERIAL_8250_EXTENDED is not set | # CONFIG_SERIAL_8250_EXTENDED is not set | ||||||
| # CONFIG_SHMEM is not set | # CONFIG_SHMEM is not set | ||||||
|   | |||||||
| @@ -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 <mlj28@cam.ac.uk> | ||||||
|  |  | ||||||
|  | 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! | ||||||
|  |  	 */ | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -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 <rod@whitby.id.au> |  | ||||||
|  |  | ||||||
| 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) |  | ||||||
| @@ -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"); | ||||||
| @@ -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); |  | ||||||
| @@ -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 |  drivers/net/ixp4xx/Kconfig             |   10 + | ||||||
| +++ b/drivers/net/ixp4xx/Kconfig	2007-01-12 23:28:50.000000000 -0700 |  drivers/net/ixp4xx/Makefile            |    1  | ||||||
| @@ -11,6 +11,7 @@ config IXP4XX_NPE |  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" |  	tristate "IXP4xx NPE support" | ||||||
|  	depends on ARCH_IXP4XX |  	depends on ARCH_IXP4XX | ||||||
|  	depends on NET_ETHERNET |  	depends on NET_ETHERNET | ||||||
| @@ -9,7 +19,7 @@ diff -Naupr a/drivers/net/ixp4xx/Kconfig b/drivers/net/ixp4xx/Kconfig | |||||||
|  	help |  	help | ||||||
|  	  The IXP4XX NPE driver supports the 3 CPU co-processors called |  	  The IXP4XX NPE driver supports the 3 CPU co-processors called | ||||||
|  	  "Network Processing Engines" (NPE). It adds support fo downloading |  	  "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. |  	  More about this at: Documentation/networking/ixp4xx/README. | ||||||
|  	  You can either use this OR the Intel Access Library (IAL) |  	  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" |  	bool "Use Firmware hotplug for Microcode download" | ||||||
|  	depends on IXP4XX_NPE |  	depends on IXP4XX_NPE | ||||||
|  	select HOTPLUG |  	select HOTPLUG | ||||||
| @@ -28,6 +29,13 @@ config IXP4XX_FW_LOAD | @@ -28,6 +29,13 @@ | ||||||
|  	  /usr/lib/hotplug/firmware/NPE-[ABC] |  	  /usr/lib/hotplug/firmware/NPE-[ABC] | ||||||
|  	  see Documentation/firmware_class/hotplug-script |  	  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 |  config IXP4XX_MAC | ||||||
|  	tristate "IXP4xx MAC support" |  	tristate "IXP4xx MAC support" | ||||||
|  	depends on IXP4XX_NPE |  	depends on IXP4XX_NPE | ||||||
| diff -Naupr a/drivers/net/ixp4xx/Makefile b/drivers/net/ixp4xx/Makefile | Index: linux-2.6.20-rc3/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 | --- linux-2.6.20-rc3.orig/drivers/net/ixp4xx/Makefile | ||||||
|  | +++ linux-2.6.20-rc3/drivers/net/ixp4xx/Makefile | ||||||
| @@ -1,5 +1,6 @@ | @@ -1,5 +1,6 @@ | ||||||
|  obj-$(CONFIG_IXP4XX_QMGR) += ixp4xx_qmgr.o |  obj-$(CONFIG_IXP4XX_QMGR) += ixp4xx_qmgr.o | ||||||
|  obj-$(CONFIG_IXP4XX_NPE) += ixp4xx_npe.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_MAC) += ixp4xx_mac.o | ||||||
|  obj-$(CONFIG_IXP4XX_CRYPTO) += ixp4xx_crypto.o |  obj-$(CONFIG_IXP4XX_CRYPTO) += ixp4xx_crypto.o | ||||||
|   |   | ||||||
| diff -Naupr a/drivers/net/ixp4xx/npe_ucode.c b/drivers/net/ixp4xx/npe_ucode.c | Index: linux-2.6.20-rc3/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 | --- /dev/null | ||||||
|  | +++ linux-2.6.20-rc3/drivers/net/ixp4xx/npe_ucode.c | ||||||
| @@ -0,0 +1,185 @@ | @@ -0,0 +1,185 @@ | ||||||
| +/* | +/* | ||||||
| + * Provide an NPE platform device for microcode handling | + * 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_LICENSE("GPL"); | ||||||
| +MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); | +MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); | ||||||
| diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c | Index: linux-2.6.20-rc3/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 | --- 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 @@ | @@ -16,6 +16,7 @@ | ||||||
|  #include <linux/firmware.h> |  #include <linux/firmware.h> | ||||||
|  #include <linux/dma-mapping.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 EOF_BLOCK 0xf | ||||||
|  #define IMG_SIZE(image) (((image)->size * sizeof(u32)) + \ |  #define IMG_SIZE(image) (((image)->size * sizeof(u32)) + \ | ||||||
|  		sizeof(struct dl_image)) |  		sizeof(struct dl_image)) | ||||||
| @@ -38,21 +45,6 @@ enum blk_type { | @@ -38,21 +45,6 @@ | ||||||
|  	data, |  	data, | ||||||
|  }; |  }; | ||||||
|   |   | ||||||
| @@ -277,7 +290,7 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c | |||||||
|  struct dl_codeblock { |  struct dl_codeblock { | ||||||
|  	u32 npe_addr; |  	u32 npe_addr; | ||||||
|  	u32 size; |  	u32 size; | ||||||
| @@ -127,20 +119,33 @@ download_block(struct npe_info *npe, str | @@ -127,20 +119,33 @@ | ||||||
|  	return 0; |  	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); |  	npe = dev_get_drvdata(dev); | ||||||
|  	if (npe->loaded && (npe->usage > 0)) { |  	if (npe->loaded && (npe->usage > 0)) { | ||||||
|  		printk(KERN_INFO "Cowardly refusing to reload an Image " |  		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) |  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; |  	const struct firmware *fw_entry; | ||||||
|  	struct npe_info *npe = dev_get_drvdata(dev); |  	struct npe_info *npe = dev_get_drvdata(dev); | ||||||
|  	struct dl_image *image; |  	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(get_npe_by_id); | ||||||
|  EXPORT_SYMBOL(return_npe_dev); |  EXPORT_SYMBOL(return_npe_dev); | ||||||
| +EXPORT_SYMBOL(store_npe_image); | +EXPORT_SYMBOL(store_npe_image); | ||||||
| diff -Naupr a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4xx/platform.h | Index: linux-2.6.20-rc3/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 | --- linux-2.6.20-rc3.orig/include/asm-arm/arch-ixp4xx/platform.h | ||||||
| @@ -89,6 +89,21 @@ struct ixp4xx_i2c_pins { | +++ linux-2.6.20-rc3/include/asm-arm/arch-ixp4xx/platform.h | ||||||
|   | @@ -86,6 +86,21 @@ | ||||||
|  struct sys_timer; |  	unsigned long scl_pin; | ||||||
|  |  }; | ||||||
|   |   | ||||||
| +struct dl_block { | +struct dl_block { | ||||||
| +	u32 type; | +	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 { |  struct npe_plat_data { | ||||||
|  	const char *name; |  	const char *name; | ||||||
|  	int data_size; |  	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 |   * This structure provide a means for the board setup code | ||||||
|   */ |   * to give information to th pata_ixp4xx driver. It is | ||||||
| diff -Naupr a/include/linux/ixp_npe.h b/include/linux/ixp_npe.h | Index: linux-2.6.20-rc3/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 | --- linux-2.6.20-rc3.orig/include/linux/ixp_npe.h | ||||||
| @@ -99,6 +99,7 @@ extern void npe_reset(struct npe_info *n | +++ linux-2.6.20-rc3/include/linux/ixp_npe.h | ||||||
|  | @@ -99,6 +99,7 @@ | ||||||
|   |   | ||||||
|  extern struct device *get_npe_by_id(int id); |  extern struct device *get_npe_by_id(int id); | ||||||
|  extern void return_npe_dev(struct device *dev); |  extern void return_npe_dev(struct device *dev); | ||||||
|   | |||||||
| @@ -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) |  int __init ixdp425_pci_init(void) | ||||||
|  { |  { | ||||||
|  	if (machine_is_ixdp425() || machine_is_ixcdp1100() || |  	if (machine_is_ixdp425() || machine_is_ixcdp1100() || | ||||||
| -			machine_is_avila() || machine_is_ixdp465()) | -			machine_is_ixdp465()) | ||||||
| +			machine_is_avila() || machine_is_ixdp465() || machine_is_compex()) | +			machine_is_ixdp465() || machine_is_compex()) | ||||||
|  		pci_common_init(&ixdp425_pci); |  		pci_common_init(&ixdp425_pci); | ||||||
|  	return 0; |  	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 | 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/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 | +++ linux-2.6.19.2-owrt/arch/arm/tools/mach-types	2007-04-09 20:22:33.000000000 +0200 | ||||||
| @@ -1171,3 +1171,4 @@ | @@ -1278,7 +1278,7 @@ | ||||||
|  cdcs_quoll		MACH_CDCS_QUOLL		CDCS_QUOLL		1158 |  smdk6400		MACH_SMDK6400		SMDK6400		1270 | ||||||
|  quicksilver		MACH_QUICKSILVER	QUICKSILVER		1159 |  nokia_n800		MACH_NOKIA_N800		NOKIA_N800		1271 | ||||||
|  uplat926		MACH_UPLAT926		UPLAT926		1160 |  greenphone		MACH_GREENPHONE		GREENPHONE		1272 | ||||||
|  | -compex42x		MACH_COMPEXWP18		COMPEXWP18		1273 | ||||||
| +compex			MACH_COMPEX		COMPEX			1273 | +compex			MACH_COMPEX		COMPEX			1273 | ||||||
|  |  xmate			MACH_XMATE		XMATE			1274 | ||||||
|  |  energizer		MACH_ENERGIZER		ENERGIZER		1275 | ||||||
|  |  ime1			MACH_IME1		IME1			1276 | ||||||
|   | |||||||
| @@ -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 <dsaxena@plexity.net> */ |  | ||||||
| -	.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 |  | ||||||
| - |  | ||||||
| @@ -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 <mlj28@cam.ac.uk> |  | ||||||
| + * |  | ||||||
| + * Based on ixdp-pci.c |  | ||||||
| + * Copyright (C) 2002 Intel Corporation. |  | ||||||
| + * Copyright (C) 2003-2004 MontaVista Software, Inc. |  | ||||||
| + * |  | ||||||
| + * Maintainer: Deepak Saxena <dsaxena@plexity.net> |  | ||||||
| + * |  | ||||||
| + * 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 <mlj28@cam.ac.uk> |  | ||||||
| + * |  | ||||||
| + * Based on ixdp-setup.c |  | ||||||
| + * Copyright (C) 2003-2005 MontaVista Software, Inc. |  | ||||||
| + * |  | ||||||
| + * Author: Deepak Saxena <dsaxena@plexity.net> |  | ||||||
| + */ |  | ||||||
| + |  | ||||||
| +#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 <dsaxena@plexity.net> */ |  | ||||||
| +	.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 <kernel@giantshoulderinc.com> */ |  | ||||||
| +	.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 <mlj28@cam.ac.uk> |  | ||||||
| + * |  | ||||||
| + * Based on ixdp425.h |  | ||||||
| + * Author: Deepak Saxena <dsaxena@plexity.net> |  | ||||||
| + * |  | ||||||
| + * 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 |  | ||||||
| @@ -9,11 +9,11 @@ the 'maclist' code and read out by the ethernet config. | |||||||
|  |  | ||||||
| Signed-off-by: John Bowler <jbowler@acm.org> | Signed-off-by: John Bowler <jbowler@acm.org> | ||||||
|  |  | ||||||
| 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.21-rc1-arm.orig/drivers/i2c/chips/eeprom.c	2007-02-21 02:24:14.000000000 -0800 | ||||||
| +++ linux-2.6.19/drivers/i2c/chips/eeprom.c | +++ linux-2.6.21-rc1-arm/drivers/i2c/chips/eeprom.c	2007-02-21 02:25:01.000000000 -0800 | ||||||
| @@ -34,6 +34,8 @@ | @@ -33,6 +33,8 @@ | ||||||
|  #include <linux/jiffies.h> |  #include <linux/jiffies.h> | ||||||
|  #include <linux/i2c.h> |  #include <linux/i2c.h> | ||||||
|  #include <linux/mutex.h> |  #include <linux/mutex.h> | ||||||
| @@ -22,7 +22,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | |||||||
|   |   | ||||||
|  /* Addresses to scan */ |  /* Addresses to scan */ | ||||||
|  static unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54, |  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 */ |  /* Insmod parameters */ | ||||||
|  I2C_CLIENT_INSMOD_1(eeprom); |  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_attach_adapter(struct i2c_adapter *adapter); | ||||||
|  static int eeprom_detect(struct i2c_adapter *adapter, int address, int kind); |  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; |  	data->valid = 0; | ||||||
|  	mutex_init(&data->update_lock); |  	mutex_init(&data->update_lock); | ||||||
|  	data->nature = UNKNOWN; |  	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 */ |  	/* Tell the I2C layer a new client has arrived */ | ||||||
|  	if ((err = i2c_attach_client(new_client))) |  	if ((err = i2c_attach_client(new_client))) | ||||||
| @@ -213,6 +197,9 @@ static int eeprom_detect(struct i2c_adap | @@ -212,6 +196,9 @@ | ||||||
|  	if (err) |  	if (err) | ||||||
|  		goto exit_detach; |  		goto exit_detach; | ||||||
|   |   | ||||||
| @@ -68,7 +68,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | |||||||
|  	return 0; |  	return 0; | ||||||
|   |   | ||||||
|  exit_detach: |  exit_detach: | ||||||
| @@ -238,6 +225,41 @@ static int eeprom_detach_client(struct i | @@ -237,6 +224,41 @@ | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -110,10 +110,10 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | |||||||
|  static int __init eeprom_init(void) |  static int __init eeprom_init(void) | ||||||
|  { |  { | ||||||
|  	return i2c_add_driver(&eeprom_driver); |  	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 | --- /dev/null	1970-01-01 00:00:00.000000000 +0000 | ||||||
| +++ linux-2.6.19/include/linux/eeprom.h | +++ linux-2.6.21-rc1-arm/include/linux/eeprom.h	2007-02-21 02:25:01.000000000 -0800 | ||||||
| @@ -0,0 +1,71 @@ | @@ -0,0 +1,71 @@ | ||||||
| +#ifndef _LINUX_EEPROM_H | +#ifndef _LINUX_EEPROM_H | ||||||
| +#define _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); | +extern int unregister_eeprom_notifier(struct notifier_block *nb); | ||||||
| + | + | ||||||
| +#endif /* _LINUX_EEPROM_H */ | +#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.21-rc1-arm.orig/include/linux/notifier.h	2007-02-21 02:24:14.000000000 -0800 | ||||||
| +++ linux-2.6.19/include/linux/notifier.h | +++ linux-2.6.21-rc1-arm/include/linux/notifier.h	2007-02-21 02:25:01.000000000 -0800 | ||||||
| @@ -187,5 +187,8 @@ extern int srcu_notifier_call_chain(stru | @@ -187,5 +187,8 @@ | ||||||
|  #define CPU_DOWN_FAILED		0x0006 /* CPU (unsigned)v NOT going down */ |  #define CPU_DOWN_FAILED		0x0006 /* CPU (unsigned)v NOT going down */ | ||||||
|  #define CPU_DEAD		0x0007 /* CPU (unsigned)v dead */ |  #define CPU_DEAD		0x0007 /* CPU (unsigned)v dead */ | ||||||
|   |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Imre Kaloz
					Imre Kaloz