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_KERNEL_MD5SUM:=f59665540a7f3351ea416a0dad104b55 | ||||
|   else | ||||
|     LINUX_VERSION:=2.6.19.2 | ||||
|     LINUX_VERSION:=2.6.21.1 | ||||
|     LINUX_RELEASE:=1 | ||||
|     LINUX_KERNEL_MD5SUM:=ca0ce8f288e8ae93ac243b568f906bf8 | ||||
|     LINUX_KERNEL_MD5SUM:=a28b78793cd368592f7873bf36cb38b0 | ||||
|   endif | ||||
| endif | ||||
| KERNEL:=2.$(word 2,$(subst ., ,$(strip $(LINUX_VERSION)))) | ||||
|   | ||||
| @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk | ||||
| include $(INCLUDE_DIR)/kernel.mk | ||||
|  | ||||
| PKG_NAME:=iptables | ||||
| PKG_VERSION:=1.3.5 | ||||
| PKG_VERSION:=1.3.7 | ||||
| PKG_RELEASE:=1 | ||||
|  | ||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | ||||
| @@ -18,7 +18,7 @@ PKG_SOURCE_URL:=http://www.netfilter.org/projects/iptables/files \ | ||||
| 	ftp://ftp.be.netfilter.org/pub/netfilter/iptables/ \ | ||||
| 	ftp://ftp.de.netfilter.org/pub/netfilter/iptables/ \ | ||||
| 	ftp://ftp.no.netfilter.org/pub/netfilter/iptables/ | ||||
| PKG_MD5SUM:=00fb916fa8040ca992a5ace56d905ea5 | ||||
| PKG_MD5SUM:=dd965bdacbb86ce2a6498829fddda6b7 | ||||
|  | ||||
| include $(INCLUDE_DIR)/package.mk | ||||
| ifeq ($(DUMP),) | ||||
|   | ||||
| @@ -1,20 +1,11 @@ | ||||
| diff -urN iptables.old/extensions/.IMQ-test iptables.dev/extensions/.IMQ-test | ||||
| --- iptables.old/extensions/.IMQ-test	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ iptables.dev/extensions/.IMQ-test	2005-10-09 01:00:36.358959750 +0200 | ||||
| @@ -0,0 +1,3 @@ | ||||
| +#!/bin/sh | ||||
| +# True if IMQ target patch is applied. | ||||
| +[ -f $KERNEL_DIR/net/ipv4/netfilter/ipt_IMQ.c ] && echo IMQ | ||||
| diff -urN iptables.old/extensions/.IMQ-test6 iptables.dev/extensions/.IMQ-test6 | ||||
| --- iptables.old/extensions/.IMQ-test6	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ iptables.dev/extensions/.IMQ-test6	2005-10-09 01:00:36.358959750 +0200 | ||||
| --- iptables-1.3.6.orig/extensions.orig/.IMQ-test6	Thu Jan  1 01:00:00 1970 | ||||
| +++ iptables-1.3.6/extensions/.IMQ-test6	Mon Jun 16 10:12:47 2003 | ||||
| @@ -0,0 +1,3 @@ | ||||
| +#!/bin/sh | ||||
| +# True if IMQ target patch is applied. | ||||
| +[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_IMQ.c ] && echo IMQ | ||||
| diff -urN iptables.old/extensions/libip6t_IMQ.c iptables.dev/extensions/libip6t_IMQ.c | ||||
| --- iptables.old/extensions/libip6t_IMQ.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ iptables.dev/extensions/libip6t_IMQ.c	2005-10-09 01:00:36.358959750 +0200 | ||||
| --- iptables-1.3.6.orig/extensions.orig/libip6t_IMQ.c	Thu Jan  1 01:00:00 1970 | ||||
| +++ iptables-1.3.6/extensions/libip6t_IMQ.c	Mon Jun 16 10:12:47 2003 | ||||
| @@ -0,0 +1,101 @@ | ||||
| +/* Shared library add-on to iptables to add IMQ target support. */ | ||||
| +#include <stdio.h> | ||||
| @@ -113,13 +104,18 @@ diff -urN iptables.old/extensions/libip6t_IMQ.c iptables.dev/extensions/libip6t_ | ||||
| +	.extra_opts	= opts | ||||
| +}; | ||||
| + | ||||
| +void _init(void) | ||||
| +static __attribute__((constructor)) void _init(void) | ||||
| +{ | ||||
| +	register_target6(&imq); | ||||
| +} | ||||
| diff -urN iptables.old/extensions/libipt_IMQ.c iptables.dev/extensions/libipt_IMQ.c | ||||
| --- iptables.old/extensions/libipt_IMQ.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ iptables.dev/extensions/libipt_IMQ.c	2005-10-09 01:00:36.358959750 +0200 | ||||
| --- iptables-1.3.6.orig/extensions.orig/.IMQ-test	Thu Jan  1 01:00:00 1970 | ||||
| +++ iptables-1.3.6/extensions/.IMQ-test	Mon Jun 16 10:12:47 2003 | ||||
| @@ -0,0 +1,3 @@ | ||||
| +#!/bin/sh | ||||
| +# True if IMQ target patch is applied. | ||||
| +[ -f $KERNEL_DIR/net/ipv4/netfilter/ipt_IMQ.c ] && echo IMQ | ||||
| --- iptables-1.3.6.orig/extensions.orig/libipt_IMQ.c	Thu Jan  1 01:00:00 1970 | ||||
| +++ iptables-1.3.6/extensions/libipt_IMQ.c	Mon Jun 16 10:12:47 2003 | ||||
| @@ -0,0 +1,101 @@ | ||||
| +/* Shared library add-on to iptables to add IMQ target support. */ | ||||
| +#include <stdio.h> | ||||
| @@ -218,7 +214,8 @@ diff -urN iptables.old/extensions/libipt_IMQ.c iptables.dev/extensions/libipt_IM | ||||
| +	.extra_opts	= opts | ||||
| +}; | ||||
| + | ||||
| +void _init(void) | ||||
| +static __attribute__((constructor)) void _init(void) | ||||
| +{ | ||||
| +	register_target(&imq); | ||||
| +} | ||||
|  | ||||
|   | ||||
| @@ -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_ATARI_PARTITION is not set | ||||
| # CONFIG_ATA_OVER_ETH is not set | ||||
| # CONFIG_ATL1 is not set | ||||
| CONFIG_ATM=m | ||||
| CONFIG_ATMEL=m | ||||
| # CONFIG_ATM_AMBASSADOR is not set | ||||
| @@ -134,6 +135,7 @@ CONFIG_BT_SCO=m | ||||
| CONFIG_BUG=y | ||||
| # CONFIG_CAPI_AVM is not set | ||||
| # CONFIG_CAPI_EICON is not set | ||||
| # CONFIG_CAPI_TRACE is not set | ||||
| CONFIG_CARDBUS=y | ||||
| # CONFIG_CARDMAN_4000 is not set | ||||
| # CONFIG_CARDMAN_4040 is not set | ||||
| @@ -141,6 +143,7 @@ CONFIG_CARDBUS=y | ||||
| CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||||
| # CONFIG_CDROM_PKTCDVD is not set | ||||
| # CONFIG_CHELSIO_T1 is not set | ||||
| # CONFIG_CHELSIO_T3 is not set | ||||
| # CONFIG_CHR_DEV_OSST is not set | ||||
| # CONFIG_CHR_DEV_SCH is not set | ||||
| # CONFIG_CHR_DEV_SG is not set | ||||
| @@ -172,6 +175,7 @@ CONFIG_CRYPTO_ANUBIS=m | ||||
| CONFIG_CRYPTO_ARC4=m | ||||
| CONFIG_CRYPTO_BLKCIPHER=y | ||||
| CONFIG_CRYPTO_BLOWFISH=m | ||||
| # CONFIG_CRYPTO_CAMELLIA is not set | ||||
| CONFIG_CRYPTO_CAST5=m | ||||
| CONFIG_CRYPTO_CAST6=m | ||||
| CONFIG_CRYPTO_CBC=y | ||||
| @@ -179,14 +183,18 @@ CONFIG_CRYPTO_CRC32C=m | ||||
| CONFIG_CRYPTO_DEFLATE=m | ||||
| CONFIG_CRYPTO_DES=y | ||||
| CONFIG_CRYPTO_ECB=m | ||||
| # CONFIG_CRYPTO_FCRYPT is not set | ||||
| # CONFIG_CRYPTO_GF128MUL is not set | ||||
| CONFIG_CRYPTO_HASH=m | ||||
| CONFIG_CRYPTO_HMAC=m | ||||
| CONFIG_CRYPTO_KHAZAD=m | ||||
| # CONFIG_CRYPTO_LRW is not set | ||||
| CONFIG_CRYPTO_MANAGER=y | ||||
| CONFIG_CRYPTO_MD4=m | ||||
| CONFIG_CRYPTO_MD5=y | ||||
| CONFIG_CRYPTO_MICHAEL_MIC=m | ||||
| CONFIG_CRYPTO_NULL=m | ||||
| # CONFIG_CRYPTO_PCBC is not set | ||||
| CONFIG_CRYPTO_SERPENT=m | ||||
| CONFIG_CRYPTO_SHA1=m | ||||
| CONFIG_CRYPTO_SHA256=m | ||||
| @@ -197,6 +205,7 @@ CONFIG_CRYPTO_TGR192=m | ||||
| CONFIG_CRYPTO_TWOFISH=m | ||||
| CONFIG_CRYPTO_TWOFISH_COMMON=m | ||||
| CONFIG_CRYPTO_WP512=m | ||||
| # CONFIG_CRYPTO_XCBC is not set | ||||
| # CONFIG_DAVICOM_PHY is not set | ||||
| # CONFIG_DEBUG_FS is not set | ||||
| # CONFIG_DEBUG_KERNEL is not set | ||||
| @@ -220,6 +229,7 @@ CONFIG_DEVFS_MOUNT=y | ||||
| # CONFIG_DGRS is not set | ||||
| # CONFIG_DISCONTIGMEM_MANUAL is not set | ||||
| # CONFIG_DL2K is not set | ||||
| # CONFIG_DLM is not set | ||||
| # CONFIG_DMA_ENGINE is not set | ||||
| # CONFIG_DNOTIFY is not set | ||||
| # CONFIG_DRM is not set | ||||
| @@ -367,6 +377,7 @@ CONFIG_IP6_NF_MATCH_FRAG=m | ||||
| CONFIG_IP6_NF_MATCH_HL=m | ||||
| CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||||
| CONFIG_IP6_NF_MATCH_LIMIT=m | ||||
| # CONFIG_IP6_NF_MATCH_MH is not set | ||||
| CONFIG_IP6_NF_MATCH_OPTS=m | ||||
| CONFIG_IP6_NF_MATCH_OWNER=m | ||||
| CONFIG_IP6_NF_MATCH_RT=m | ||||
| @@ -417,6 +428,7 @@ CONFIG_IP_NF_ARP_MANGLE=m | ||||
| CONFIG_IP_NF_CONNTRACK=y | ||||
| # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||||
| CONFIG_IP_NF_CONNTRACK_MARK=y | ||||
| # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | ||||
| CONFIG_IP_NF_CT_ACCT=y | ||||
| CONFIG_IP_NF_CT_PROTO_SCTP=m | ||||
| CONFIG_IP_NF_FILTER=y | ||||
| @@ -555,6 +567,7 @@ CONFIG_MAC_PARTITION=y | ||||
| # CONFIG_MEGARAID_LEGACY is not set | ||||
| # CONFIG_MEGARAID_NEWGEN is not set | ||||
| # CONFIG_MEGARAID_SAS is not set | ||||
| # CONFIG_MFD_SM501 is not set | ||||
| CONFIG_MII=y | ||||
| CONFIG_MINIX_FS=m | ||||
| # CONFIG_MINIX_SUBPARTITION is not set | ||||
| @@ -587,6 +600,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y | ||||
| CONFIG_NETFILTER_XT_MATCH_DCCP=m | ||||
| CONFIG_NETFILTER_XT_MATCH_DSCP=m | ||||
| CONFIG_NETFILTER_XT_MATCH_ESP=m | ||||
| CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | ||||
| CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||||
| CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||||
| CONFIG_NETFILTER_XT_MATCH_LIMIT=y | ||||
| @@ -610,11 +624,15 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m | ||||
| CONFIG_NETFILTER_XT_TARGET_DELUDE=m | ||||
| CONFIG_NETFILTER_XT_TARGET_DSCP=m | ||||
| CONFIG_NETFILTER_XT_TARGET_MARK=m | ||||
| CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||||
| CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||||
| CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | ||||
| CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | ||||
| # CONFIG_NET_KEY_MIGRATE is not set | ||||
| # CONFIG_NETPOLL is not set | ||||
| # CONFIG_NETROM is not set | ||||
| # CONFIG_NETWORK_SECMARK is not set | ||||
| # CONFIG_NETXEN_NIC is not set | ||||
| CONFIG_NET_ACT_GACT=m | ||||
| CONFIG_NET_ACT_IPT=m | ||||
| CONFIG_NET_ACT_MIRRED=m | ||||
| @@ -674,6 +692,26 @@ CONFIG_NET_SCH_TEQL=m | ||||
| CONFIG_NET_WIRELESS=y | ||||
| CONFIG_NET_WIRELESS_RTNETLINK=y | ||||
| CONFIG_NEW_LEDS=y | ||||
| # CONFIG_NF_CONNTRACK_AMANDA is not set | ||||
| CONFIG_NF_CONNTRACK_ENABLED=y | ||||
| # CONFIG_NF_CONNTRACK_EVENTS is not set | ||||
| CONFIG_NF_CONNTRACK_FTP=m | ||||
| CONFIG_NF_CONNTRACK_H323=m | ||||
| CONFIG_NF_CONNTRACK_IPV4=y | ||||
| # CONFIG_NF_CONNTRACK_IPV6 is not set | ||||
| CONFIG_NF_CONNTRACK_IRC=m | ||||
| # CONFIG_NF_CONNTRACK_MARK is not set | ||||
| # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set | ||||
| # CONFIG_NF_CONNTRACK_PPTP is not set | ||||
| CONFIG_NF_CONNTRACK_PROC_COMPAT=y | ||||
| # CONFIG_NF_CONNTRACK_SANE is not set | ||||
| CONFIG_NF_CONNTRACK_SIP=m | ||||
| CONFIG_NF_CONNTRACK_SUPPORT=y | ||||
| # CONFIG_NF_CONNTRACK_TFTP is not set | ||||
| # CONFIG_NF_CT_ACCT is not set | ||||
| # CONFIG_NF_CT_PROTO_SCTP is not set | ||||
| # CONFIG_NF_NAT_SNMP_BASIC is not set | ||||
| CONFIG_NF_NAT=y | ||||
| CONFIG_NFSD=m | ||||
| CONFIG_NFSD_TCP=y | ||||
| # CONFIG_NFSD_V2_ACL is not set | ||||
| @@ -739,6 +777,10 @@ CONFIG_PACKET=y | ||||
| CONFIG_PACKET_MMAP=y | ||||
| # CONFIG_PARPORT is not set | ||||
| CONFIG_PARTITION_ADVANCED=y | ||||
| # CONFIG_PATA_IT8213 is not set | ||||
| # CONFIG_PATA_MARVELL is not set | ||||
| CONFIG_PATA_PLATFORM=m | ||||
| # CONFIG_PC300TOO is not set | ||||
| # CONFIG_PCCARD is not set | ||||
| CONFIG_PCI=y | ||||
| CONFIG_PCI_ATMEL=m | ||||
| @@ -810,8 +852,11 @@ CONFIG_ROMFS_FS=m | ||||
| CONFIG_RPCSEC_GSS_KRB5=m | ||||
| # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||||
| # CONFIG_RTC_CLASS is not set | ||||
| CONFIG_RTC_DRV_CMOS=y | ||||
| CONFIG_RT_MUTEXES=y | ||||
| # CONFIG_S2IO is not set | ||||
| # CONFIG_SATA_INIC162X is not set | ||||
| # CONFIG_SC92031 is not set | ||||
| CONFIG_SCSI=m | ||||
| # CONFIG_SCSI_3W_9XXX is not set | ||||
| # CONFIG_SCSI_AACRAID is not set | ||||
| @@ -845,9 +890,12 @@ CONFIG_SCSI_PROC_FS=y | ||||
| # CONFIG_SCSI_QLOGIC_1280 is not set | ||||
| # CONFIG_SCSI_SAS_ATTRS is not set | ||||
| # CONFIG_SCSI_SAS_LIBSAS is not set | ||||
| # CONFIG_SCSI_SCAN_ASYNC is not set | ||||
| # CONFIG_SCSI_SPI_ATTRS is not set | ||||
| # CONFIG_SCSI_SRP is not set | ||||
| # CONFIG_SCSI_STEX is not set | ||||
| # CONFIG_SCSI_SYM53C8XX_2 is not set | ||||
| # CONFIG_SCSI_TGT is not set | ||||
| # CONFIG_SECURITY is not set | ||||
| CONFIG_SELECT_MEMORY_MODEL=y | ||||
| CONFIG_SERIAL_8250=y | ||||
| @@ -980,6 +1028,7 @@ CONFIG_SYN_COOKIES=y | ||||
| CONFIG_SYSCTL=y | ||||
| CONFIG_SYSCTL_SYSCALL=y | ||||
| CONFIG_SYSFS=y | ||||
| # CONFIG_SYSFS_DEPRECATED is not set | ||||
| CONFIG_SYSVIPC=y | ||||
| # CONFIG_SYSV_FS is not set | ||||
| # CONFIG_SYS_HYPERVISOR is not set | ||||
| @@ -996,6 +1045,7 @@ CONFIG_TCP_CONG_SCALABLE=m | ||||
| CONFIG_TCP_CONG_VEGAS=y | ||||
| CONFIG_TCP_CONG_VENO=m | ||||
| CONFIG_TCP_CONG_WESTWOOD=m | ||||
| # CONFIG_TCP_MD5SIG is not set | ||||
| CONFIG_TEXTSEARCH=y | ||||
| CONFIG_TEXTSEARCH_BM=m | ||||
| CONFIG_TEXTSEARCH_FSM=m | ||||
| @@ -1037,6 +1087,7 @@ CONFIG_USB_ATM=m | ||||
| # CONFIG_USB_AUERSWALD is not set | ||||
| # CONFIG_USB_BANDWIDTH is not set | ||||
| CONFIG_USB_BELKIN=y | ||||
| # CONFIG_USB_BERRY_CHARGE is not set | ||||
| CONFIG_USB_CATC=m | ||||
| # CONFIG_USB_CXACRU is not set | ||||
| # CONFIG_USB_CYPRESS_CY7C63 is not set | ||||
| @@ -1054,6 +1105,7 @@ CONFIG_USB_EZUSB=y | ||||
| # CONFIG_USB_GADGET is not set | ||||
| # CONFIG_USB_HID is not set | ||||
| # CONFIG_USB_IDMOUSE is not set | ||||
| # CONFIG_USB_IOWARRIOR is not set | ||||
| # CONFIG_USB_ISP116X_HCD is not set | ||||
| CONFIG_USB_KAWETH=m | ||||
| # CONFIG_USB_KBD is not set | ||||
| @@ -1176,12 +1228,15 @@ CONFIG_VIDEO_V4L2=y | ||||
| # CONFIG_VIDEO_TEA6415C is not set | ||||
| # CONFIG_VIDEO_TEA6420 is not set | ||||
| # CONFIG_VIDEO_MSP3400 is not set | ||||
| # CONFIG_VIDEO_CAFE_CCIC is not set | ||||
| # CONFIG_VIDEO_CS53L32A is not set | ||||
| # CONFIG_VIDEO_TLV320AIC23B is not set | ||||
| # CONFIG_VIDEO_OV7670 is not set | ||||
| # CONFIG_VIDEO_WM8775 is not set | ||||
| # CONFIG_VIDEO_WM8739 is not set | ||||
| # CONFIG_VIDEO_SAA711X is not set | ||||
| # CONFIG_VIDEO_TVP5150 is not set | ||||
| # CONFIG_VIDEO_USBVISION is not set | ||||
| # CONFIG_VIDEO_CX25840 is not set | ||||
| # CONFIG_VIDEO_CX2341X is not set | ||||
| # CONFIG_VIDEO_SAA7127 is not set | ||||
| @@ -1226,6 +1281,7 @@ CONFIG_WIRELESS_EXT=y | ||||
| # CONFIG_WR_PPMC is not set | ||||
| # CONFIG_X25 is not set | ||||
| CONFIG_XFRM=y | ||||
| # CONFIG_XFRM_MIGRATE is not set | ||||
| # CONFIG_XFRM_SUB_POLICY is not set | ||||
| CONFIG_XFRM_USER=m | ||||
| CONFIG_XFS_FS=m | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| diff -urN linux-2.6.19.old/fs/Kconfig linux-2.6.19.dev/fs/Kconfig | ||||
| --- linux-2.6.19.old/fs/Kconfig	2006-12-14 03:13:16.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/fs/Kconfig	2006-12-14 03:13:16.000000000 +0100 | ||||
| @@ -1457,6 +1457,71 @@ | ||||
| diff -Nur linux-2.6.21.1/fs/Kconfig linux-2.6.21.1-owrt/fs/Kconfig | ||||
| --- linux-2.6.21.1/fs/Kconfig	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/fs/Kconfig	2007-05-23 19:09:55.000000000 +0200 | ||||
| @@ -1371,6 +1371,71 @@ | ||||
|   | ||||
|  	  If unsure, say N. | ||||
|   | ||||
| @@ -73,10 +73,10 @@ diff -urN linux-2.6.19.old/fs/Kconfig linux-2.6.19.dev/fs/Kconfig | ||||
|  config VXFS_FS | ||||
|  	tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" | ||||
|  	depends on BLOCK | ||||
| diff -urN linux-2.6.19.old/fs/Makefile linux-2.6.19.dev/fs/Makefile | ||||
| --- linux-2.6.19.old/fs/Makefile	2006-12-14 03:13:16.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/fs/Makefile	2006-12-14 03:13:16.000000000 +0100 | ||||
| @@ -67,6 +67,7 @@ | ||||
| diff -Nur linux-2.6.21.1/fs/Makefile linux-2.6.21.1-owrt/fs/Makefile | ||||
| --- linux-2.6.21.1/fs/Makefile	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/fs/Makefile	2007-05-23 19:09:55.000000000 +0200 | ||||
| @@ -68,6 +68,7 @@ | ||||
|  obj-$(CONFIG_JBD2)		+= jbd2/ | ||||
|  obj-$(CONFIG_EXT2_FS)		+= ext2/ | ||||
|  obj-$(CONFIG_CRAMFS)		+= cramfs/ | ||||
| @@ -84,9 +84,9 @@ diff -urN linux-2.6.19.old/fs/Makefile linux-2.6.19.dev/fs/Makefile | ||||
|  obj-$(CONFIG_RAMFS)		+= ramfs/ | ||||
|  obj-$(CONFIG_HUGETLBFS)		+= hugetlbfs/ | ||||
|  obj-$(CONFIG_CODA_FS)		+= coda/ | ||||
| diff -urN linux-2.6.19.old/fs/squashfs/inode.c linux-2.6.19.dev/fs/squashfs/inode.c | ||||
| --- linux-2.6.19.old/fs/squashfs/inode.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/fs/squashfs/inode.c	2006-12-14 03:13:16.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/squashfs/inode.c linux-2.6.21.1-owrt/fs/squashfs/inode.c | ||||
| --- linux-2.6.21.1/fs/squashfs/inode.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/squashfs/inode.c	2007-05-23 19:52:20.000000000 +0200 | ||||
| @@ -0,0 +1,2124 @@ | ||||
| +/* | ||||
| + * Squashfs - a compressed read only filesystem for Linux | ||||
| @@ -2160,13 +2160,13 @@ diff -urN linux-2.6.19.old/fs/squashfs/inode.c linux-2.6.19.dev/fs/squashfs/inod | ||||
| +} | ||||
| + | ||||
| + | ||||
| +static kmem_cache_t * squashfs_inode_cachep; | ||||
| +static struct kmem_cache * squashfs_inode_cachep; | ||||
| + | ||||
| + | ||||
| +static struct inode *squashfs_alloc_inode(struct super_block *sb) | ||||
| +{ | ||||
| +	struct squashfs_inode_info *ei; | ||||
| +	ei = kmem_cache_alloc(squashfs_inode_cachep, SLAB_KERNEL); | ||||
| +	ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL); | ||||
| +	if (!ei) | ||||
| +		return NULL; | ||||
| +	return &ei->vfs_inode; | ||||
| @@ -2179,7 +2179,7 @@ diff -urN linux-2.6.19.old/fs/squashfs/inode.c linux-2.6.19.dev/fs/squashfs/inod | ||||
| +} | ||||
| + | ||||
| + | ||||
| +static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) | ||||
| +static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | ||||
| +{ | ||||
| +	struct squashfs_inode_info *ei = foo; | ||||
| + | ||||
| @@ -2212,9 +2212,9 @@ diff -urN linux-2.6.19.old/fs/squashfs/inode.c linux-2.6.19.dev/fs/squashfs/inod | ||||
| +MODULE_DESCRIPTION("squashfs, a compressed read-only filesystem"); | ||||
| +MODULE_AUTHOR("Phillip Lougher <phillip@lougher.org.uk>"); | ||||
| +MODULE_LICENSE("GPL"); | ||||
| diff -urN linux-2.6.19.old/fs/squashfs/Makefile linux-2.6.19.dev/fs/squashfs/Makefile | ||||
| --- linux-2.6.19.old/fs/squashfs/Makefile	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/fs/squashfs/Makefile	2006-12-14 03:13:16.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/squashfs/Makefile linux-2.6.21.1-owrt/fs/squashfs/Makefile | ||||
| --- linux-2.6.21.1/fs/squashfs/Makefile	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/squashfs/Makefile	2007-05-23 19:09:55.000000000 +0200 | ||||
| @@ -0,0 +1,7 @@ | ||||
| +# | ||||
| +# Makefile for the linux squashfs routines. | ||||
| @@ -2223,9 +2223,9 @@ diff -urN linux-2.6.19.old/fs/squashfs/Makefile linux-2.6.19.dev/fs/squashfs/Mak | ||||
| +obj-$(CONFIG_SQUASHFS) += squashfs.o | ||||
| +squashfs-y += inode.o | ||||
| +squashfs-y += squashfs2_0.o | ||||
| diff -urN linux-2.6.19.old/fs/squashfs/squashfs2_0.c linux-2.6.19.dev/fs/squashfs/squashfs2_0.c | ||||
| --- linux-2.6.19.old/fs/squashfs/squashfs2_0.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/fs/squashfs/squashfs2_0.c	2006-12-14 03:13:16.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/squashfs/squashfs2_0.c linux-2.6.21.1-owrt/fs/squashfs/squashfs2_0.c | ||||
| --- linux-2.6.21.1/fs/squashfs/squashfs2_0.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/squashfs/squashfs2_0.c	2007-05-23 19:09:55.000000000 +0200 | ||||
| @@ -0,0 +1,758 @@ | ||||
| +/* | ||||
| + * Squashfs - a compressed read only filesystem for Linux | ||||
| @@ -2985,9 +2985,9 @@ diff -urN linux-2.6.19.old/fs/squashfs/squashfs2_0.c linux-2.6.19.dev/fs/squashf | ||||
| + | ||||
| +	return 1; | ||||
| +} | ||||
| diff -urN linux-2.6.19.old/fs/squashfs/squashfs.h linux-2.6.19.dev/fs/squashfs/squashfs.h | ||||
| --- linux-2.6.19.old/fs/squashfs/squashfs.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/fs/squashfs/squashfs.h	2006-12-14 03:13:16.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/squashfs/squashfs.h linux-2.6.21.1-owrt/fs/squashfs/squashfs.h | ||||
| --- linux-2.6.21.1/fs/squashfs/squashfs.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/squashfs/squashfs.h	2007-05-23 19:09:56.000000000 +0200 | ||||
| @@ -0,0 +1,86 @@ | ||||
| +/* | ||||
| + * Squashfs - a compressed read only filesystem for Linux | ||||
| @@ -3075,9 +3075,9 @@ diff -urN linux-2.6.19.old/fs/squashfs/squashfs.h linux-2.6.19.dev/fs/squashfs/s | ||||
| +	return 0; | ||||
| +} | ||||
| +#endif | ||||
| diff -urN linux-2.6.19.old/include/linux/squashfs_fs.h linux-2.6.19.dev/include/linux/squashfs_fs.h | ||||
| --- linux-2.6.19.old/include/linux/squashfs_fs.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/squashfs_fs.h	2006-12-14 03:13:16.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/squashfs_fs.h linux-2.6.21.1-owrt/include/linux/squashfs_fs.h | ||||
| --- linux-2.6.21.1/include/linux/squashfs_fs.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/squashfs_fs.h	2007-05-23 19:09:56.000000000 +0200 | ||||
| @@ -0,0 +1,911 @@ | ||||
| +#ifndef SQUASHFS_FS | ||||
| +#define SQUASHFS_FS | ||||
| @@ -3990,9 +3990,9 @@ diff -urN linux-2.6.19.old/include/linux/squashfs_fs.h linux-2.6.19.dev/include/ | ||||
| + | ||||
| +#endif | ||||
| +#endif | ||||
| diff -urN linux-2.6.19.old/include/linux/squashfs_fs_i.h linux-2.6.19.dev/include/linux/squashfs_fs_i.h | ||||
| --- linux-2.6.19.old/include/linux/squashfs_fs_i.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/squashfs_fs_i.h	2006-12-14 03:13:16.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/squashfs_fs_i.h linux-2.6.21.1-owrt/include/linux/squashfs_fs_i.h | ||||
| --- linux-2.6.21.1/include/linux/squashfs_fs_i.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/squashfs_fs_i.h	2007-05-23 19:09:56.000000000 +0200 | ||||
| @@ -0,0 +1,45 @@ | ||||
| +#ifndef SQUASHFS_FS_I | ||||
| +#define SQUASHFS_FS_I | ||||
| @@ -4039,9 +4039,9 @@ diff -urN linux-2.6.19.old/include/linux/squashfs_fs_i.h linux-2.6.19.dev/includ | ||||
| +	struct inode	vfs_inode; | ||||
| +}; | ||||
| +#endif | ||||
| diff -urN linux-2.6.19.old/include/linux/squashfs_fs_sb.h linux-2.6.19.dev/include/linux/squashfs_fs_sb.h | ||||
| --- linux-2.6.19.old/include/linux/squashfs_fs_sb.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/squashfs_fs_sb.h	2006-12-14 03:13:16.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/squashfs_fs_sb.h linux-2.6.21.1-owrt/include/linux/squashfs_fs_sb.h | ||||
| --- linux-2.6.21.1/include/linux/squashfs_fs_sb.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/squashfs_fs_sb.h	2007-05-23 19:09:56.000000000 +0200 | ||||
| @@ -0,0 +1,74 @@ | ||||
| +#ifndef SQUASHFS_FS_SB | ||||
| +#define SQUASHFS_FS_SB | ||||
| @@ -4117,9 +4117,9 @@ diff -urN linux-2.6.19.old/include/linux/squashfs_fs_sb.h linux-2.6.19.dev/inclu | ||||
| +	int			(*read_fragment_index_table)(struct super_block *s); | ||||
| +}; | ||||
| +#endif | ||||
| diff -urN linux-2.6.19.old/init/do_mounts_rd.c linux-2.6.19.dev/init/do_mounts_rd.c | ||||
| --- linux-2.6.19.old/init/do_mounts_rd.c	2006-11-29 22:57:37.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/init/do_mounts_rd.c	2006-12-14 03:13:16.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/init/do_mounts_rd.c linux-2.6.21.1-owrt/init/do_mounts_rd.c | ||||
| --- linux-2.6.21.1/init/do_mounts_rd.c	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/init/do_mounts_rd.c	2007-05-23 19:09:56.000000000 +0200 | ||||
| @@ -5,6 +5,7 @@ | ||||
|  #include <linux/ext2_fs.h> | ||||
|  #include <linux/romfs_fs.h> | ||||
|   | ||||
| @@ -1,15 +1,110 @@ | ||||
| --- linux-2.6.19.old/lib/Makefile	2007-04-18 17:41:22.679403384 +0200 | ||||
| +++ linux-2.6.19.dev/lib/Makefile	2007-04-18 17:41:43.303268080 +0200 | ||||
| @@ -54,6 +54,7 @@ | ||||
|  obj-$(CONFIG_AUDIT_GENERIC) += audit.o | ||||
|   | ||||
|  obj-$(CONFIG_SWIOTLB) += swiotlb.o | ||||
| +obj-y += LzmaDecode.o | ||||
|   | ||||
|  hostprogs-y	:= gen_crc32table | ||||
|  clean-files	:= crc32table.h | ||||
| --- linux-2.6.19.old/lib/LzmaDecode.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/lib/LzmaDecode.c	2006-12-14 03:13:20.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/LzmaDecode.h linux-2.6.21.1-owrt/include/linux/LzmaDecode.h | ||||
| --- linux-2.6.21.1/include/linux/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/LzmaDecode.h	2007-05-14 10:51:05.000000000 +0200 | ||||
| @@ -0,0 +1,100 @@ | ||||
| +/* | ||||
| +  LzmaDecode.h | ||||
| +  LZMA Decoder interface | ||||
| + | ||||
| +  LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25) | ||||
| +  http://www.7-zip.org/ | ||||
| + | ||||
| +  LZMA SDK is licensed under two licenses: | ||||
| +  1) GNU Lesser General Public License (GNU LGPL) | ||||
| +  2) Common Public License (CPL) | ||||
| +  It means that you can select one of these two licenses and | ||||
| +  follow rules of that license. | ||||
| + | ||||
| +  SPECIAL EXCEPTION: | ||||
| +  Igor Pavlov, as the author of this code, expressly permits you to | ||||
| +  statically or dynamically link your code (or bind by name) to the | ||||
| +  interfaces of this file without subjecting your linked code to the | ||||
| +  terms of the CPL or GNU LGPL. Any modifications or additions | ||||
| +  to this file, however, are subject to the LGPL or CPL terms. | ||||
| +*/ | ||||
| + | ||||
| +#ifndef __LZMADECODE_H | ||||
| +#define __LZMADECODE_H | ||||
| + | ||||
| +/* #define _LZMA_IN_CB */ | ||||
| +/* Use callback for input data */ | ||||
| + | ||||
| +/* #define _LZMA_OUT_READ */ | ||||
| +/* Use read function for output data */ | ||||
| + | ||||
| +/* #define _LZMA_PROB32 */ | ||||
| +/* It can increase speed on some 32-bit CPUs, | ||||
| +   but memory usage will be doubled in that case */ | ||||
| + | ||||
| +/* #define _LZMA_LOC_OPT */ | ||||
| +/* Enable local speed optimizations inside code */ | ||||
| + | ||||
| +#ifndef UInt32 | ||||
| +#ifdef _LZMA_UINT32_IS_ULONG | ||||
| +#define UInt32 unsigned long | ||||
| +#else | ||||
| +#define UInt32 unsigned int | ||||
| +#endif | ||||
| +#endif | ||||
| + | ||||
| +#ifdef _LZMA_PROB32 | ||||
| +#define CProb UInt32 | ||||
| +#else | ||||
| +#define CProb unsigned short | ||||
| +#endif | ||||
| + | ||||
| +#define LZMA_RESULT_OK 0 | ||||
| +#define LZMA_RESULT_DATA_ERROR 1 | ||||
| +#define LZMA_RESULT_NOT_ENOUGH_MEM 2 | ||||
| + | ||||
| +#ifdef _LZMA_IN_CB | ||||
| +typedef struct _ILzmaInCallback | ||||
| +{ | ||||
| +  int (*Read)(void *object, unsigned char **buffer, UInt32 *bufferSize); | ||||
| +} ILzmaInCallback; | ||||
| +#endif | ||||
| + | ||||
| +#define LZMA_BASE_SIZE 1846 | ||||
| +#define LZMA_LIT_SIZE 768 | ||||
| + | ||||
| +/* | ||||
| +bufferSize = (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp)))* sizeof(CProb) | ||||
| +bufferSize += 100 in case of _LZMA_OUT_READ | ||||
| +by default CProb is unsigned short, | ||||
| +but if specify _LZMA_PROB_32, CProb will be UInt32(unsigned int) | ||||
| +*/ | ||||
| + | ||||
| +#ifdef _LZMA_OUT_READ | ||||
| +int LzmaDecoderInit( | ||||
| +    unsigned char *buffer, UInt32 bufferSize, | ||||
| +    int lc, int lp, int pb, | ||||
| +    unsigned char *dictionary, UInt32 dictionarySize, | ||||
| +  #ifdef _LZMA_IN_CB | ||||
| +    ILzmaInCallback *inCallback | ||||
| +  #else | ||||
| +    unsigned char *inStream, UInt32 inSize | ||||
| +  #endif | ||||
| +); | ||||
| +#endif | ||||
| + | ||||
| +int LzmaDecode( | ||||
| +    unsigned char *buffer, | ||||
| +  #ifndef _LZMA_OUT_READ | ||||
| +    UInt32 bufferSize, | ||||
| +    int lc, int lp, int pb, | ||||
| +  #ifdef _LZMA_IN_CB | ||||
| +    ILzmaInCallback *inCallback, | ||||
| +  #else | ||||
| +    unsigned char *inStream, UInt32 inSize, | ||||
| +  #endif | ||||
| +  #endif | ||||
| +    unsigned char *outStream, UInt32 outSize, | ||||
| +    UInt32 *outSizeProcessed); | ||||
| + | ||||
| +#endif | ||||
| diff -Nur linux-2.6.21.1/lib/LzmaDecode.c linux-2.6.21.1-owrt/lib/LzmaDecode.c | ||||
| --- linux-2.6.21.1/lib/LzmaDecode.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/lib/LzmaDecode.c	2007-05-14 10:51:05.000000000 +0200 | ||||
| @@ -0,0 +1,663 @@ | ||||
| +/* | ||||
| +  LzmaDecode.c | ||||
| @@ -674,107 +769,23 @@ | ||||
| +  *outSizeProcessed = nowPos; | ||||
| +  return LZMA_RESULT_OK; | ||||
| +} | ||||
| --- linux-2.6.19.old/include/linux/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/LzmaDecode.h	2006-12-14 03:13:20.000000000 +0100 | ||||
| @@ -0,0 +1,100 @@ | ||||
| +/* | ||||
| +  LzmaDecode.h | ||||
| +  LZMA Decoder interface | ||||
| diff -Nur linux-2.6.21.1/lib/Makefile linux-2.6.21.1-owrt/lib/Makefile | ||||
| --- linux-2.6.21.1/lib/Makefile	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/lib/Makefile	2007-05-14 10:52:43.000000000 +0200 | ||||
| @@ -12,7 +12,7 @@ | ||||
|   | ||||
|  lib-y	+= kobject.o kref.o kobject_uevent.o klist.o | ||||
|   | ||||
| -obj-y += sort.o parser.o halfmd4.o debug_locks.o random32.o bust_spinlocks.o | ||||
| +obj-y += sort.o parser.o halfmd4.o debug_locks.o random32.o bust_spinlocks.o LzmaDecode.o | ||||
|   | ||||
|  ifeq ($(CONFIG_DEBUG_KOBJECT),y) | ||||
|  CFLAGS_kobject.o += -DDEBUG | ||||
| @@ -56,6 +56,7 @@ | ||||
|  obj-$(CONFIG_AUDIT_GENERIC) += audit.o | ||||
|   | ||||
|  obj-$(CONFIG_SWIOTLB) += swiotlb.o | ||||
| + | ||||
| +  LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25) | ||||
| +  http://www.7-zip.org/ | ||||
| + | ||||
| +  LZMA SDK is licensed under two licenses: | ||||
| +  1) GNU Lesser General Public License (GNU LGPL) | ||||
| +  2) Common Public License (CPL) | ||||
| +  It means that you can select one of these two licenses and | ||||
| +  follow rules of that license. | ||||
| + | ||||
| +  SPECIAL EXCEPTION: | ||||
| +  Igor Pavlov, as the author of this code, expressly permits you to | ||||
| +  statically or dynamically link your code (or bind by name) to the | ||||
| +  interfaces of this file without subjecting your linked code to the | ||||
| +  terms of the CPL or GNU LGPL. Any modifications or additions | ||||
| +  to this file, however, are subject to the LGPL or CPL terms. | ||||
| +*/ | ||||
| + | ||||
| +#ifndef __LZMADECODE_H | ||||
| +#define __LZMADECODE_H | ||||
| + | ||||
| +/* #define _LZMA_IN_CB */ | ||||
| +/* Use callback for input data */ | ||||
| + | ||||
| +/* #define _LZMA_OUT_READ */ | ||||
| +/* Use read function for output data */ | ||||
| + | ||||
| +/* #define _LZMA_PROB32 */ | ||||
| +/* It can increase speed on some 32-bit CPUs, | ||||
| +   but memory usage will be doubled in that case */ | ||||
| + | ||||
| +/* #define _LZMA_LOC_OPT */ | ||||
| +/* Enable local speed optimizations inside code */ | ||||
| + | ||||
| +#ifndef UInt32 | ||||
| +#ifdef _LZMA_UINT32_IS_ULONG | ||||
| +#define UInt32 unsigned long | ||||
| +#else | ||||
| +#define UInt32 unsigned int | ||||
| +#endif | ||||
| +#endif | ||||
| + | ||||
| +#ifdef _LZMA_PROB32 | ||||
| +#define CProb UInt32 | ||||
| +#else | ||||
| +#define CProb unsigned short | ||||
| +#endif | ||||
| + | ||||
| +#define LZMA_RESULT_OK 0 | ||||
| +#define LZMA_RESULT_DATA_ERROR 1 | ||||
| +#define LZMA_RESULT_NOT_ENOUGH_MEM 2 | ||||
| + | ||||
| +#ifdef _LZMA_IN_CB | ||||
| +typedef struct _ILzmaInCallback | ||||
| +{ | ||||
| +  int (*Read)(void *object, unsigned char **buffer, UInt32 *bufferSize); | ||||
| +} ILzmaInCallback; | ||||
| +#endif | ||||
| + | ||||
| +#define LZMA_BASE_SIZE 1846 | ||||
| +#define LZMA_LIT_SIZE 768 | ||||
| + | ||||
| +/* | ||||
| +bufferSize = (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp)))* sizeof(CProb) | ||||
| +bufferSize += 100 in case of _LZMA_OUT_READ | ||||
| +by default CProb is unsigned short, | ||||
| +but if specify _LZMA_PROB_32, CProb will be UInt32(unsigned int) | ||||
| +*/ | ||||
| + | ||||
| +#ifdef _LZMA_OUT_READ | ||||
| +int LzmaDecoderInit( | ||||
| +    unsigned char *buffer, UInt32 bufferSize, | ||||
| +    int lc, int lp, int pb, | ||||
| +    unsigned char *dictionary, UInt32 dictionarySize, | ||||
| +  #ifdef _LZMA_IN_CB | ||||
| +    ILzmaInCallback *inCallback | ||||
| +  #else | ||||
| +    unsigned char *inStream, UInt32 inSize | ||||
| +  #endif | ||||
| +); | ||||
| +#endif | ||||
| + | ||||
| +int LzmaDecode( | ||||
| +    unsigned char *buffer, | ||||
| +  #ifndef _LZMA_OUT_READ | ||||
| +    UInt32 bufferSize, | ||||
| +    int lc, int lp, int pb, | ||||
| +  #ifdef _LZMA_IN_CB | ||||
| +    ILzmaInCallback *inCallback, | ||||
| +  #else | ||||
| +    unsigned char *inStream, UInt32 inSize, | ||||
| +  #endif | ||||
| +  #endif | ||||
| +    unsigned char *outStream, UInt32 outSize, | ||||
| +    UInt32 *outSizeProcessed); | ||||
| + | ||||
| +#endif | ||||
|  | ||||
|  obj-$(CONFIG_FAULT_INJECTION) += fault-inject.o | ||||
|   | ||||
|  lib-$(CONFIG_GENERIC_BUG) += bug.o | ||||
|   | ||||
| @@ -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 | ||||
| --- linux.old/drivers/mtd/Kconfig	2007-01-10 20:10:37.000000000 +0100 | ||||
| +++ linux.dev/drivers/mtd/Kconfig	2007-02-19 23:00:53.739457000 +0100 | ||||
| diff -Nur linux-2.6.21.1/drivers/mtd/Kconfig linux-2.6.21.1-owrt/drivers/mtd/Kconfig | ||||
| --- linux-2.6.21.1/drivers/mtd/Kconfig	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/drivers/mtd/Kconfig	2007-05-14 10:59:59.000000000 +0200 | ||||
| @@ -49,6 +49,11 @@ | ||||
|  	  devices. Partitioning on NFTL 'devices' is a different - that's the | ||||
|  	  'normal' form of partitioning used on a block device. | ||||
| @@ -13,9 +13,9 @@ diff -ur linux.old/drivers/mtd/Kconfig linux.dev/drivers/mtd/Kconfig | ||||
|  config MTD_REDBOOT_PARTS | ||||
|  	tristate "RedBoot partition table parsing" | ||||
|  	depends on MTD_PARTITIONS | ||||
| diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | ||||
| --- linux.old/drivers/mtd/mtdpart.c	2007-01-10 20:10:37.000000000 +0100 | ||||
| +++ linux.dev/drivers/mtd/mtdpart.c	2007-02-20 00:01:38.587355896 +0100 | ||||
| diff -Nur linux-2.6.21.1/drivers/mtd/mtdpart.c linux-2.6.21.1-owrt/drivers/mtd/mtdpart.c | ||||
| --- linux-2.6.21.1/drivers/mtd/mtdpart.c	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/drivers/mtd/mtdpart.c	2007-05-14 11:18:56.000000000 +0200 | ||||
| @@ -20,6 +20,8 @@ | ||||
|  #include <linux/mtd/mtd.h> | ||||
|  #include <linux/mtd/partitions.h> | ||||
| @@ -25,7 +25,7 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | ||||
|   | ||||
|  /* Our partition linked list */ | ||||
|  static LIST_HEAD(mtd_partitions); | ||||
| @@ -303,6 +305,173 @@ | ||||
| @@ -308,6 +310,172 @@ | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -35,14 +35,13 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | ||||
| +	struct mtd_part *slave; | ||||
| +	 | ||||
| +	/* allocate the partition structure */ | ||||
| +	slave = kmalloc (sizeof(*slave), GFP_KERNEL); | ||||
| +	slave = kzalloc (sizeof(*slave), GFP_KERNEL); | ||||
| +	if (!slave) { | ||||
| +		printk ("memory allocation error while creating partitions for \"%s\"\n", | ||||
| +			master->name); | ||||
| +		del_mtd_partitions(master); | ||||
| +		return -ENOMEM; | ||||
| +	} | ||||
| +	memset(slave, 0, sizeof(*slave)); | ||||
| +	list_add(&slave->list, &mtd_partitions); | ||||
| + | ||||
| +	/* set up the MTD object for this partition */ | ||||
| @@ -51,8 +50,8 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | ||||
| +	slave->mtd.size = part->size; | ||||
| +	slave->mtd.writesize = master->writesize; | ||||
| +	slave->mtd.oobsize = master->oobsize; | ||||
| +	slave->mtd.ecctype = master->ecctype; | ||||
| +	slave->mtd.eccsize = master->eccsize; | ||||
| +	slave->mtd.oobavail = master->oobavail; | ||||
| +	slave->mtd.subpage_sft = master->subpage_sft; | ||||
| + | ||||
| +	slave->mtd.name = part->name; | ||||
| +	slave->mtd.bank_size = master->bank_size; | ||||
| @@ -199,7 +198,7 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | ||||
|  /* | ||||
|   * This function, given a master MTD object and a partition table, creates | ||||
|   * and registers slave MTD objects which are bound to the master according to | ||||
| @@ -314,171 +483,53 @@ | ||||
| @@ -319,170 +487,53 @@ | ||||
|  		       const struct mtd_partition *parts, | ||||
|  		       int nbparts) | ||||
|  { | ||||
| @@ -250,14 +249,13 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | ||||
| +					return ret; | ||||
|   | ||||
| -		/* allocate the partition structure */ | ||||
| -		slave = kmalloc (sizeof(*slave), GFP_KERNEL); | ||||
| -		slave = kzalloc (sizeof(*slave), GFP_KERNEL); | ||||
| -		if (!slave) { | ||||
| -			printk ("memory allocation error while creating partitions for \"%s\"\n", | ||||
| -				master->name); | ||||
| -			del_mtd_partitions(master); | ||||
| -			return -ENOMEM; | ||||
| -		} | ||||
| -		memset(slave, 0, sizeof(*slave)); | ||||
| -		list_add(&slave->list, &mtd_partitions); | ||||
| - | ||||
| -		/* set up the MTD object for this partition */ | ||||
| @@ -266,8 +264,8 @@ diff -ur linux.old/drivers/mtd/mtdpart.c linux.dev/drivers/mtd/mtdpart.c | ||||
| -		slave->mtd.size = parts[i].size; | ||||
| -		slave->mtd.writesize = master->writesize; | ||||
| -		slave->mtd.oobsize = master->oobsize; | ||||
| -		slave->mtd.ecctype = master->ecctype; | ||||
| -		slave->mtd.eccsize = master->eccsize; | ||||
| -		slave->mtd.oobavail = master->oobavail; | ||||
| -		slave->mtd.subpage_sft = master->subpage_sft; | ||||
| - | ||||
| -		slave->mtd.name = parts[i].name; | ||||
| -		slave->mtd.bank_size = master->bank_size; | ||||
|   | ||||
| @@ -905,12 +905,12 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_ipp2p.c linux-2.6.19.dev/net/i | ||||
| +static int __init init(void) | ||||
| +{ | ||||
| +    printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION); | ||||
| +    return ipt_register_match(&ipp2p_match); | ||||
| +    return xt_register_match(&ipp2p_match); | ||||
| +} | ||||
| + | ||||
| +static void __exit fini(void) | ||||
| +{ | ||||
| +    ipt_unregister_match(&ipp2p_match); | ||||
| +    xt_unregister_match(&ipp2p_match); | ||||
| +    printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION); | ||||
| +} | ||||
| + | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| diff -urN linux-2.6.19.old/include/net/xfrmudp.h linux-2.6.19.dev/include/net/xfrmudp.h | ||||
| --- linux-2.6.19.old/include/net/xfrmudp.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/net/xfrmudp.h	2006-12-14 03:13:41.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/net/xfrmudp.h linux-2.6.21.1-owrt/include/net/xfrmudp.h | ||||
| --- linux-2.6.21.1/include/net/xfrmudp.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/net/xfrmudp.h	2007-05-14 11:26:11.000000000 +0200 | ||||
| @@ -0,0 +1,10 @@ | ||||
| +/* | ||||
| + * pointer to function for type that xfrm4_input wants, to permit | ||||
| @@ -12,10 +12,10 @@ diff -urN linux-2.6.19.old/include/net/xfrmudp.h linux-2.6.19.dev/include/net/xf | ||||
| +extern int udp4_register_esp_rcvencap(xfrm4_rcv_encap_t func | ||||
| +				      , xfrm4_rcv_encap_t *oldfunc); | ||||
| +extern int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/Kconfig linux-2.6.19.dev/net/ipv4/Kconfig | ||||
| --- linux-2.6.19.old/net/ipv4/Kconfig	2006-11-29 22:57:37.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/Kconfig	2006-12-14 03:13:41.000000000 +0100 | ||||
| @@ -273,6 +273,12 @@ | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/Kconfig linux-2.6.21.1-owrt/net/ipv4/Kconfig | ||||
| --- linux-2.6.21.1/net/ipv4/Kconfig	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/Kconfig	2007-05-14 11:26:11.000000000 +0200 | ||||
| @@ -266,6 +266,12 @@ | ||||
|  	  Network), but can be distributed all over the Internet. If you want | ||||
|  	  to do that, say Y here and to "IP multicast routing" below. | ||||
|   | ||||
| @@ -28,14 +28,15 @@ diff -urN linux-2.6.19.old/net/ipv4/Kconfig linux-2.6.19.dev/net/ipv4/Kconfig | ||||
|  config IP_MROUTE | ||||
|  	bool "IP: multicast routing" | ||||
|  	depends on IP_MULTICAST | ||||
| diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c | ||||
| --- linux-2.6.19.old/net/ipv4/udp.c	2006-11-29 22:57:37.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/udp.c	2006-12-14 03:13:41.000000000 +0100 | ||||
| @@ -108,11 +108,14 @@ | ||||
|  #include <net/inet_common.h> | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/udp.c linux-2.6.21.1-owrt/net/ipv4/udp.c | ||||
| --- linux-2.6.21.1/net/ipv4/udp.c	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/udp.c	2007-05-14 11:42:44.000000000 +0200 | ||||
| @@ -101,12 +101,15 @@ | ||||
|  #include <net/route.h> | ||||
|  #include <net/checksum.h> | ||||
|  #include <net/xfrm.h> | ||||
| +#include <net/xfrmudp.h> | ||||
|  #include "udp_impl.h" | ||||
|   | ||||
|  /* | ||||
|   *	Snmp MIB for the UDP layer | ||||
| @@ -46,8 +47,8 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c | ||||
|  DEFINE_SNMP_STAT(struct udp_mib, udp_statistics) __read_mostly; | ||||
|   | ||||
|  struct hlist_head udp_hash[UDP_HTABLE_SIZE]; | ||||
| @@ -917,6 +920,42 @@ | ||||
|  	sk_common_release(sk); | ||||
| @@ -915,6 +918,42 @@ | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| +#if defined(CONFIG_XFRM) || defined(CONFIG_IPSEC_NAT_TRAVERSAL) | ||||
| @@ -89,19 +90,16 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c | ||||
|  /* return: | ||||
|   * 	1  if the the UDP system should process it | ||||
|   *	0  if we should drop this packet | ||||
| @@ -924,9 +963,9 @@ | ||||
| @@ -922,7 +961,7 @@ | ||||
|   */ | ||||
|  static int udp_encap_rcv(struct sock * sk, struct sk_buff *skb) | ||||
|  { | ||||
| -#ifndef CONFIG_XFRM | ||||
| +#if !defined(CONFIG_XFRM) && !defined(CONFIG_IPSEC_NAT_TRAVERSAL) | ||||
|  	return 1;  | ||||
| -#else | ||||
| +#else /* either CONFIG_XFRM or CONFIG_IPSEC_NAT_TRAVERSAL */ | ||||
|  	return 1; | ||||
|  #else | ||||
|  	struct udp_sock *up = udp_sk(sk); | ||||
|    	struct udphdr *uh; | ||||
|  	struct iphdr *iph; | ||||
| @@ -939,11 +978,11 @@ | ||||
| @@ -937,11 +976,11 @@ | ||||
|  	/* if we're overly short, let UDP handle it */ | ||||
|  	len = skb->len - sizeof(struct udphdr); | ||||
|  	if (len <= 0) | ||||
| @@ -115,7 +113,7 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c | ||||
|   | ||||
|  	/* If this is a paged skb, make sure we pull up | ||||
|  	 * whatever data we need to look at. */ | ||||
| @@ -966,7 +1005,7 @@ | ||||
| @@ -964,7 +1003,7 @@ | ||||
|  			len = sizeof(struct udphdr); | ||||
|  		} else | ||||
|  			/* Must be an IKE packet.. pass it through */ | ||||
| @@ -124,7 +122,7 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c | ||||
|  		break; | ||||
|  	case UDP_ENCAP_ESPINUDP_NON_IKE: | ||||
|  		/* Check if this is a keepalive packet.  If so, eat it. */ | ||||
| @@ -979,7 +1018,7 @@ | ||||
| @@ -977,7 +1016,7 @@ | ||||
|  			len = sizeof(struct udphdr) + 2 * sizeof(u32); | ||||
|  		} else | ||||
|  			/* Must be an IKE packet.. pass it through */ | ||||
| @@ -133,7 +131,7 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c | ||||
|  		break; | ||||
|  	} | ||||
|   | ||||
| @@ -990,6 +1029,8 @@ | ||||
| @@ -988,6 +1027,8 @@ | ||||
|  	 */ | ||||
|  	if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) | ||||
|  		return 0; | ||||
| @@ -142,24 +140,24 @@ diff -urN linux-2.6.19.old/net/ipv4/udp.c linux-2.6.19.dev/net/ipv4/udp.c | ||||
|   | ||||
|  	/* Now we can update and verify the packet length... */ | ||||
|  	iph = skb->nh.iph; | ||||
| @@ -1055,9 +1096,13 @@ | ||||
| @@ -1051,9 +1092,13 @@ | ||||
|  			return 0; | ||||
|  		} | ||||
|  		if (ret < 0) { | ||||
| -			/* process the ESP packet */ | ||||
| -			ret = xfrm4_rcv_encap(skb, up->encap_type); | ||||
| -			UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS); | ||||
| -			UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag); | ||||
| +			if(xfrm4_rcv_encap_func != NULL) { | ||||
| +			  ret = (*xfrm4_rcv_encap_func)(skb, up->encap_type); | ||||
| +			  UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS); | ||||
| +			  UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, up->pcflag); | ||||
| +			} else { | ||||
| +			  UDP_INC_STATS_BH(UDP_MIB_INERRORS); | ||||
| +			  UDP_INC_STATS_BH(UDP_MIB_INERRORS, up->pcflag); | ||||
| +			  ret = 1; | ||||
| +			} | ||||
|  			return -ret; | ||||
|  		} | ||||
|  		/* FALLTHROUGH -- it's a UDP Packet */ | ||||
| @@ -1639,3 +1684,9 @@ | ||||
| @@ -1733,3 +1778,9 @@ | ||||
|  EXPORT_SYMBOL(udp_proc_register); | ||||
|  EXPORT_SYMBOL(udp_proc_unregister); | ||||
|  #endif | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,489 @@ | ||||
| +#ifndef _IP_SET_H | ||||
| +#define _IP_SET_H | ||||
| @@ -491,9 +491,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set.h linux-2.6.19.de | ||||
| +#endif				/* __KERNEL__ */ | ||||
| + | ||||
| +#endif /*_IP_SET_H*/ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iphash.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_iphash.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iphash.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_iphash.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_iphash.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_iphash.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_iphash.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_iphash.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,30 @@ | ||||
| +#ifndef __IP_SET_IPHASH_H | ||||
| +#define __IP_SET_IPHASH_H | ||||
| @@ -525,9 +525,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iphash.h linux-2. | ||||
| +}; | ||||
| + | ||||
| +#endif	/* __IP_SET_IPHASH_H */ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_ipmap.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_ipmap.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_ipmap.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_ipmap.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_ipmap.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_ipmap.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_ipmap.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_ipmap.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,56 @@ | ||||
| +#ifndef __IP_SET_IPMAP_H | ||||
| +#define __IP_SET_IPMAP_H | ||||
| @@ -585,9 +585,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_ipmap.h linux-2.6 | ||||
| +} | ||||
| + | ||||
| +#endif /* __IP_SET_IPMAP_H */ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iptree.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_iptree.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iptree.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_iptree.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_iptree.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_iptree.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_iptree.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_iptree.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,39 @@ | ||||
| +#ifndef __IP_SET_IPTREE_H | ||||
| +#define __IP_SET_IPTREE_H | ||||
| @@ -628,9 +628,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_iptree.h linux-2. | ||||
| +}; | ||||
| + | ||||
| +#endif	/* __IP_SET_IPTREE_H */ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_jhash.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_jhash.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_jhash.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_jhash.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_jhash.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_jhash.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_jhash.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_jhash.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,148 @@ | ||||
| +#ifndef _LINUX_IPSET_JHASH_H | ||||
| +#define _LINUX_IPSET_JHASH_H | ||||
| @@ -780,9 +780,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_jhash.h linux-2.6 | ||||
| +} | ||||
| + | ||||
| +#endif /* _LINUX_IPSET_JHASH_H */ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_macipmap.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_macipmap.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_macipmap.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_macipmap.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_macipmap.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_macipmap.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_macipmap.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_macipmap.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,38 @@ | ||||
| +#ifndef __IP_SET_MACIPMAP_H | ||||
| +#define __IP_SET_MACIPMAP_H | ||||
| @@ -822,9 +822,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_macipmap.h linux- | ||||
| +}; | ||||
| + | ||||
| +#endif	/* __IP_SET_MACIPMAP_H */ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_malloc.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_malloc.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_malloc.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_malloc.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_malloc.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_malloc.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_malloc.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_malloc.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,42 @@ | ||||
| +#ifndef _IP_SET_MALLOC_H | ||||
| +#define _IP_SET_MALLOC_H | ||||
| @@ -868,9 +868,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_malloc.h linux-2. | ||||
| +#endif				/* __KERNEL__ */ | ||||
| + | ||||
| +#endif /*_IP_SET_MALLOC_H*/ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_nethash.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_nethash.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_nethash.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_nethash.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_nethash.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_nethash.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_nethash.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_nethash.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,55 @@ | ||||
| +#ifndef __IP_SET_NETHASH_H | ||||
| +#define __IP_SET_NETHASH_H | ||||
| @@ -927,9 +927,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_nethash.h linux-2 | ||||
| +} | ||||
| + | ||||
| +#endif	/* __IP_SET_NETHASH_H */ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_portmap.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_portmap.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_portmap.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_portmap.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_portmap.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_portmap.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_portmap.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_portmap.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,25 @@ | ||||
| +#ifndef __IP_SET_PORTMAP_H | ||||
| +#define __IP_SET_PORTMAP_H | ||||
| @@ -956,9 +956,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_portmap.h linux-2 | ||||
| +}; | ||||
| + | ||||
| +#endif /* __IP_SET_PORTMAP_H */ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_prime.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_prime.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_prime.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ip_set_prime.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_prime.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_prime.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ip_set_prime.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ip_set_prime.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,34 @@ | ||||
| +#ifndef __IP_SET_PRIME_H | ||||
| +#define __IP_SET_PRIME_H | ||||
| @@ -994,9 +994,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ip_set_prime.h linux-2.6 | ||||
| +} | ||||
| + | ||||
| +#endif /* __IP_SET_PRIME_H */ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ipt_set.h linux-2.6.19.dev/include/linux/netfilter_ipv4/ipt_set.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/ipt_set.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/ipt_set.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/ipt_set.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ipt_set.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/ipt_set.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/ipt_set.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,21 @@ | ||||
| +#ifndef _IPT_SET_H | ||||
| +#define _IPT_SET_H | ||||
| @@ -1019,9 +1019,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/ipt_set.h linux-2.6.19.d | ||||
| +}; | ||||
| + | ||||
| +#endif /*_IPT_SET_H*/ | ||||
| diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/listhelp.h linux-2.6.19.dev/include/linux/netfilter_ipv4/listhelp.h | ||||
| --- linux-2.6.19.old/include/linux/netfilter_ipv4/listhelp.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/netfilter_ipv4/listhelp.h	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter_ipv4/listhelp.h linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/listhelp.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter_ipv4/listhelp.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter_ipv4/listhelp.h	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,123 @@ | ||||
| +#ifndef _LISTHELP_H | ||||
| +#define _LISTHELP_H | ||||
| @@ -1146,9 +1146,9 @@ diff -urN linux-2.6.19.old/include/linux/netfilter_ipv4/listhelp.h linux-2.6.19. | ||||
| +LIST_FIND(head, __list_cmp_name, void *, name) | ||||
| + | ||||
| +#endif /*_LISTHELP_H*/ | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ip_set.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ip_set.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,1989 @@ | ||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||
| + *                         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_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_iphash.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_iphash.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ip_set_iphash.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_iphash.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_iphash.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_iphash.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ip_set_iphash.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_iphash.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,379 @@ | ||||
| +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <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_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_ipmap.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_ipmap.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ip_set_ipmap.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_ipmap.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_ipmap.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_ipmap.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ip_set_ipmap.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_ipmap.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,313 @@ | ||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||
| + *                         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_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_iptree.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_iptree.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ip_set_iptree.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_iptree.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_iptree.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_iptree.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ip_set_iptree.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_iptree.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,510 @@ | ||||
| +/* Copyright (C) 2005 Jozsef Kadlecsik <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_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_macipmap.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_macipmap.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ip_set_macipmap.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_macipmap.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_macipmap.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_macipmap.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ip_set_macipmap.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_macipmap.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,338 @@ | ||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||
| + *                         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_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_nethash.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_nethash.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ip_set_nethash.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_nethash.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_nethash.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_nethash.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ip_set_nethash.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_nethash.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,449 @@ | ||||
| +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <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_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ip_set_portmap.c linux-2.6.19.dev/net/ipv4/netfilter/ip_set_portmap.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ip_set_portmap.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ip_set_portmap.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ip_set_portmap.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_portmap.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ip_set_portmap.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ip_set_portmap.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,325 @@ | ||||
| +/* Copyright (C) 2003-2004 Jozsef Kadlecsik <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_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_set.c linux-2.6.19.dev/net/ipv4/netfilter/ipt_set.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ipt_set.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ipt_set.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ipt_set.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_set.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ipt_set.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_set.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,105 @@ | ||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||
| + *                         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_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_SET.c linux-2.6.19.dev/net/ipv4/netfilter/ipt_SET.c | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/ipt_SET.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/ipt_SET.c	2006-12-14 03:13:43.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/ipt_SET.c linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_SET.c | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/ipt_SET.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/ipt_SET.c	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -0,0 +1,120 @@ | ||||
| +/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu> | ||||
| + *                         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) | ||||
| +{ | ||||
| +	return ipt_register_target(&SET_target); | ||||
| +	return xt_register_target(&SET_target); | ||||
| +} | ||||
| + | ||||
| +static void __exit fini(void) | ||||
| @@ -5710,10 +5710,10 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/ipt_SET.c linux-2.6.19.dev/net/ipv | ||||
| + | ||||
| +module_init(init); | ||||
| +module_exit(fini); | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/Kconfig linux-2.6.19.dev/net/ipv4/netfilter/Kconfig | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/Kconfig	2006-12-14 03:13:41.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/Kconfig	2006-12-14 03:13:43.000000000 +0100 | ||||
| @@ -647,5 +647,106 @@ | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/Kconfig linux-2.6.21.1-owrt/net/ipv4/netfilter/Kconfig | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/Kconfig	2007-05-14 11:24:57.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/Kconfig	2007-05-14 11:44:19.000000000 +0200 | ||||
| @@ -681,5 +681,106 @@ | ||||
|  	  Allows altering the ARP packet payload: source and destination | ||||
|  	  hardware and network addresses. | ||||
|   | ||||
| @@ -5820,21 +5820,21 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/Kconfig linux-2.6.19.dev/net/ipv4/ | ||||
| + | ||||
|  endmenu | ||||
|   | ||||
| diff -urN linux-2.6.19.old/net/ipv4/netfilter/Makefile linux-2.6.19.dev/net/ipv4/netfilter/Makefile | ||||
| --- linux-2.6.19.old/net/ipv4/netfilter/Makefile	2006-12-14 03:13:41.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/ipv4/netfilter/Makefile	2006-12-14 03:13:43.000000000 +0100 | ||||
| @@ -54,6 +54,7 @@ | ||||
| diff -Nur linux-2.6.21.1/net/ipv4/netfilter/Makefile linux-2.6.21.1-owrt/net/ipv4/netfilter/Makefile | ||||
| --- linux-2.6.21.1/net/ipv4/netfilter/Makefile	2007-05-14 11:24:57.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/net/ipv4/netfilter/Makefile	2007-05-14 11:47:22.000000000 +0200 | ||||
| @@ -83,6 +83,7 @@ | ||||
|  obj-$(CONFIG_IP_NF_RAW) += iptable_raw.o | ||||
|   | ||||
|  # matches | ||||
|  obj-$(CONFIG_IP_NF_MATCH_HASHLIMIT) += ipt_hashlimit.o | ||||
| +obj-$(CONFIG_IP_NF_MATCH_SET) += ipt_set.o | ||||
|  obj-$(CONFIG_IP_NF_MATCH_IPRANGE) += ipt_iprange.o | ||||
|  obj-$(CONFIG_IP_NF_MATCH_OWNER) += ipt_owner.o | ||||
|  obj-$(CONFIG_IP_NF_MATCH_TOS) += ipt_tos.o | ||||
| @@ -77,6 +78,17 @@ | ||||
|  obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o | ||||
| @@ -107,6 +108,16 @@ | ||||
|  obj-$(CONFIG_IP_NF_TARGET_ULOG) += ipt_ULOG.o | ||||
|  obj-$(CONFIG_IP_NF_TARGET_TCPMSS) += ipt_TCPMSS.o | ||||
|  obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o | ||||
|  obj-$(CONFIG_IP_NF_TARGET_TTL) += ipt_TTL.o | ||||
| +obj-$(CONFIG_IP_NF_TARGET_SET) += ipt_SET.o | ||||
| + | ||||
| +# sets | ||||
| @@ -5845,7 +5845,6 @@ diff -urN linux-2.6.19.old/net/ipv4/netfilter/Makefile linux-2.6.19.dev/net/ipv4 | ||||
| +obj-$(CONFIG_IP_NF_SET_IPHASH) += ip_set_iphash.o | ||||
| +obj-$(CONFIG_IP_NF_SET_NETHASH) += ip_set_nethash.o | ||||
| +obj-$(CONFIG_IP_NF_SET_IPTREE) += ip_set_iptree.o | ||||
| + | ||||
|  obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o | ||||
|  obj-$(CONFIG_IP_NF_TARGET_TTL) += ipt_TTL.o | ||||
|   | ||||
|  # generic ARP tables | ||||
|  obj-$(CONFIG_IP_NF_ARPTABLES) += arp_tables.o | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| diff -urN linux-2.6.19/drivers/net/imq.c linux-2.6.19+imq/drivers/net/imq.c | ||||
| --- linux-2.6.19/drivers/net/imq.c	1970-01-01 09:30:00.000000000 +0930 | ||||
| +++ linux-2.6.19+imq/drivers/net/imq.c	2006-12-05 23:01:02.000000000 +1030 | ||||
| --- linux-2.6.20-original/drivers/net/imq.c	1970-01-01 02:00:00.000000000 +0200 | ||||
| +++ linux-2.6.20/drivers/net/imq.c	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -0,0 +1,402 @@ | ||||
| +/* | ||||
| + *             Pseudo-driver for the intermediate queue device. | ||||
| @@ -404,9 +403,8 @@ diff -urN linux-2.6.19/drivers/net/imq.c linux-2.6.19+imq/drivers/net/imq.c | ||||
| +MODULE_AUTHOR("http://www.linuximq.net"); | ||||
| +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | ||||
| +MODULE_LICENSE("GPL"); | ||||
| diff -urN linux-2.6.19/drivers/net/Kconfig linux-2.6.19+imq/drivers/net/Kconfig | ||||
| --- linux-2.6.19/drivers/net/Kconfig	2006-12-01 14:05:30.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/drivers/net/Kconfig	2006-12-05 23:03:52.000000000 +1030 | ||||
| --- linux-2.6.20-original/drivers/net/Kconfig	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/drivers/net/Kconfig	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -96,6 +96,129 @@ | ||||
|  	  To compile this driver as a module, choose M here: the module | ||||
|  	  will be called eql.  If unsure, say N. | ||||
| @@ -537,9 +535,8 @@ diff -urN linux-2.6.19/drivers/net/Kconfig linux-2.6.19+imq/drivers/net/Kconfig | ||||
|  config TUN | ||||
|  	tristate "Universal TUN/TAP device driver support" | ||||
|  	select CRC32 | ||||
| diff -urN linux-2.6.19/drivers/net/Makefile linux-2.6.19+imq/drivers/net/Makefile | ||||
| --- linux-2.6.19/drivers/net/Makefile	2006-12-01 14:05:30.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/drivers/net/Makefile	2006-12-04 12:41:01.000000000 +1030 | ||||
| --- linux-2.6.20-original/drivers/net/Makefile	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/drivers/net/Makefile	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -124,6 +124,7 @@ | ||||
|  obj-$(CONFIG_SLHC) += slhc.o | ||||
|   | ||||
| @@ -548,9 +545,8 @@ diff -urN linux-2.6.19/drivers/net/Makefile linux-2.6.19+imq/drivers/net/Makefil | ||||
|  obj-$(CONFIG_IFB) += ifb.o | ||||
|  obj-$(CONFIG_DE600) += de600.o | ||||
|  obj-$(CONFIG_DE620) += de620.o | ||||
| diff -urN linux-2.6.19/include/linux/imq.h linux-2.6.19+imq/include/linux/imq.h | ||||
| --- linux-2.6.19/include/linux/imq.h	1970-01-01 09:30:00.000000000 +0930 | ||||
| +++ linux-2.6.19+imq/include/linux/imq.h	2006-12-04 12:41:01.000000000 +1030 | ||||
| --- linux-2.6.20-original/include/linux/imq.h	1970-01-01 02:00:00.000000000 +0200 | ||||
| +++ linux-2.6.20/include/linux/imq.h	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -0,0 +1,9 @@ | ||||
| +#ifndef _IMQ_H | ||||
| +#define _IMQ_H | ||||
| @@ -561,9 +557,8 @@ diff -urN linux-2.6.19/include/linux/imq.h linux-2.6.19+imq/include/linux/imq.h | ||||
| +#define IMQ_F_ENQUEUE  0x80 | ||||
| + | ||||
| +#endif /* _IMQ_H */ | ||||
| diff -urN linux-2.6.19/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.19+imq/include/linux/netfilter_ipv4/ipt_IMQ.h | ||||
| --- linux-2.6.19/include/linux/netfilter_ipv4/ipt_IMQ.h	1970-01-01 09:30:00.000000000 +0930 | ||||
| +++ linux-2.6.19+imq/include/linux/netfilter_ipv4/ipt_IMQ.h	2006-12-05 23:04:22.000000000 +1030 | ||||
| --- linux-2.6.20-original/include/linux/netfilter_ipv4/ipt_IMQ.h	1970-01-01 02:00:00.000000000 +0200 | ||||
| +++ linux-2.6.20/include/linux/netfilter_ipv4/ipt_IMQ.h	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -0,0 +1,8 @@ | ||||
| +#ifndef _IPT_IMQ_H | ||||
| +#define _IPT_IMQ_H | ||||
| @@ -573,9 +568,8 @@ diff -urN linux-2.6.19/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.19+imq/i | ||||
| +}; | ||||
| + | ||||
| +#endif /* _IPT_IMQ_H */ | ||||
| diff -urN linux-2.6.19/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.19+imq/include/linux/netfilter_ipv6/ip6t_IMQ.h | ||||
| --- linux-2.6.19/include/linux/netfilter_ipv6/ip6t_IMQ.h	1970-01-01 09:30:00.000000000 +0930 | ||||
| +++ linux-2.6.19+imq/include/linux/netfilter_ipv6/ip6t_IMQ.h	2006-12-05 23:04:32.000000000 +1030 | ||||
| --- linux-2.6.20-original/include/linux/netfilter_ipv6/ip6t_IMQ.h	1970-01-01 02:00:00.000000000 +0200 | ||||
| +++ linux-2.6.20/include/linux/netfilter_ipv6/ip6t_IMQ.h	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -0,0 +1,8 @@ | ||||
| +#ifndef _IP6T_IMQ_H | ||||
| +#define _IP6T_IMQ_H | ||||
| @@ -585,10 +579,9 @@ diff -urN linux-2.6.19/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.19+imq/ | ||||
| +}; | ||||
| + | ||||
| +#endif /* _IP6T_IMQ_H */ | ||||
| diff -urN linux-2.6.19/include/linux/skbuff.h linux-2.6.19+imq/include/linux/skbuff.h | ||||
| --- linux-2.6.19/include/linux/skbuff.h	2006-12-01 14:05:44.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/include/linux/skbuff.h	2006-12-05 23:05:06.000000000 +1030 | ||||
| @@ -292,6 +292,10 @@ | ||||
| --- linux-2.6.20-original/include/linux/skbuff.h	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/include/linux/skbuff.h	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -293,6 +293,10 @@ | ||||
|  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) | ||||
|  	struct sk_buff		*nfct_reasm; | ||||
|  #endif | ||||
| @@ -599,9 +592,8 @@ diff -urN linux-2.6.19/include/linux/skbuff.h linux-2.6.19+imq/include/linux/skb | ||||
|  #ifdef CONFIG_BRIDGE_NETFILTER | ||||
|  	struct nf_bridge_info	*nf_bridge; | ||||
|  #endif | ||||
| diff -urN linux-2.6.19/net/core/dev.c linux-2.6.19+imq/net/core/dev.c | ||||
| --- linux-2.6.19/net/core/dev.c	2006-12-01 14:05:45.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/net/core/dev.c	2006-12-05 23:05:40.000000000 +1030 | ||||
| --- linux-2.6.20-original/net/core/dev.c	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/net/core/dev.c	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -94,6 +94,9 @@ | ||||
|  #include <linux/skbuff.h> | ||||
|  #include <net/sock.h> | ||||
| @@ -612,7 +604,7 @@ diff -urN linux-2.6.19/net/core/dev.c linux-2.6.19+imq/net/core/dev.c | ||||
|  #include <linux/proc_fs.h> | ||||
|  #include <linux/seq_file.h> | ||||
|  #include <linux/stat.h> | ||||
| @@ -1344,7 +1347,11 @@ | ||||
| @@ -1343,7 +1346,11 @@ | ||||
|  int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) | ||||
|  { | ||||
|  	if (likely(!skb->next)) { | ||||
| @@ -625,10 +617,9 @@ diff -urN linux-2.6.19/net/core/dev.c linux-2.6.19+imq/net/core/dev.c | ||||
|  			dev_queue_xmit_nit(skb, dev); | ||||
|   | ||||
|  		if (netif_needs_gso(dev, skb)) { | ||||
| diff -urN linux-2.6.19/net/core/skbuff.c linux-2.6.19+imq/net/core/skbuff.c | ||||
| --- linux-2.6.19/net/core/skbuff.c	2006-12-01 14:05:45.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/net/core/skbuff.c	2006-12-04 12:41:01.000000000 +1030 | ||||
| @@ -482,6 +482,10 @@ | ||||
| --- linux-2.6.20-original/net/core/skbuff.c	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/net/core/skbuff.c	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -485,6 +485,10 @@ | ||||
|  	C(nfct_reasm); | ||||
|  	nf_conntrack_get_reasm(skb->nfct_reasm); | ||||
|  #endif | ||||
| @@ -639,7 +630,7 @@ diff -urN linux-2.6.19/net/core/skbuff.c linux-2.6.19+imq/net/core/skbuff.c | ||||
|  #ifdef CONFIG_BRIDGE_NETFILTER | ||||
|  	C(nf_bridge); | ||||
|  	nf_bridge_get(skb->nf_bridge); | ||||
| @@ -546,6 +550,10 @@ | ||||
| @@ -549,6 +553,10 @@ | ||||
|  #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) | ||||
|  	new->ipvs_property = old->ipvs_property; | ||||
|  #endif | ||||
| @@ -650,9 +641,8 @@ diff -urN linux-2.6.19/net/core/skbuff.c linux-2.6.19+imq/net/core/skbuff.c | ||||
|  #ifdef CONFIG_BRIDGE_NETFILTER | ||||
|  	new->nf_bridge	= old->nf_bridge; | ||||
|  	nf_bridge_get(old->nf_bridge); | ||||
| diff -urN linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.19+imq/net/ipv4/netfilter/ipt_IMQ.c | ||||
| --- linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c	1970-01-01 09:30:00.000000000 +0930 | ||||
| +++ linux-2.6.19.2/net/ipv4/netfilter/ipt_IMQ.c	2007-01-25 09:59:34.000000000 +0100 | ||||
| --- linux-2.6.20-original/net/ipv4/netfilter/ipt_IMQ.c	1970-01-01 02:00:00.000000000 +0200 | ||||
| +++ linux-2.6.20/net/ipv4/netfilter/ipt_IMQ.c	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -0,0 +1,71 @@ | ||||
| +/* | ||||
| + * This target marks packets to be enqueued to an imq device | ||||
| @@ -708,7 +698,7 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.19+imq/net/ipv4/ne | ||||
| + | ||||
| +static int __init init(void) | ||||
| +{ | ||||
| +	if (ipt_register_target(&ipt_imq_reg)) | ||||
| +	if (xt_register_target(&ipt_imq_reg)) | ||||
| +		return -EINVAL; | ||||
| + | ||||
| +	return 0; | ||||
| @@ -716,7 +706,7 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.19+imq/net/ipv4/ne | ||||
| + | ||||
| +static void __exit fini(void) | ||||
| +{ | ||||
| +	ipt_unregister_target(&ipt_imq_reg); | ||||
| +	xt_unregister_target(&ipt_imq_reg); | ||||
| +} | ||||
| + | ||||
| +module_init(init); | ||||
| @@ -725,10 +715,9 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/ipt_IMQ.c linux-2.6.19+imq/net/ipv4/ne | ||||
| +MODULE_AUTHOR("http://www.linuximq.net"); | ||||
| +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | ||||
| +MODULE_LICENSE("GPL"); | ||||
| diff -urN linux-2.6.19/net/ipv4/netfilter/Kconfig linux-2.6.19+imq/net/ipv4/netfilter/Kconfig | ||||
| --- linux-2.6.19/net/ipv4/netfilter/Kconfig	2006-12-01 14:05:45.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/net/ipv4/netfilter/Kconfig	2006-12-04 12:41:01.000000000 +1030 | ||||
| @@ -533,6 +533,17 @@ | ||||
| --- linux-2.6.20-original/net/ipv4/netfilter/Kconfig	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/net/ipv4/netfilter/Kconfig	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -591,6 +591,17 @@ | ||||
|   | ||||
|  	  To compile it as a module, choose M here.  If unsure, say N. | ||||
|   | ||||
| @@ -746,10 +735,9 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/Kconfig linux-2.6.19+imq/net/ipv4/netf | ||||
|  config IP_NF_TARGET_TOS | ||||
|  	tristate "TOS target support" | ||||
|  	depends on IP_NF_MANGLE | ||||
| diff -urN linux-2.6.19/net/ipv4/netfilter/Makefile linux-2.6.19+imq/net/ipv4/netfilter/Makefile | ||||
| --- linux-2.6.19/net/ipv4/netfilter/Makefile	2006-12-01 14:05:45.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/net/ipv4/netfilter/Makefile	2006-12-04 12:41:01.000000000 +1030 | ||||
| @@ -67,6 +67,7 @@ | ||||
| --- linux-2.6.20-original/net/ipv4/netfilter/Makefile	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/net/ipv4/netfilter/Makefile	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -96,6 +96,7 @@ | ||||
|  obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o | ||||
|  obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o | ||||
|  obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o | ||||
| @@ -757,9 +745,8 @@ diff -urN linux-2.6.19/net/ipv4/netfilter/Makefile linux-2.6.19+imq/net/ipv4/net | ||||
|  obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o | ||||
|  obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o | ||||
|  obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o | ||||
| diff -urN linux-2.6.19/net/ipv6/netfilter/ip6t_IMQ.c linux-2.6.19+imq/net/ipv6/netfilter/ip6t_IMQ.c | ||||
| --- linux-2.6.19/net/ipv6/netfilter/ip6t_IMQ.c	1970-01-01 09:30:00.000000000 +0930 | ||||
| +++ linux-2.6.19.2/net/ipv6/netfilter/ip6t_IMQ.c	2007-01-25 10:06:41.000000000 +0100 | ||||
| --- linux-2.6.20-original/net/ipv6/netfilter/ip6t_IMQ.c	1970-01-01 02:00:00.000000000 +0200 | ||||
| +++ linux-2.6.20/net/ipv6/netfilter/ip6t_IMQ.c	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -0,0 +1,71 @@ | ||||
| +/* | ||||
| + * This target marks packets to be enqueued to an imq device | ||||
| @@ -832,10 +819,9 @@ diff -urN linux-2.6.19/net/ipv6/netfilter/ip6t_IMQ.c linux-2.6.19+imq/net/ipv6/n | ||||
| +MODULE_AUTHOR("http://www.linuximq.net"); | ||||
| +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); | ||||
| +MODULE_LICENSE("GPL"); | ||||
| diff -urN linux-2.6.19/net/ipv6/netfilter/Kconfig linux-2.6.19+imq/net/ipv6/netfilter/Kconfig | ||||
| --- linux-2.6.19/net/ipv6/netfilter/Kconfig	2006-12-01 14:05:46.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/net/ipv6/netfilter/Kconfig	2006-12-04 12:41:01.000000000 +1030 | ||||
| @@ -163,6 +163,15 @@ | ||||
| --- linux-2.6.20-original/net/ipv6/netfilter/Kconfig	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/net/ipv6/netfilter/Kconfig	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -164,6 +164,15 @@ | ||||
|   | ||||
|  	  To compile it as a module, choose M here.  If unsure, say N. | ||||
|   | ||||
| @@ -851,9 +837,8 @@ diff -urN linux-2.6.19/net/ipv6/netfilter/Kconfig linux-2.6.19+imq/net/ipv6/netf | ||||
|  config IP6_NF_TARGET_HL | ||||
|  	tristate  'HL (hoplimit) target support' | ||||
|  	depends on IP6_NF_MANGLE | ||||
| diff -urN linux-2.6.19/net/ipv6/netfilter/Makefile linux-2.6.19+imq/net/ipv6/netfilter/Makefile | ||||
| --- linux-2.6.19/net/ipv6/netfilter/Makefile	2006-12-01 14:05:46.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/net/ipv6/netfilter/Makefile	2006-12-04 12:41:01.000000000 +1030 | ||||
| --- linux-2.6.20-original/net/ipv6/netfilter/Makefile	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/net/ipv6/netfilter/Makefile	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -13,6 +13,7 @@ | ||||
|  obj-$(CONFIG_IP6_NF_MATCH_OWNER) += ip6t_owner.o | ||||
|  obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o | ||||
| @@ -862,9 +847,8 @@ diff -urN linux-2.6.19/net/ipv6/netfilter/Makefile linux-2.6.19+imq/net/ipv6/net | ||||
|  obj-$(CONFIG_IP6_NF_TARGET_HL) += ip6t_HL.o | ||||
|  obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o | ||||
|  obj-$(CONFIG_IP6_NF_TARGET_LOG) += ip6t_LOG.o | ||||
| diff -urN linux-2.6.19/net/sched/sch_generic.c linux-2.6.19+imq/net/sched/sch_generic.c | ||||
| --- linux-2.6.19/net/sched/sch_generic.c	2006-12-01 14:05:46.000000000 +1030 | ||||
| +++ linux-2.6.19+imq/net/sched/sch_generic.c	2006-12-05 23:08:54.000000000 +1030 | ||||
| --- linux-2.6.20-original/net/sched/sch_generic.c	2007-02-04 20:44:54.000000000 +0200 | ||||
| +++ linux-2.6.20/net/sched/sch_generic.c	2007-02-12 23:55:04.000000000 +0200 | ||||
| @@ -87,7 +87,6 @@ | ||||
|   | ||||
|     NOTE: Called under dev->queue_lock with locally disabled BH. | ||||
|   | ||||
										
											
												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 | ||||
| --- linux-2.6.19.1.orig/include/linux/netfilter/xt_CHAOS.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.1/include/linux/netfilter/xt_CHAOS.h	2007-01-11 13:28:07.656144799 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter/oot_conntrack.h linux-2.6.21.1-owrt/include/linux/netfilter/oot_conntrack.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter/oot_conntrack.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter/oot_conntrack.h	2007-05-14 14:18:54.000000000 +0200 | ||||
| @@ -0,0 +1,5 @@ | ||||
| +#if defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE) | ||||
| +#	include <linux/netfilter_ipv4/ip_conntrack.h> | ||||
| +#else /* linux-2.6.20+ */ | ||||
| +#	include <net/netfilter/nf_nat_rule.h> | ||||
| +#endif | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter/oot_trans.h linux-2.6.21.1-owrt/include/linux/netfilter/oot_trans.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter/oot_trans.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter/oot_trans.h	2007-05-14 14:18:54.000000000 +0200 | ||||
| @@ -0,0 +1,14 @@ | ||||
| +/* Out of tree workarounds */ | ||||
| +#include <linux/version.h> | ||||
| +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18) | ||||
| +#	define HAVE_MATCHINFOSIZE 1 | ||||
| +#	define HAVE_TARGUSERINFO 1 | ||||
| +#	define HAVE_TARGINFOSIZE 1 | ||||
| +#endif | ||||
| +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20) | ||||
| +#	define nfmark mark | ||||
| +#endif | ||||
| +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 21) | ||||
| +#	define tcp_v4_check(tcph, tcph_sz, s, d, csp) \ | ||||
| +		tcp_v4_check((tcph_sz), (s), (d), (csp)) | ||||
| +#endif | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter/xt_CHAOS.h linux-2.6.21.1-owrt/include/linux/netfilter/xt_CHAOS.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter/xt_CHAOS.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter/xt_CHAOS.h	2007-05-14 14:18:54.000000000 +0200 | ||||
| @@ -0,0 +1,14 @@ | ||||
| +#ifndef _LINUX_XT_CHAOS_H | ||||
| +#define _LINUX_XT_CHAOS_H 1 | ||||
| @@ -16,9 +43,9 @@ diff -ruN linux-2.6.19.1.orig/include/linux/netfilter/xt_CHAOS.h linux-2.6.19.1/ | ||||
| +}; | ||||
| + | ||||
| +#endif /* _LINUX_XT_CHAOS_H */ | ||||
| diff -ruN linux-2.6.19.1.orig/include/linux/netfilter/xt_portscan.h linux-2.6.19.1/include/linux/netfilter/xt_portscan.h | ||||
| --- linux-2.6.19.1.orig/include/linux/netfilter/xt_portscan.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.1/include/linux/netfilter/xt_portscan.h	2007-01-11 13:28:07.656144799 +0100 | ||||
| diff -Nur linux-2.6.21.1/include/linux/netfilter/xt_portscan.h linux-2.6.21.1-owrt/include/linux/netfilter/xt_portscan.h | ||||
| --- linux-2.6.21.1/include/linux/netfilter/xt_portscan.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/include/linux/netfilter/xt_portscan.h	2007-05-14 14:18:54.000000000 +0200 | ||||
| @@ -0,0 +1,8 @@ | ||||
| +#ifndef _LINUX_XT_PORTSCAN_H | ||||
| +#define _LINUX_XT_PORTSCAN_H 1 | ||||
| @@ -28,10 +55,10 @@ diff -ruN linux-2.6.19.1.orig/include/linux/netfilter/xt_portscan.h linux-2.6.19 | ||||
| +}; | ||||
| + | ||||
| +#endif /* _LINUX_XT_PORTSCAN_H */ | ||||
| diff -ruN linux-2.6.19.1.orig/net/netfilter/find_match.c linux-2.6.19.1/net/netfilter/find_match.c | ||||
| --- linux-2.6.19.1.orig/net/netfilter/find_match.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.1/net/netfilter/find_match.c	2007-01-11 13:28:12.191994379 +0100 | ||||
| @@ -0,0 +1,37 @@ | ||||
| diff -Nur linux-2.6.21.1/net/netfilter/find_match.c linux-2.6.21.1-owrt/net/netfilter/find_match.c | ||||
| --- linux-2.6.21.1/net/netfilter/find_match.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/netfilter/find_match.c	2007-05-14 14:18:54.000000000 +0200 | ||||
| @@ -0,0 +1,39 @@ | ||||
| +/* | ||||
| +    xt_request_find_match | ||||
| +    by Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007 | ||||
| @@ -42,7 +69,6 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/find_match.c linux-2.6.19.1/net/netf | ||||
| +    it under the terms of the GNU General Public License version 2 as | ||||
| +    published by the Free Software Foundation. | ||||
| +*/ | ||||
| + | ||||
| +#include <linux/err.h> | ||||
| +#include <linux/netfilter_arp.h> | ||||
| +#include <linux/socket.h> | ||||
| @@ -52,7 +78,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/find_match.c linux-2.6.19.1/net/netf | ||||
| + * Yeah this code is sub-optimal, but the function is missing in | ||||
| + * mainline so far. -jengelh | ||||
| + */ | ||||
| +static struct xt_match *xt_request_find_match(int af, const char *name, | ||||
| +static struct xt_match *xt_request_find_match_lo(int af, const char *name, | ||||
| +    u8 revision) | ||||
| +{ | ||||
| +	static const char *const xt_prefix[] = { | ||||
| @@ -69,10 +95,13 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/find_match.c linux-2.6.19.1/net/netf | ||||
| + | ||||
| +	return match; | ||||
| +} | ||||
| diff -ruN linux-2.6.19.1.orig/net/netfilter/Kconfig linux-2.6.19.1/net/netfilter/Kconfig | ||||
| --- linux-2.6.19.1.orig/net/netfilter/Kconfig	2007-01-11 13:27:24.445577700 +0100 | ||||
| +++ linux-2.6.19.1/net/netfilter/Kconfig	2007-01-11 13:28:09.092097179 +0100 | ||||
| @@ -122,6 +122,14 @@ | ||||
| + | ||||
| +/* In case it goes into mainline, let this out-of-tree package compile */ | ||||
| +#define xt_request_find_match xt_request_find_match_lo | ||||
| diff -Nur linux-2.6.21.1/net/netfilter/Kconfig linux-2.6.21.1-owrt/net/netfilter/Kconfig | ||||
| --- linux-2.6.21.1/net/netfilter/Kconfig	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/net/netfilter/Kconfig	2007-05-14 14:30:47.000000000 +0200 | ||||
| @@ -287,6 +287,14 @@ | ||||
|   | ||||
|  # alphabetically ordered list of targets | ||||
|   | ||||
| @@ -87,7 +116,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Kconfig linux-2.6.19.1/net/netfilter | ||||
|  config NETFILTER_XT_TARGET_CLASSIFY | ||||
|  	tristate '"CLASSIFY" target support' | ||||
|  	depends on NETFILTER_XTABLES | ||||
| @@ -148,6 +156,14 @@ | ||||
| @@ -315,6 +323,14 @@ | ||||
|  	  <file:Documentation/modules.txt>.  The module will be called | ||||
|  	  ipt_CONNMARK.o.  If unsure, say `N'. | ||||
|   | ||||
| @@ -102,7 +131,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Kconfig linux-2.6.19.1/net/netfilter | ||||
|  config NETFILTER_XT_TARGET_DSCP | ||||
|  	tristate '"DSCP" target support' | ||||
|  	depends on NETFILTER_XTABLES | ||||
| @@ -355,6 +371,14 @@ | ||||
| @@ -563,6 +579,14 @@ | ||||
|   | ||||
|  	  To compile it as a module, choose M here.  If unsure, say N. | ||||
|   | ||||
| @@ -117,10 +146,10 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Kconfig linux-2.6.19.1/net/netfilter | ||||
|  config NETFILTER_XT_MATCH_MULTIPORT | ||||
|  	tristate "Multiple port match support" | ||||
|  	depends on NETFILTER_XTABLES | ||||
| diff -ruN linux-2.6.19.1.orig/net/netfilter/Makefile linux-2.6.19.1/net/netfilter/Makefile | ||||
| --- linux-2.6.19.1.orig/net/netfilter/Makefile	2007-01-11 13:27:24.445577700 +0100 | ||||
| +++ linux-2.6.19.1/net/netfilter/Makefile	2007-01-11 13:28:07.656144799 +0100 | ||||
| @@ -23,8 +23,10 @@ | ||||
| diff -Nur linux-2.6.21.1/net/netfilter/Makefile linux-2.6.21.1-owrt/net/netfilter/Makefile | ||||
| --- linux-2.6.21.1/net/netfilter/Makefile	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/net/netfilter/Makefile	2007-05-14 14:30:47.000000000 +0200 | ||||
| @@ -37,8 +37,10 @@ | ||||
|  obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o | ||||
|   | ||||
|  # targets | ||||
| @@ -131,7 +160,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Makefile linux-2.6.19.1/net/netfilte | ||||
|  obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o | ||||
|  obj-$(CONFIG_NETFILTER_XT_TARGET_MARK) += xt_MARK.o | ||||
|  obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o | ||||
| @@ -47,6 +49,7 @@ | ||||
| @@ -63,6 +65,7 @@ | ||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_MARK) += xt_mark.o | ||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_MULTIPORT) += xt_multiport.o | ||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_POLICY) += xt_policy.o | ||||
| @@ -139,16 +168,17 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/Makefile linux-2.6.19.1/net/netfilte | ||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_PKTTYPE) += xt_pkttype.o | ||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_QUOTA) += xt_quota.o | ||||
|  obj-$(CONFIG_NETFILTER_XT_MATCH_REALM) += xt_realm.o | ||||
| diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfilter/xt_CHAOS.c | ||||
| --- linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.1/net/netfilter/xt_CHAOS.c	2007-01-11 13:28:14.407920893 +0100 | ||||
| @@ -0,0 +1,180 @@ | ||||
| diff -Nur linux-2.6.21.1/net/netfilter/xt_CHAOS.c linux-2.6.21.1-owrt/net/netfilter/xt_CHAOS.c | ||||
| --- linux-2.6.21.1/net/netfilter/xt_CHAOS.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/netfilter/xt_CHAOS.c	2007-05-14 14:36:58.000000000 +0200 | ||||
| @@ -0,0 +1,204 @@ | ||||
| +/* | ||||
| +    CHAOS target for netfilter | ||||
| +	CHAOS target for netfilter | ||||
| + | ||||
| +    Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007 | ||||
| +    released under the terms of the GNU General Public | ||||
| +    License version 2.x and only versions 2.x. | ||||
| +	Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2006 - 2007 | ||||
| +	This program is free software; you can redistribute it and/or modify | ||||
| +	it under the terms of the GNU General Public License version 2 as | ||||
| +	published by the Free Software Foundation. | ||||
| +*/ | ||||
| +#include <linux/icmp.h> | ||||
| +#include <linux/in.h> | ||||
| @@ -162,14 +192,9 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil | ||||
| +#include <net/ip.h> | ||||
| +#include <linux/netfilter/xt_CHAOS.h> | ||||
| +#include "find_match.c" | ||||
| +#include <linux/netfilter/oot_trans.h> | ||||
| +#define PFX KBUILD_MODNAME ": " | ||||
| + | ||||
| +/* Out of tree workarounds */ | ||||
| +#include <linux/version.h> | ||||
| +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18) | ||||
| +#    define HAVE_TARGUSERINFO 1 | ||||
| +#endif | ||||
| + | ||||
| +/* Module parameters */ | ||||
| +static unsigned int reject_percentage = ~0U * .01; | ||||
| +static unsigned int delude_percentage = ~0U * .0101; | ||||
| @@ -180,6 +205,8 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil | ||||
| +static struct xt_match *xm_tcp; | ||||
| +static struct xt_target *xt_delude, *xt_reject, *xt_tarpit; | ||||
| + | ||||
| +static int have_delude, have_tarpit; | ||||
| + | ||||
| +/* Static data for other matches/targets */ | ||||
| +static const struct ipt_reject_info reject_params = { | ||||
| +	.with = ICMP_HOST_UNREACH, | ||||
| @@ -226,7 +253,7 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil | ||||
| +	/* Equivalent to: | ||||
| +	 * -A chaos -m statistic --mode random --probability \ | ||||
| +	 *         $reject_percentage -j REJECT --reject-with host-unreach; | ||||
| +	 * -A chaos -m statistic --mode random --probability \ | ||||
| +	 * -A chaos -p tcp -m statistic --mode random --probability \ | ||||
| +	 *         $delude_percentage -j DELUDE; | ||||
| +	 * -A chaos -j DROP; | ||||
| +	 */ | ||||
| @@ -249,9 +276,31 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil | ||||
| +	return NF_DROP; | ||||
| +} | ||||
| + | ||||
| +static int xt_chaos_checkentry(const char *tablename, const void *entry, | ||||
| +    const struct xt_target *target, void *targinfo, | ||||
| +#ifdef HAVE_TARGINFOSIZE | ||||
| +    unsigned int targinfosize, | ||||
| +#endif | ||||
| +    unsigned int hook_mask) | ||||
| +{ | ||||
| +	const struct xt_chaos_info *info = targinfo; | ||||
| +	if(info->variant == XTCHAOS_DELUDE && !have_delude) { | ||||
| +		printk(KERN_WARNING PFX "Error: Cannot use --delude when " | ||||
| +		       "DELUDE module not available\n"); | ||||
| +		return 0; | ||||
| +	} | ||||
| +	if(info->variant == XTCHAOS_TARPIT && !have_tarpit) { | ||||
| +		printk(KERN_WARNING PFX "Error: Cannot use --tarpit when " | ||||
| +		       "TARPIT module not available\n"); | ||||
| +		return 0; | ||||
| +	} | ||||
| +	return 1; | ||||
| +} | ||||
| + | ||||
| +static struct xt_target xt_chaos_info = { | ||||
| +	.name       = "CHAOS", | ||||
| +	.target     = xt_chaos_target, | ||||
| +	.checkentry = xt_chaos_checkentry, | ||||
| +	.table      = "filter", | ||||
| +	.targetsize = sizeof(struct xt_chaos_info), | ||||
| +	.hooks      = (1 << NF_IP_LOCAL_IN) | (1 << NF_IP_FORWARD) | | ||||
| @@ -266,41 +315,43 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil | ||||
| + | ||||
| +	xm_tcp = xt_request_find_match(AF_INET, "tcp", 0); | ||||
| +	if(xm_tcp == NULL) { | ||||
| +		printk(KERN_WARNING PFX "Could not find \"tcp\" match\n"); | ||||
| +		printk(KERN_WARNING PFX "Error: Could not find or load " | ||||
| +		       "\"tcp\" match\n"); | ||||
| +		return -EINVAL; | ||||
| +	} | ||||
| + | ||||
| +	xt_reject = xt_request_find_target(AF_INET, "REJECT", 0); | ||||
| +	if(xt_reject == NULL) { | ||||
| +		printk(KERN_WARNING PFX "Could not find \"REJECT\" target\n"); | ||||
| +		printk(KERN_WARNING PFX "Error: Could not find or load " | ||||
| +		       "\"REJECT\" target\n"); | ||||
| +		goto out2; | ||||
| +	} | ||||
| + | ||||
| +	xt_tarpit = xt_request_find_target(AF_INET, "TARPIT", 0); | ||||
| +	if(xt_tarpit == NULL) { | ||||
| +		printk(KERN_WARNING PFX "Could not find \"TARPIT\" target\n"); | ||||
| +		goto out3; | ||||
| +	} | ||||
| +	xt_tarpit   = xt_request_find_target(AF_INET, "TARPIT", 0); | ||||
| +	have_tarpit = xt_tarpit != NULL; | ||||
| +	if(!have_tarpit) | ||||
| +		printk(KERN_WARNING PFX "Warning: Could not find or load " | ||||
| +		       "\"TARPIT\" target\n"); | ||||
| + | ||||
| +	xt_delude = xt_request_find_target(AF_INET, "DELUDE", 0); | ||||
| +	if(xt_delude == NULL) { | ||||
| +		printk(KERN_WARNING PFX "Could not find \"DELUDE\" target\n"); | ||||
| +		goto out4; | ||||
| +	} | ||||
| +	xt_delude   = xt_request_find_target(AF_INET, "DELUDE", 0); | ||||
| +	have_delude = xt_delude != NULL; | ||||
| +	if(!have_delude) | ||||
| +		printk(KERN_WARNING PFX "Warning: Could not find or load " | ||||
| +		       "\"DELUDE\" target\n"); | ||||
| + | ||||
| +	if((ret = xt_register_target(&xt_chaos_info)) != 0) { | ||||
| +		printk(KERN_WARNING PFX "xt_register_target returned " | ||||
| +		       "error %d\n", ret); | ||||
| +		goto out5; | ||||
| +		goto out3; | ||||
| +	} | ||||
| + | ||||
| +	return 0; | ||||
| + | ||||
| + out5: | ||||
| + 	module_put(xt_delude->me); | ||||
| + out4: | ||||
| +	module_put(xt_tarpit->me); | ||||
| + out3: | ||||
| + 	if(have_delude) | ||||
| + 		module_put(xt_delude->me); | ||||
| +	if(have_tarpit) | ||||
| +		module_put(xt_tarpit->me); | ||||
| +	module_put(xt_reject->me); | ||||
| + out2: | ||||
| +	module_put(xm_tcp->me); | ||||
| @@ -312,8 +363,10 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil | ||||
| +	xt_unregister_target(&xt_chaos_info); | ||||
| +	module_put(xm_tcp->me); | ||||
| +	module_put(xt_reject->me); | ||||
| +	module_put(xt_delude->me); | ||||
| +	module_put(xt_tarpit->me); | ||||
| +	if(have_delude) | ||||
| +		module_put(xt_delude->me); | ||||
| +	if(have_tarpit) | ||||
| +		module_put(xt_tarpit->me); | ||||
| +	return; | ||||
| +} | ||||
| + | ||||
| @@ -323,26 +376,28 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_CHAOS.c linux-2.6.19.1/net/netfil | ||||
| +MODULE_DESCRIPTION("netfilter CHAOS target"); | ||||
| +MODULE_LICENSE("GPL"); | ||||
| +MODULE_ALIAS("ipt_CHAOS"); | ||||
| diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfilter/xt_DELUDE.c | ||||
| --- linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.1/net/netfilter/xt_DELUDE.c	2007-01-11 13:28:07.656144799 +0100 | ||||
| @@ -0,0 +1,265 @@ | ||||
| diff -Nur linux-2.6.21.1/net/netfilter/xt_DELUDE.c linux-2.6.21.1-owrt/net/netfilter/xt_DELUDE.c | ||||
| --- linux-2.6.21.1/net/netfilter/xt_DELUDE.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/netfilter/xt_DELUDE.c	2007-05-14 14:53:12.000000000 +0200 | ||||
| @@ -0,0 +1,288 @@ | ||||
| +/* | ||||
| +    DELUDE target | ||||
| +    Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2007 | ||||
| +	DELUDE target | ||||
| +	Copyright © Jan Engelhardt <jengelh [at] gmx de>, 2007 | ||||
| + | ||||
| +    Based upon linux-2.6.18.5/net/ipv4/netfilter/ipt_REJECT.c: | ||||
| +    (C) 1999-2001 Paul `Rusty' Russell | ||||
| +    (C) 2002-2004 Netfilter Core Team <coreteam@netfilter.org> | ||||
| +	Based upon linux-2.6.18.5/net/ipv4/netfilter/ipt_REJECT.c: | ||||
| +	(C) 1999-2001 Paul `Rusty' Russell | ||||
| +	(C) 2002-2004 Netfilter Core Team <coreteam@netfilter.org> | ||||
| + | ||||
| +    This program is free software; you can redistribute it and/or modify | ||||
| +    it under the terms of the GNU General Public License version 2 as | ||||
| +    published by the Free Software Foundation. | ||||
| +	xt_DELUDE acts like REJECT, but does reply with SYN-ACK on SYN. | ||||
| + | ||||
| +	This program is free software; you can redistribute it and/or modify | ||||
| +	it under the terms of the GNU General Public License version 2 as | ||||
| +	published by the Free Software Foundation. | ||||
| +*/ | ||||
| + | ||||
| +#include <linux/module.h> | ||||
| +#include <linux/skbuff.h> | ||||
| +#include <linux/ip.h> | ||||
| +#include <linux/random.h> | ||||
| +#include <linux/tcp.h> | ||||
| +#include <linux/udp.h> | ||||
| +#include <linux/icmp.h> | ||||
| @@ -353,20 +408,11 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi | ||||
| +#include <net/dst.h> | ||||
| +#include <linux/netfilter_ipv4/ip_tables.h> | ||||
| +#ifdef CONFIG_BRIDGE_NETFILTER | ||||
| +#include <linux/netfilter_bridge.h> | ||||
| +#	include <linux/netfilter_bridge.h> | ||||
| +#endif | ||||
| +#include <linux/netfilter/oot_trans.h> | ||||
| +#define PFX KBUILD_MODNAME ": " | ||||
| + | ||||
| +/* Out of tree workarounds */ | ||||
| +#include <linux/version.h> | ||||
| +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18) | ||||
| +#    define HAVE_TARGINFOSIZE 1 | ||||
| +#    define HAVE_TARGUSERINFO 1 | ||||
| +#endif | ||||
| +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20) | ||||
| +#    define nfmark mark | ||||
| +#endif | ||||
| + | ||||
| +static inline struct rtable *route_reverse(struct sk_buff *skb, | ||||
| +					   struct tcphdr *tcph, int hook) | ||||
| +{ | ||||
| @@ -430,10 +476,10 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi | ||||
| +	struct sk_buff *nskb; | ||||
| +	struct iphdr *iph = oldskb->nh.iph; | ||||
| +	struct tcphdr _otcph, *oth, *tcph; | ||||
| +	struct rtable *rt; | ||||
| +	u_int16_t tmp_port; | ||||
| +	u_int32_t tmp_addr; | ||||
| +	int hh_len; | ||||
| +	__be16 tmp_port; | ||||
| +	__be32 tmp_addr; | ||||
| +	int needs_ack; | ||||
| +	unsigned int addr_type; | ||||
| + | ||||
| +	/* IP header checks: fragment. */ | ||||
| +	if (oldskb->nh.iph->frag_off & htons(IP_OFFSET)) | ||||
| @@ -442,39 +488,33 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi | ||||
| +	oth = skb_header_pointer(oldskb, oldskb->nh.iph->ihl * 4, | ||||
| +				 sizeof(_otcph), &_otcph); | ||||
| +	if (oth == NULL) | ||||
| + 		return; | ||||
| +		return; | ||||
| + | ||||
| +	/* DELUDE only answers SYN. */ | ||||
| +	if(!oth->syn || oth->ack || oth->fin || oth->rst) | ||||
| +	/* No RST for RST. */ | ||||
| +	if (oth->rst) | ||||
| +		return; | ||||
| + | ||||
| +	/* Check checksum */ | ||||
| +	if (nf_ip_checksum(oldskb, hook, iph->ihl * 4, IPPROTO_TCP)) | ||||
| +		return; | ||||
| + | ||||
| +	if ((rt = route_reverse(oldskb, oth, hook)) == NULL) | ||||
| +		return; | ||||
| + | ||||
| +	hh_len = LL_RESERVED_SPACE(rt->u.dst.dev); | ||||
| + | ||||
| +	/* We need a linear, writeable skb.  We also need to expand | ||||
| +	   headroom in case hh_len of incoming interface < hh_len of | ||||
| +	   outgoing interface */ | ||||
| +	nskb = skb_copy_expand(oldskb, hh_len, skb_tailroom(oldskb), | ||||
| +	nskb = skb_copy_expand(oldskb, LL_MAX_HEADER, skb_tailroom(oldskb), | ||||
| +			       GFP_ATOMIC); | ||||
| +	if (!nskb) { | ||||
| +		dst_release(&rt->u.dst); | ||||
| +	if (!nskb) | ||||
| +		return; | ||||
| +	} | ||||
| + | ||||
| +	dst_release(nskb->dst); | ||||
| +	nskb->dst = &rt->u.dst; | ||||
| + | ||||
| +	/* This packet will not be the same as the other: clear nf fields */ | ||||
| +	nf_reset(nskb); | ||||
| +	nskb->nfmark = 0; | ||||
| +	skb_init_secmark(nskb); | ||||
| + | ||||
| +	skb_shinfo(nskb)->gso_size = 0; | ||||
| +	skb_shinfo(nskb)->gso_segs = 0; | ||||
| +	skb_shinfo(nskb)->gso_type = 0; | ||||
| + | ||||
| +	tcph = (struct tcphdr *)((u_int32_t*)nskb->nh.iph + nskb->nh.iph->ihl); | ||||
| + | ||||
| +	/* Swap source and dest */ | ||||
| @@ -490,12 +530,34 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi | ||||
| +	skb_trim(nskb, nskb->nh.iph->ihl*4 + sizeof(struct tcphdr)); | ||||
| +	nskb->nh.iph->tot_len = htons(nskb->len); | ||||
| + | ||||
| +	tcph->seq = oth->ack_seq; | ||||
| +	tcph->ack_seq = 0; | ||||
| +	if(oth->syn && !oth->ack && !oth->rst && !oth->fin) { | ||||
| +		/* DELUDE essential part */ | ||||
| +		tcph->ack_seq = htonl(ntohl(oth->seq) + oth->syn + oth->fin + | ||||
| +		                oldskb->len - oldskb->nh.iph->ihl * 4 - | ||||
| +		                (oth->doff << 2)); | ||||
| +		tcph->seq     = htonl(secure_tcp_sequence_number( | ||||
| +		                nskb->nh.iph->saddr, nskb->nh.iph->daddr, | ||||
| +			        tcph->source, tcph->dest)); | ||||
| +		tcph->ack     = 1; | ||||
| +	} else { | ||||
| +		if(!tcph->ack) { | ||||
| +			needs_ack = 1; | ||||
| +			tcph->ack_seq = htonl(ntohl(oth->seq) + oth->syn + oth->fin | ||||
| +					      + oldskb->len - oldskb->nh.iph->ihl*4 | ||||
| +					      - (oth->doff<<2)); | ||||
| +			tcph->seq = 0; | ||||
| +		} else { | ||||
| +			needs_ack = 0; | ||||
| +			tcph->seq = oth->ack_seq; | ||||
| +			tcph->ack_seq = 0; | ||||
| +		} | ||||
| + | ||||
| +		/* Reset flags */ | ||||
| +		((u_int8_t *)tcph)[13] = 0; | ||||
| +		tcph->rst = 1; | ||||
| +		tcph->ack = needs_ack; | ||||
| +	} | ||||
| + | ||||
| +	/* Reset flags */ | ||||
| +	((u_int8_t *)tcph)[13] = 0; | ||||
| +	tcph->syn = tcph->ack = 1; | ||||
| + | ||||
| +	tcph->window = 0; | ||||
| +	tcph->urg_ptr = 0; | ||||
| @@ -508,12 +570,26 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi | ||||
| +				   csum_partial((char *)tcph, | ||||
| +						sizeof(struct tcphdr), 0)); | ||||
| + | ||||
| +	/* Adjust IP TTL, DF */ | ||||
| +	nskb->nh.iph->ttl = dst_metric(nskb->dst, RTAX_HOPLIMIT); | ||||
| +	/* Set DF, id = 0 */ | ||||
| +	nskb->nh.iph->frag_off = htons(IP_DF); | ||||
| +	nskb->nh.iph->id = 0; | ||||
| + | ||||
| +	addr_type = RTN_UNSPEC; | ||||
| +	if (hook != NF_IP_FORWARD | ||||
| +#ifdef CONFIG_BRIDGE_NETFILTER | ||||
| +	    || (nskb->nf_bridge && nskb->nf_bridge->mask & BRNF_BRIDGED) | ||||
| +#endif | ||||
| +	   ) | ||||
| +		addr_type = RTN_LOCAL; | ||||
| + | ||||
| +	if (ip_route_me_harder(&nskb, addr_type)) | ||||
| +		goto free_nskb; | ||||
| + | ||||
| +	nskb->ip_summed = CHECKSUM_NONE; | ||||
| + | ||||
| +	/* Adjust IP TTL */ | ||||
| +	nskb->nh.iph->ttl = dst_metric(nskb->dst, RTAX_HOPLIMIT); | ||||
| + | ||||
| +	/* Adjust IP checksum */ | ||||
| +	nskb->nh.iph->check = 0; | ||||
| +	nskb->nh.iph->check = ip_fast_csum((unsigned char *)nskb->nh.iph, | ||||
| @@ -531,7 +607,6 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi | ||||
| + | ||||
| + free_nskb: | ||||
| +	kfree_skb(nskb); | ||||
| +	return; | ||||
| +} | ||||
| + | ||||
| +static unsigned int xt_delude_target(struct sk_buff **pskb, | ||||
| @@ -589,19 +664,21 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_DELUDE.c linux-2.6.19.1/net/netfi | ||||
| + | ||||
| +module_init(xt_delude_init); | ||||
| +module_exit(xt_delude_exit); | ||||
| +MODULE_LICENSE("GPL"); | ||||
| +MODULE_AUTHOR("Jan Engelhardt <jengelh@gmx.de>"); | ||||
| +MODULE_DESCRIPTION("netfilter DELUDE target"); | ||||
| diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_portscan.c linux-2.6.19.1/net/netfilter/xt_portscan.c | ||||
| --- linux-2.6.19.1.orig/net/netfilter/xt_portscan.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.1/net/netfilter/xt_portscan.c	2007-01-11 13:28:14.407920893 +0100 | ||||
| @@ -0,0 +1,282 @@ | ||||
| +MODULE_LICENSE("GPL"); | ||||
| +MODULE_ALIAS("ipt_DELUDE"); | ||||
| diff -Nur linux-2.6.21.1/net/netfilter/xt_portscan.c linux-2.6.21.1-owrt/net/netfilter/xt_portscan.c | ||||
| --- linux-2.6.21.1/net/netfilter/xt_portscan.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/net/netfilter/xt_portscan.c	2007-05-14 14:37:35.000000000 +0200 | ||||
| @@ -0,0 +1,272 @@ | ||||
| +/* | ||||
| +    portscan match for netfilter | ||||
| +	portscan match for netfilter | ||||
| + | ||||
| +    Written by Jan Engelhardt, 2006 - 2007 | ||||
| +    released under the terms of the GNU General Public | ||||
| +    License version 2.x and only versions 2.x. | ||||
| +	Written by Jan Engelhardt, 2006 - 2007 | ||||
| +	This program is free software; you can redistribute it and/or modify | ||||
| +	it under the terms of the GNU General Public License version 2 as | ||||
| +	published by the Free Software Foundation. | ||||
| +*/ | ||||
| +#include <linux/in.h> | ||||
| +#include <linux/ip.h> | ||||
| @@ -614,22 +691,11 @@ diff -ruN linux-2.6.19.1.orig/net/netfilter/xt_portscan.c linux-2.6.19.1/net/net | ||||
| +#include <linux/version.h> | ||||
| +#include <linux/netfilter/x_tables.h> | ||||
| +#include <linux/netfilter/xt_tcpudp.h> | ||||
| +#if defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE) | ||||
| +#    include <linux/netfilter_ipv4/ip_conntrack.h> | ||||
| +#else /* linux-2.6.20+ */ | ||||
| +#    include <net/netfilter/nf_nat_rule.h> | ||||
| +#endif | ||||
| +#include <linux/netfilter/oot_conntrack.h> | ||||
| +#include <linux/netfilter/xt_portscan.h> | ||||
| +#include <linux/netfilter/oot_trans.h> | ||||
| +#define PFX KBUILD_MODNAME ": " | ||||
| + | ||||
| +/* Out of tree workarounds */ | ||||
| +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18) | ||||
| +#    define HAVE_MATCHINFOSIZE 1 | ||||
| +#endif | ||||
| +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20) | ||||
| +#    define nfmark mark | ||||
| +#endif | ||||
| + | ||||
| +enum { | ||||
| +	TCP_FLAGS_ALL3 = TCP_FLAG_FIN | TCP_FLAG_RST | TCP_FLAG_SYN, | ||||
| +	TCP_FLAGS_ALL4 = TCP_FLAGS_ALL3 | TCP_FLAG_ACK, | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| diff -urN linux-2.6.19.old/include/linux/pkt_sched.h linux-2.6.19.dev/include/linux/pkt_sched.h | ||||
| --- linux-2.6.19.old/include/linux/pkt_sched.h	2006-11-29 22:57:37.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/include/linux/pkt_sched.h	2006-12-14 03:13:51.000000000 +0100 | ||||
| @@ -146,8 +146,35 @@ | ||||
| diff -Naur linux-2.6.20.orig/include/linux/pkt_sched.h linux-2.6.20/include/linux/pkt_sched.h | ||||
| --- linux-2.6.20.orig/include/linux/pkt_sched.h	2007-02-04 10:44:54.000000000 -0800 | ||||
| +++ linux-2.6.20/include/linux/pkt_sched.h	2007-02-14 23:58:41.000000000 -0800 | ||||
| @@ -146,8 +146,40 @@ | ||||
|   * | ||||
|   *	The only reason for this is efficiency, it is possible | ||||
|   *	to change these parameters in compile time. | ||||
| @@ -22,6 +22,11 @@ diff -urN linux-2.6.19.old/include/linux/pkt_sched.h linux-2.6.19.dev/include/li | ||||
| +	TCA_SFQ_HASH_DSTDIR, | ||||
| +	TCA_SFQ_HASH_SRCDIR, | ||||
| +	TCA_SFQ_HASH_FWMARKDIR, | ||||
| +	/* conntrack */ | ||||
| +	TCA_SFQ_HASH_CTORIGDST, | ||||
| +	TCA_SFQ_HASH_CTORIGSRC, | ||||
| +	TCA_SFQ_HASH_CTREPLDST, | ||||
| +	TCA_SFQ_HASH_CTREPLSRC, | ||||
| +}; | ||||
| + | ||||
| +struct tc_esfq_qopt | ||||
| @@ -37,31 +42,29 @@ diff -urN linux-2.6.19.old/include/linux/pkt_sched.h linux-2.6.19.dev/include/li | ||||
|  /* RED section */ | ||||
|   | ||||
|  enum | ||||
| diff -urN linux-2.6.19.old/net/sched/Kconfig linux-2.6.19.dev/net/sched/Kconfig | ||||
| --- linux-2.6.19.old/net/sched/Kconfig	2006-11-29 22:57:37.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/sched/Kconfig	2006-12-14 03:13:51.000000000 +0100 | ||||
| @@ -185,6 +185,28 @@ | ||||
| diff -Naur linux-2.6.20.orig/net/sched/Kconfig linux-2.6.20/net/sched/Kconfig | ||||
| --- linux-2.6.20.orig/net/sched/Kconfig	2007-02-04 10:44:54.000000000 -0800 | ||||
| +++ linux-2.6.20/net/sched/Kconfig	2007-02-14 23:58:41.000000000 -0800 | ||||
| @@ -189,6 +189,26 @@ | ||||
|  	  To compile this code as a module, choose M here: the | ||||
|  	  module will be called sch_sfq. | ||||
|   | ||||
| +config NET_SCH_ESFQ | ||||
| +	tristate "ESFQ queue" | ||||
| +	depends on NET_SCHED | ||||
| +	tristate "Enhanced Stochastic Fairness Queueing (ESFQ)" | ||||
| +	---help--- | ||||
| +	  Say Y here if you want to use the Enhanced Stochastic Fairness | ||||
| +	  Queueing (ESFQ) packet scheduling algorithm for some of your network | ||||
| +	  devices or as a leaf discipline for a classful qdisc such as HTB or | ||||
| +	  CBQ (see the top of <file:net/sched/sch_esfq.c> for details and | ||||
| +	  references to the SFQ algorithm). | ||||
| +	   | ||||
| + | ||||
| +	  This is an enchanced SFQ version which allows you to control some | ||||
| +	  hardcoded values in the SFQ scheduler: queue depth, hash table size, | ||||
| +	  and queues limit. | ||||
| +	   | ||||
| +	  ESFQ also adds control to the hash function used to identify packet | ||||
| +	  flows. The original SFQ hashes by individual flow (TCP session or UDP | ||||
| +	  stream); ESFQ can hash by src or dst IP as well, which can be more | ||||
| +	  fair to users in some networking situations. | ||||
| +	  hardcoded values in the SFQ scheduler. | ||||
| + | ||||
| +	  ESFQ also adds control of the hash function used to identify packet | ||||
| +	  flows. The original SFQ discipline hashes by connection; ESFQ add | ||||
| +	  several other hashing methods, such as by src IP or by dst IP, which | ||||
| +	  can be more fair to users in some networking situations. | ||||
| +	   | ||||
| +	  To compile this code as a module, choose M here: the | ||||
| +	  module will be called sch_esfq. | ||||
| @@ -69,10 +72,10 @@ diff -urN linux-2.6.19.old/net/sched/Kconfig linux-2.6.19.dev/net/sched/Kconfig | ||||
|  config NET_SCH_TEQL | ||||
|  	tristate "True Link Equalizer (TEQL)" | ||||
|  	---help--- | ||||
| diff -urN linux-2.6.19.old/net/sched/Makefile linux-2.6.19.dev/net/sched/Makefile | ||||
| --- linux-2.6.19.old/net/sched/Makefile	2006-11-29 22:57:37.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/sched/Makefile	2006-12-14 03:13:51.000000000 +0100 | ||||
| @@ -23,6 +23,7 @@ | ||||
| diff -Naur linux-2.6.20.orig/net/sched/Makefile linux-2.6.20/net/sched/Makefile | ||||
| --- linux-2.6.20.orig/net/sched/Makefile	2007-02-04 10:44:54.000000000 -0800 | ||||
| +++ linux-2.6.20/net/sched/Makefile	2007-02-14 23:58:41.000000000 -0800 | ||||
| @@ -24,6 +24,7 @@ | ||||
|  obj-$(CONFIG_NET_SCH_INGRESS)	+= sch_ingress.o  | ||||
|  obj-$(CONFIG_NET_SCH_DSMARK)	+= sch_dsmark.o | ||||
|  obj-$(CONFIG_NET_SCH_SFQ)	+= sch_sfq.o | ||||
| @@ -80,10 +83,10 @@ diff -urN linux-2.6.19.old/net/sched/Makefile linux-2.6.19.dev/net/sched/Makefil | ||||
|  obj-$(CONFIG_NET_SCH_TBF)	+= sch_tbf.o | ||||
|  obj-$(CONFIG_NET_SCH_TEQL)	+= sch_teql.o | ||||
|  obj-$(CONFIG_NET_SCH_PRIO)	+= sch_prio.o | ||||
| diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_esfq.c | ||||
| --- linux-2.6.19.old/net/sched/sch_esfq.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.19.dev/net/sched/sch_esfq.c	2006-12-14 03:13:51.000000000 +0100 | ||||
| @@ -0,0 +1,644 @@ | ||||
| diff -Naur linux-2.6.20.orig/net/sched/sch_esfq.c linux-2.6.20/net/sched/sch_esfq.c | ||||
| --- linux-2.6.20.orig/net/sched/sch_esfq.c	1969-12-31 16:00:00.000000000 -0800 | ||||
| +++ linux-2.6.20/net/sched/sch_esfq.c	2007-02-15 00:19:56.000000000 -0800 | ||||
| @@ -0,0 +1,704 @@ | ||||
| +/* | ||||
| + * net/sched/sch_esfq.c	Extended Stochastic Fairness Queueing discipline. | ||||
| + * | ||||
| @@ -103,12 +106,12 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| + * | ||||
| + * 		Corey Hickey, <bugfood-c@fatooh.org> | ||||
| + *		Maintenance of the Linux 2.6 port. | ||||
| + *		Added fwmark hash (thanks to Robert Kurjata) | ||||
| + *		Added fwmark hash (thanks to Robert Kurjata). | ||||
| + *		Added direct hashing for src, dst, and fwmark. | ||||
| + *		Added usage of jhash. | ||||
| + *		 | ||||
| + */ | ||||
| + | ||||
| +#include <linux/autoconf.h> | ||||
| +#include <linux/module.h> | ||||
| +#include <asm/uaccess.h> | ||||
| +#include <asm/system.h> | ||||
| @@ -135,12 +138,16 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +#include <linux/skbuff.h> | ||||
| +#include <net/sock.h> | ||||
| +#include <net/pkt_sched.h> | ||||
| +#include <linux/jhash.h> | ||||
| + | ||||
| +#ifdef CONFIG_NF_CONNTRACK_ENABLED | ||||
| +#include <net/netfilter/nf_conntrack.h> | ||||
| +#endif | ||||
| + | ||||
| +/*	Stochastic Fairness Queuing algorithm. | ||||
| +	For more comments look at sch_sfq.c. | ||||
| +	The difference is that you can change limit, depth, | ||||
| +	hash table size and choose 7 hash types. | ||||
| +	hash table size and choose alternate hash types. | ||||
| +	 | ||||
| +	classic:	same as in sch_sfq.c | ||||
| +	dst:		destination IP address | ||||
| @@ -149,9 +156,11 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +	dst_direct: | ||||
| +	src_direct: | ||||
| +	fwmark_direct:  direct hashing of the above sources | ||||
| +	ctorigdst:	original destination IP address | ||||
| +	ctorigsrc:	original source IP address | ||||
| +	ctrepldst:	reply destination IP address | ||||
| +	ctreplsrc:	reply source IP  | ||||
| +	 | ||||
| +	TODO:  | ||||
| +		make sfq_change work. | ||||
| +*/ | ||||
| + | ||||
| + | ||||
| @@ -190,20 +199,24 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +	unsigned	dyn_range;	/*	        		   saved range */ | ||||
| +}; | ||||
| + | ||||
| +static __inline__ unsigned esfq_hash_u32(struct esfq_sched_data *q,u32 h) | ||||
| +/* This contains the info we will hash. */ | ||||
| +struct esfq_packet_info | ||||
| +{ | ||||
| +	int pert = q->perturbation; | ||||
| + | ||||
| +	if (pert) | ||||
| +		h = (h<<pert) ^ (h>>(0x1F - pert)); | ||||
| + | ||||
| +	h = ntohl(h) * 2654435761UL; | ||||
| +	return h & (q->hash_divisor-1); | ||||
| +} | ||||
| +	u32	proto;		/* protocol or port */ | ||||
| +	u32	src;		/* source from packet header */ | ||||
| +	u32	dst;		/* destination from packet header */ | ||||
| +	u32	ctorigsrc;	/* original source from conntrack */ | ||||
| +	u32	ctorigdst;	/* original destination from conntrack */ | ||||
| +	u32	ctreplsrc;	/* reply source from conntrack */ | ||||
| +	u32	ctrepldst;	/* reply destination from conntrack */ | ||||
| +	u32	mark;		/* netfilter mark (fwmark) */ | ||||
| +}; | ||||
| + | ||||
| +/* Hash input values directly into the "nearest" slot, taking into account the | ||||
| + * range of input values seen. This is most useful when the hash table is at | ||||
| + * least as large as the range of possible values. */ | ||||
| + * least as large as the range of possible values. | ||||
| + * Note: this functionality was added before the change to using jhash, and may | ||||
| + * no longer be useful. */ | ||||
| +static __inline__ unsigned esfq_hash_direct(struct esfq_sched_data *q, u32 h) | ||||
| +{ | ||||
| +	/* adjust minimum and maximum */ | ||||
| @@ -224,83 +237,128 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +		return (h - q->dyn_min) * (q->hash_divisor - 1) / q->dyn_range; | ||||
| +} | ||||
| + | ||||
| +static __inline__ unsigned esfq_fold_hash_classic(struct esfq_sched_data *q, u32 h, u32 h1) | ||||
| +static __inline__ unsigned esfq_jhash_1word(struct esfq_sched_data *q,u32 a) | ||||
| +{ | ||||
| +	int pert = q->perturbation; | ||||
| + | ||||
| +	/* Have we any rotation primitives? If not, WHY? */ | ||||
| +	h ^= (h1<<pert) ^ (h1>>(0x1F - pert)); | ||||
| +	h ^= h>>10; | ||||
| +	return h & (q->hash_divisor-1); | ||||
| +	return jhash_1word(a, q->perturbation) & (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) | ||||
| +{ | ||||
| +	u32 h, h2; | ||||
| +	u32 hs; | ||||
| +	u32 nfm; | ||||
| + | ||||
| +	struct esfq_packet_info info; | ||||
| +#ifdef CONFIG_NF_CONNTRACK_ENABLED | ||||
| +	enum ip_conntrack_info ctinfo; | ||||
| +	struct nf_conn *ct = nf_ct_get(skb, &ctinfo); | ||||
| +#endif | ||||
| +	 | ||||
| +	switch (skb->protocol) { | ||||
| +	case __constant_htons(ETH_P_IP): | ||||
| +	{ | ||||
| +		struct iphdr *iph = skb->nh.iph; | ||||
| +		h = iph->daddr; | ||||
| +		hs = iph->saddr; | ||||
| +		nfm = skb->nfmark; | ||||
| +		h2 = hs^iph->protocol; | ||||
| +		info.dst = iph->daddr; | ||||
| +		info.src = iph->saddr; | ||||
| +		if (!(iph->frag_off&htons(IP_MF|IP_OFFSET)) && | ||||
| +		    (iph->protocol == IPPROTO_TCP || | ||||
| +		     iph->protocol == IPPROTO_UDP || | ||||
| +		     iph->protocol == IPPROTO_SCTP || | ||||
| +		     iph->protocol == IPPROTO_DCCP || | ||||
| +		     iph->protocol == IPPROTO_ESP)) | ||||
| +			h2 ^= *(((u32*)iph) + iph->ihl); | ||||
| +			info.proto = *(((u32*)iph) + iph->ihl); | ||||
| +		else | ||||
| +			info.proto = iph->protocol; | ||||
| +		break; | ||||
| +	} | ||||
| +	case __constant_htons(ETH_P_IPV6): | ||||
| +	{ | ||||
| +		struct ipv6hdr *iph = skb->nh.ipv6h; | ||||
| +		h = iph->daddr.s6_addr32[3]; | ||||
| +		hs = iph->saddr.s6_addr32[3]; | ||||
| +		nfm = skb->nfmark; | ||||
| +		h2 = hs^iph->nexthdr; | ||||
| +		/* Hash ipv6 addresses into a u32. This isn't ideal, | ||||
| +		 * but the code is simple. */ | ||||
| +		info.dst = jhash2(iph->daddr.s6_addr32, 4, q->perturbation); | ||||
| +		info.src = jhash2(iph->saddr.s6_addr32, 4, q->perturbation); | ||||
| +		if (iph->nexthdr == IPPROTO_TCP || | ||||
| +		    iph->nexthdr == IPPROTO_UDP || | ||||
| +		    iph->nexthdr == IPPROTO_SCTP || | ||||
| +		    iph->nexthdr == IPPROTO_DCCP || | ||||
| +		    iph->nexthdr == IPPROTO_ESP) | ||||
| +			h2 ^= *(u32*)&iph[1]; | ||||
| +			info.proto = *(u32*)&iph[1]; | ||||
| +		else | ||||
| +			info.proto = iph->nexthdr; | ||||
| +		break; | ||||
| +	} | ||||
| +	default: | ||||
| +		h = (u32)(unsigned long)skb->dst; | ||||
| +		hs = (u32)(unsigned long)skb->sk; | ||||
| +		nfm = skb->nfmark; | ||||
| +		h2 = hs^skb->protocol; | ||||
| +		info.dst   = (u32)(unsigned long)skb->dst; | ||||
| +		info.src   = (u32)(unsigned long)skb->sk; | ||||
| +		info.proto = skb->protocol; | ||||
| +	} | ||||
| + | ||||
| +	info.mark = skb->mark; | ||||
| + | ||||
| +#ifdef CONFIG_NF_CONNTRACK_ENABLED | ||||
| +	/* defaults if there is no conntrack info */ | ||||
| +	info.ctorigsrc = info.src; | ||||
| +	info.ctorigdst = info.dst; | ||||
| +	info.ctreplsrc = info.dst; | ||||
| +	info.ctrepldst = info.src; | ||||
| +	/* collect conntrack info */ | ||||
| +	if (ct && ct != &nf_conntrack_untracked) { | ||||
| +		if (skb->protocol == __constant_htons(ETH_P_IP)) { | ||||
| +			info.ctorigsrc = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u3.ip; | ||||
| +			info.ctorigdst = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.u3.ip; | ||||
| +			info.ctreplsrc = ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3.ip; | ||||
| +			info.ctrepldst = ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip; | ||||
| +		} | ||||
| +		else if (skb->protocol == __constant_htons(ETH_P_IPV6)) { | ||||
| +			/* Again, hash ipv6 addresses into a single u32. */ | ||||
| +			info.ctorigsrc = jhash2(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u3.ip6, 4, q->perturbation); | ||||
| +			info.ctorigdst = jhash2(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.u3.ip6, 4, q->perturbation); | ||||
| +			info.ctreplsrc = jhash2(ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3.ip6, 4, q->perturbation); | ||||
| +			info.ctrepldst = jhash2(ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip6, 4, q->perturbation); | ||||
| +		} | ||||
| + | ||||
| +	} | ||||
| +#endif | ||||
| + | ||||
| +	switch(q->hash_kind) | ||||
| +	{ | ||||
| +	case TCA_SFQ_HASH_CLASSIC: | ||||
| +		return esfq_fold_hash_classic(q, h, h2); | ||||
| +		return esfq_jhash_3words(q, info.dst, info.src, info.proto); | ||||
| +	case TCA_SFQ_HASH_DST: | ||||
| +		return esfq_hash_u32(q,h); | ||||
| +		return esfq_jhash_1word(q, info.dst); | ||||
| +	case TCA_SFQ_HASH_DSTDIR: | ||||
| +		return esfq_hash_direct(q, ntohl(h)); | ||||
| +		return esfq_hash_direct(q, ntohl(info.dst)); | ||||
| +	case TCA_SFQ_HASH_SRC: | ||||
| +		return esfq_hash_u32(q,hs); | ||||
| +		return esfq_jhash_1word(q, info.src); | ||||
| +	case TCA_SFQ_HASH_SRCDIR: | ||||
| +		return esfq_hash_direct(q, ntohl(hs)); | ||||
| +#ifdef CONFIG_NETFILTER | ||||
| +		return esfq_hash_direct(q, ntohl(info.src)); | ||||
| +	case TCA_SFQ_HASH_FWMARK: | ||||
| +		return esfq_hash_u32(q,nfm); | ||||
| +		return esfq_jhash_1word(q, info.mark); | ||||
| +	case TCA_SFQ_HASH_FWMARKDIR: | ||||
| +		return esfq_hash_direct(q,nfm); | ||||
| +		return esfq_hash_direct(q, info.mark); | ||||
| +#ifdef CONFIG_NF_CONNTRACK_ENABLED | ||||
| +	case TCA_SFQ_HASH_CTORIGDST: | ||||
| +		return esfq_jhash_1word(q, info.ctorigdst); | ||||
| +	case TCA_SFQ_HASH_CTORIGSRC: | ||||
| +		return esfq_jhash_1word(q, info.ctorigsrc); | ||||
| +	case TCA_SFQ_HASH_CTREPLDST: | ||||
| +		return esfq_jhash_1word(q, info.ctrepldst); | ||||
| +	case TCA_SFQ_HASH_CTREPLSRC: | ||||
| +		return esfq_jhash_1word(q, info.ctreplsrc); | ||||
| +#endif | ||||
| +	default: | ||||
| +		if (net_ratelimit()) | ||||
| +			printk(KERN_WARNING "ESFQ: Unknown hash method. Falling back to classic.\n"); | ||||
| +	} | ||||
| +	return esfq_fold_hash_classic(q, h, h2); | ||||
| +	return esfq_jhash_3words(q, info.dst, info.src, info.proto); | ||||
| +} | ||||
| + | ||||
| +static inline void esfq_link(struct esfq_sched_data *q, esfq_index x) | ||||
| @@ -365,6 +423,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +		esfq_dec(q, x); | ||||
| +		sch->q.qlen--; | ||||
| +		sch->qstats.drops++; | ||||
| +		sch->qstats.backlog -= len; | ||||
| +		return len; | ||||
| +	} | ||||
| + | ||||
| @@ -381,6 +440,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +		sch->q.qlen--; | ||||
| +		q->ht[q->hash[d]] = q->depth; | ||||
| +		sch->qstats.drops++; | ||||
| +		sch->qstats.backlog -= len; | ||||
| +		return len; | ||||
| +	} | ||||
| + | ||||
| @@ -400,6 +460,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +		q->ht[hash] = x = q->dep[depth].next; | ||||
| +		q->hash[x] = hash; | ||||
| +	} | ||||
| +	sch->qstats.backlog += skb->len; | ||||
| +	__skb_queue_tail(&q->qs[x], skb); | ||||
| +	esfq_inc(q, x); | ||||
| +	if (q->qs[x].qlen == 1) {		/* The flow is new */ | ||||
| @@ -436,6 +497,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +		q->ht[hash] = x = q->dep[depth].next; | ||||
| +		q->hash[x] = hash; | ||||
| +	} | ||||
| +	sch->qstats.backlog += skb->len; | ||||
| +	__skb_queue_head(&q->qs[x], skb); | ||||
| +	esfq_inc(q, x); | ||||
| +	if (q->qs[x].qlen == 1) {		/* The flow is new */ | ||||
| @@ -480,6 +542,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +	skb = __skb_dequeue(&q->qs[a]); | ||||
| +	esfq_dec(q, a); | ||||
| +	sch->q.qlen--; | ||||
| +	sch->qstats.backlog -= skb->len; | ||||
| +	 | ||||
| +	/* Is the slot empty? */ | ||||
| +	if (q->qs[a].qlen == 0) { | ||||
| @@ -542,7 +605,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +	 | ||||
| +	if (ctl->hash_kind) { | ||||
| +		q->hash_kind = ctl->hash_kind; | ||||
| +		if (q->hash_kind !=  TCA_SFQ_HASH_CLASSIC) | ||||
| +		if (q->hash_kind != TCA_SFQ_HASH_CLASSIC) | ||||
| +			q->perturb_period = 0; | ||||
| +	} | ||||
| +	 | ||||
| @@ -566,7 +629,7 @@ diff -urN linux-2.6.19.old/net/sched/sch_esfq.c linux-2.6.19.dev/net/sched/sch_e | ||||
| +{ | ||||
| +	struct esfq_sched_data *q = qdisc_priv(sch); | ||||
| +	struct tc_esfq_qopt *ctl; | ||||
| +	esfq_index p = ~0UL/2; | ||||
| +	esfq_index p = ~0U/2; | ||||
| +	int i; | ||||
| +	 | ||||
| +	if (opt && opt->rta_len < RTA_LENGTH(sizeof(*ctl))) | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,26 +1,26 @@ | ||||
| diff -urN linux.old/fs/Kconfig linux.dev/fs/Kconfig | ||||
| --- linux.old/fs/Kconfig	2006-11-29 22:57:37.000000000 +0100 | ||||
| +++ linux.dev/fs/Kconfig	2006-12-14 04:21:47.000000000 +0100 | ||||
| @@ -1202,6 +1202,8 @@ | ||||
| diff -Nur linux-2.6.21.1/fs/Kconfig linux-2.6.21.1-owrt/fs/Kconfig | ||||
| --- linux-2.6.21.1/fs/Kconfig	2007-05-14 10:49:47.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/fs/Kconfig	2007-05-14 11:53:15.000000000 +0200 | ||||
| @@ -1189,6 +1189,8 @@ | ||||
|  	  To compile the EFS file system support as a module, choose M here: the | ||||
|  	  module will be called efs. | ||||
|   | ||||
| +source "fs/yaffs2/Kconfig" | ||||
| + | ||||
|  config JFFS_FS | ||||
|  	tristate "Journalling Flash File System (JFFS) support" | ||||
|  	depends on MTD && BLOCK | ||||
| diff -urN linux.old/fs/Makefile linux.dev/fs/Makefile | ||||
| --- linux.old/fs/Makefile	2006-11-29 22:57:37.000000000 +0100 | ||||
| +++ linux.dev/fs/Makefile	2006-12-14 04:21:47.000000000 +0100 | ||||
| @@ -114,3 +114,4 @@ | ||||
|  config JFFS2_FS | ||||
|  	tristate "Journalling Flash File System v2 (JFFS2) support" | ||||
|  	select CRC32 | ||||
| diff -Nur linux-2.6.21.1/fs/Makefile linux-2.6.21.1-owrt/fs/Makefile | ||||
| --- linux-2.6.21.1/fs/Makefile	2007-05-14 10:49:47.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/fs/Makefile	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -115,3 +115,4 @@ | ||||
|  obj-$(CONFIG_DEBUG_FS)		+= debugfs/ | ||||
|  obj-$(CONFIG_OCFS2_FS)		+= ocfs2/ | ||||
|  obj-$(CONFIG_GFS2_FS)           += gfs2/ | ||||
| +obj-$(CONFIG_YAFFS_FS)		+= yaffs2/ | ||||
| diff -urN linux.old/fs/yaffs2/devextras.h linux.dev/fs/yaffs2/devextras.h | ||||
| --- linux.old/fs/yaffs2/devextras.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/devextras.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/devextras.h linux-2.6.21.1-owrt/fs/yaffs2/devextras.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/devextras.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/devextras.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,265 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -287,9 +287,9 @@ diff -urN linux.old/fs/yaffs2/devextras.h linux.dev/fs/yaffs2/devextras.h | ||||
| +#endif | ||||
| + | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/Kconfig linux.dev/fs/yaffs2/Kconfig | ||||
| --- linux.old/fs/yaffs2/Kconfig	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/Kconfig	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/Kconfig linux-2.6.21.1-owrt/fs/yaffs2/Kconfig | ||||
| --- linux-2.6.21.1/fs/yaffs2/Kconfig	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/Kconfig	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,135 @@ | ||||
| +# | ||||
| +# YAFFS file system configurations | ||||
| @@ -426,9 +426,9 @@ diff -urN linux.old/fs/yaffs2/Kconfig linux.dev/fs/yaffs2/Kconfig | ||||
| +	  but makes look-ups faster. | ||||
| + | ||||
| +	  If unsure, say Y. | ||||
| diff -urN linux.old/fs/yaffs2/Makefile linux.dev/fs/yaffs2/Makefile | ||||
| --- linux.old/fs/yaffs2/Makefile	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/Makefile	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/Makefile linux-2.6.21.1-owrt/fs/yaffs2/Makefile | ||||
| --- linux-2.6.21.1/fs/yaffs2/Makefile	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/Makefile	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,10 @@ | ||||
| +# | ||||
| +# Makefile for the linux YAFFS filesystem routines. | ||||
| @@ -440,9 +440,9 @@ diff -urN linux.old/fs/yaffs2/Makefile linux.dev/fs/yaffs2/Makefile | ||||
| +yaffs-y += yaffs_packedtags2.o yaffs_nand.o yaffs_qsort.o | ||||
| +yaffs-y += yaffs_tagscompat.o yaffs_tagsvalidity.o | ||||
| +yaffs-y += yaffs_mtdif.o yaffs_mtdif2.o | ||||
| diff -urN linux.old/fs/yaffs2/moduleconfig.h linux.dev/fs/yaffs2/moduleconfig.h | ||||
| --- linux.old/fs/yaffs2/moduleconfig.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/moduleconfig.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/moduleconfig.h linux-2.6.21.1-owrt/fs/yaffs2/moduleconfig.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/moduleconfig.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/moduleconfig.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,32 @@ | ||||
| +#ifndef __YAFFS_CONFIG_H__ | ||||
| +#define __YAFFS_CONFIG_H__ | ||||
| @@ -476,9 +476,9 @@ diff -urN linux.old/fs/yaffs2/moduleconfig.h linux.dev/fs/yaffs2/moduleconfig.h | ||||
| +#endif /* YAFFS_OUT_OF_TREE */ | ||||
| + | ||||
| +#endif /* __YAFFS_CONFIG_H__ */ | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.c linux.dev/fs/yaffs2/yaffs_checkptrw.c | ||||
| --- linux.old/fs/yaffs2/yaffs_checkptrw.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_checkptrw.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,384 @@ | ||||
| +/* YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| + * | ||||
| @@ -864,9 +864,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.c linux.dev/fs/yaffs2/yaffs_checkp | ||||
| + | ||||
| + | ||||
| + | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.h linux.dev/fs/yaffs2/yaffs_checkptrw.h | ||||
| --- linux.old/fs/yaffs2/yaffs_checkptrw.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_checkptrw.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_checkptrw.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,18 @@ | ||||
| +#ifndef __YAFFS_CHECKPTRW_H__ | ||||
| +#define __YAFFS_CHECKPTRW_H__ | ||||
| @@ -886,9 +886,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_checkptrw.h linux.dev/fs/yaffs2/yaffs_checkp | ||||
| + | ||||
| +#endif | ||||
| + | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_ecc.c linux.dev/fs/yaffs2/yaffs_ecc.c | ||||
| --- linux.old/fs/yaffs2/yaffs_ecc.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_ecc.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_ecc.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_ecc.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,333 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -1223,9 +1223,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_ecc.c linux.dev/fs/yaffs2/yaffs_ecc.c | ||||
| + | ||||
| +} | ||||
| + | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_ecc.h linux.dev/fs/yaffs2/yaffs_ecc.h | ||||
| --- linux.old/fs/yaffs2/yaffs_ecc.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_ecc.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_ecc.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_ecc.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_ecc.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,44 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -1271,9 +1271,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_ecc.h linux.dev/fs/yaffs2/yaffs_ecc.h | ||||
| +			  yaffs_ECCOther * read_ecc, | ||||
| +			  const yaffs_ECCOther * test_ecc); | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_fs.c linux.dev/fs/yaffs2/yaffs_fs.c | ||||
| --- linux.old/fs/yaffs2/yaffs_fs.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_fs.c	2006-12-14 04:33:02.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_fs.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_fs.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_fs.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_fs.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,2136 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | ||||
| @@ -3411,9 +3411,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_fs.c linux.dev/fs/yaffs2/yaffs_fs.c | ||||
| +MODULE_DESCRIPTION("YAFFS2 - a NAND specific flash file system"); | ||||
| +MODULE_AUTHOR("Charles Manning, Aleph One Ltd., 2002-2006"); | ||||
| +MODULE_LICENSE("GPL"); | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_guts.c linux.dev/fs/yaffs2/yaffs_guts.c | ||||
| --- linux.old/fs/yaffs2/yaffs_guts.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_guts.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_guts.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_guts.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,6675 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | ||||
| @@ -10090,9 +10090,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_guts.c linux.dev/fs/yaffs2/yaffs_guts.c | ||||
| + | ||||
| +	    return YAFFS_OK; | ||||
| +} | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_guts.h linux.dev/fs/yaffs2/yaffs_guts.h | ||||
| --- linux.old/fs/yaffs2/yaffs_guts.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_guts.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_guts.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_guts.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_guts.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,893 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | ||||
| @@ -10987,9 +10987,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_guts.h linux.dev/fs/yaffs2/yaffs_guts.h | ||||
| +void yaffs_HandleChunkError(yaffs_Device *dev, yaffs_BlockInfo *bi); | ||||
| + | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffsinterface.h linux.dev/fs/yaffs2/yaffsinterface.h | ||||
| --- linux.old/fs/yaffs2/yaffsinterface.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffsinterface.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffsinterface.h linux-2.6.21.1-owrt/fs/yaffs2/yaffsinterface.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffsinterface.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffsinterface.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,23 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | ||||
| @@ -11014,9 +11014,9 @@ diff -urN linux.old/fs/yaffs2/yaffsinterface.h linux.dev/fs/yaffs2/yaffsinterfac | ||||
| +int yaffs_Initialise(unsigned nBlocks); | ||||
| + | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.c linux.dev/fs/yaffs2/yaffs_mtdif2.c | ||||
| --- linux.old/fs/yaffs2/yaffs_mtdif2.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_mtdif2.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,234 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -11252,9 +11252,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.c linux.dev/fs/yaffs2/yaffs_mtdif2.c | ||||
| +		return YAFFS_FAIL; | ||||
| +} | ||||
| + | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.h linux.dev/fs/yaffs2/yaffs_mtdif2.h | ||||
| --- linux.old/fs/yaffs2/yaffs_mtdif2.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_mtdif2.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif2.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,29 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -11285,9 +11285,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_mtdif2.h linux.dev/fs/yaffs2/yaffs_mtdif2.h | ||||
| +			    yaffs_BlockState * state, int *sequenceNumber); | ||||
| + | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_mtdif.c linux.dev/fs/yaffs2/yaffs_mtdif.c | ||||
| --- linux.old/fs/yaffs2/yaffs_mtdif.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_mtdif.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,243 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -11532,9 +11532,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_mtdif.c linux.dev/fs/yaffs2/yaffs_mtdif.c | ||||
| +	return YAFFS_OK; | ||||
| +} | ||||
| + | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_mtdif.h linux.dev/fs/yaffs2/yaffs_mtdif.h | ||||
| --- linux.old/fs/yaffs2/yaffs_mtdif.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_mtdif.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_mtdif.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,31 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -11567,9 +11567,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_mtdif.h linux.dev/fs/yaffs2/yaffs_mtdif.h | ||||
| +int nandmtd_EraseBlockInNAND(yaffs_Device * dev, int blockNumber); | ||||
| +int nandmtd_InitialiseNAND(yaffs_Device * dev); | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_nand.c linux.dev/fs/yaffs2/yaffs_nand.c | ||||
| --- linux.old/fs/yaffs2/yaffs_nand.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_nand.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nand.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_nand.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,135 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -11706,9 +11706,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_nand.c linux.dev/fs/yaffs2/yaffs_nand.c | ||||
| + | ||||
| + | ||||
| +  | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_nandemul2k.h linux.dev/fs/yaffs2/yaffs_nandemul2k.h | ||||
| --- linux.old/fs/yaffs2/yaffs_nandemul2k.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_nandemul2k.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nandemul2k.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nandemul2k.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_nandemul2k.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nandemul2k.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,42 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -11752,9 +11752,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_nandemul2k.h linux.dev/fs/yaffs2/yaffs_nande | ||||
| +int nandemul2k_GetNumberOfBlocks(void); | ||||
| + | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_nand.h linux.dev/fs/yaffs2/yaffs_nand.h | ||||
| --- linux.old/fs/yaffs2/yaffs_nand.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_nand.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_nand.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_nand.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_nand.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,43 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -11799,9 +11799,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_nand.h linux.dev/fs/yaffs2/yaffs_nand.h | ||||
| + | ||||
| +#endif | ||||
| + | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.c linux.dev/fs/yaffs2/yaffs_packedtags1.c | ||||
| --- linux.old/fs/yaffs2/yaffs_packedtags1.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_packedtags1.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,39 @@ | ||||
| +#include "yaffs_packedtags1.h" | ||||
| +#include "yportenv.h" | ||||
| @@ -11842,9 +11842,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.c linux.dev/fs/yaffs2/yaffs_pack | ||||
| + | ||||
| +	} | ||||
| +} | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.h linux.dev/fs/yaffs2/yaffs_packedtags1.h | ||||
| --- linux.old/fs/yaffs2/yaffs_packedtags1.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_packedtags1.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags1.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,22 @@ | ||||
| +// This is used to pack YAFFS1 tags, not YAFFS2 tags. | ||||
| + | ||||
| @@ -11868,9 +11868,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_packedtags1.h linux.dev/fs/yaffs2/yaffs_pack | ||||
| +void yaffs_PackTags1(yaffs_PackedTags1 * pt, const yaffs_ExtendedTags * t); | ||||
| +void yaffs_UnpackTags1(yaffs_ExtendedTags * t, const yaffs_PackedTags1 * pt); | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.c linux.dev/fs/yaffs2/yaffs_packedtags2.c | ||||
| --- linux.old/fs/yaffs2/yaffs_packedtags2.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_packedtags2.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,184 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -12056,9 +12056,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.c linux.dev/fs/yaffs2/yaffs_pack | ||||
| +	yaffs_DumpTags2(t); | ||||
| + | ||||
| +} | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.h linux.dev/fs/yaffs2/yaffs_packedtags2.h | ||||
| --- linux.old/fs/yaffs2/yaffs_packedtags2.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_packedtags2.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_packedtags2.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,23 @@ | ||||
| +/* This is used to pack YAFFS2 tags, not YAFFS1tags. */ | ||||
| + | ||||
| @@ -12083,9 +12083,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_packedtags2.h linux.dev/fs/yaffs2/yaffs_pack | ||||
| +void yaffs_PackTags2(yaffs_PackedTags2 * pt, const yaffs_ExtendedTags * t); | ||||
| +void yaffs_UnpackTags2(yaffs_ExtendedTags * t, yaffs_PackedTags2 * pt); | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_qsort.c linux.dev/fs/yaffs2/yaffs_qsort.c | ||||
| --- linux.old/fs/yaffs2/yaffs_qsort.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_qsort.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_qsort.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_qsort.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,156 @@ | ||||
| +/* | ||||
| + * Copyright (c) 1992, 1993 | ||||
| @@ -12243,9 +12243,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_qsort.c linux.dev/fs/yaffs2/yaffs_qsort.c | ||||
| +	} | ||||
| +/*		qsort(pn - r, r / es, es, cmp);*/ | ||||
| +} | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_qsort.h linux.dev/fs/yaffs2/yaffs_qsort.h | ||||
| --- linux.old/fs/yaffs2/yaffs_qsort.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_qsort.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_qsort.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_qsort.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_qsort.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,23 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system. | ||||
| @@ -12270,9 +12270,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_qsort.h linux.dev/fs/yaffs2/yaffs_qsort.h | ||||
| +                   int (*cmp)(const void *, const void *)); | ||||
| + | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.c linux.dev/fs/yaffs2/yaffs_tagscompat.c | ||||
| --- linux.old/fs/yaffs2/yaffs_tagscompat.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_tagscompat.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,532 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -12806,9 +12806,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.c linux.dev/fs/yaffs2/yaffs_tagsc | ||||
| + | ||||
| +	return YAFFS_OK; | ||||
| +} | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.h linux.dev/fs/yaffs2/yaffs_tagscompat.h | ||||
| --- linux.old/fs/yaffs2/yaffs_tagscompat.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_tagscompat.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagscompat.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,40 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
| @@ -12850,9 +12850,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_tagscompat.h linux.dev/fs/yaffs2/yaffs_tagsc | ||||
| +					  state, int *sequenceNumber); | ||||
| + | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.c linux.dev/fs/yaffs2/yaffs_tagsvalidity.c | ||||
| --- linux.old/fs/yaffs2/yaffs_tagsvalidity.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_tagsvalidity.c	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.c linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.c | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.c	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,31 @@ | ||||
| + | ||||
| +/* | ||||
| @@ -12885,9 +12885,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.c linux.dev/fs/yaffs2/yaffs_tag | ||||
| +		tags->validMarker1 == 0x55555555); | ||||
| + | ||||
| +} | ||||
| diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.h linux.dev/fs/yaffs2/yaffs_tagsvalidity.h | ||||
| --- linux.old/fs/yaffs2/yaffs_tagsvalidity.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yaffs_tagsvalidity.h	2006-12-14 04:21:47.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.h linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yaffs_tagsvalidity.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,25 @@ | ||||
| + | ||||
| +/* | ||||
| @@ -12914,9 +12914,9 @@ diff -urN linux.old/fs/yaffs2/yaffs_tagsvalidity.h linux.dev/fs/yaffs2/yaffs_tag | ||||
| +void yaffs_InitialiseTags(yaffs_ExtendedTags * tags); | ||||
| +int yaffs_ValidateTags(yaffs_ExtendedTags * tags); | ||||
| +#endif | ||||
| diff -urN linux.old/fs/yaffs2/yportenv.h linux.dev/fs/yaffs2/yportenv.h | ||||
| --- linux.old/fs/yaffs2/yportenv.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux.dev/fs/yaffs2/yportenv.h	2006-12-14 04:26:06.000000000 +0100 | ||||
| diff -Nur linux-2.6.21.1/fs/yaffs2/yportenv.h linux-2.6.21.1-owrt/fs/yaffs2/yportenv.h | ||||
| --- linux-2.6.21.1/fs/yaffs2/yportenv.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/fs/yaffs2/yportenv.h	2007-05-14 11:52:43.000000000 +0200 | ||||
| @@ -0,0 +1,165 @@ | ||||
| +/* | ||||
| + * YAFFS: Yet another FFS. A NAND-flash specific file system.  | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.c linux-lzma/arch/i386/boot/compressed/LzmaDecode.c | ||||
| --- linux-old/arch/i386/boot/compressed/LzmaDecode.c	1969-12-31 19:00:00.000000000 -0500 | ||||
| +++ linux-lzma/arch/i386/boot/compressed/LzmaDecode.c	2005-06-05 00:07:38.000000000 -0400 | ||||
| diff -Nur linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.c linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.c | ||||
| --- linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.c	2007-05-14 11:55:38.000000000 +0200 | ||||
| @@ -0,0 +1,586 @@ | ||||
| +/* | ||||
| +  LzmaDecode.c | ||||
| @@ -588,9 +588,9 @@ diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.c linux-lzma/arch/i386 | ||||
| +  *outSizeProcessed = nowPos; | ||||
| +  return LZMA_RESULT_OK; | ||||
| +} | ||||
| diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.h linux-lzma/arch/i386/boot/compressed/LzmaDecode.h | ||||
| --- linux-old/arch/i386/boot/compressed/LzmaDecode.h	1969-12-31 19:00:00.000000000 -0500 | ||||
| +++ linux-lzma/arch/i386/boot/compressed/LzmaDecode.h	2005-06-05 00:07:39.000000000 -0400 | ||||
| diff -Nur linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.h linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.h | ||||
| --- linux-2.6.21.1/arch/i386/boot/compressed/LzmaDecode.h	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/LzmaDecode.h	2007-05-14 11:55:38.000000000 +0200 | ||||
| @@ -0,0 +1,100 @@ | ||||
| +/*  | ||||
| +  LzmaDecode.h | ||||
| @@ -692,52 +692,9 @@ diff -Naur linux-old/arch/i386/boot/compressed/LzmaDecode.h linux-lzma/arch/i386 | ||||
| +    UInt32 *outSizeProcessed); | ||||
| + | ||||
| +#endif | ||||
| diff -Naur linux-old/arch/i386/boot/compressed/Makefile linux-lzma/arch/i386/boot/compressed/Makefile | ||||
| --- linux-old/arch/i386/boot/compressed/Makefile	2005-06-04 21:53:40.000000000 -0400 | ||||
| +++ linux-lzma/arch/i386/boot/compressed/Makefile	2005-06-05 00:25:23.000000000 -0400 | ||||
| @@ -2,24 +2,33 @@ | ||||
|  # linux/arch/i386/boot/compressed/Makefile | ||||
|  # | ||||
|  # create a compressed vmlinux image from the original vmlinux | ||||
| +# patched by Ming-Ching Tiew <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 | ||||
| diff -Nur linux-2.6.21.1/arch/i386/boot/compressed/lzma_misc.c linux-2.6.21.1-owrt/arch/i386/boot/compressed/lzma_misc.c | ||||
| --- linux-2.6.21.1/arch/i386/boot/compressed/lzma_misc.c	1970-01-01 01:00:00.000000000 +0100 | ||||
| +++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/lzma_misc.c	2007-05-14 11:55:38.000000000 +0200 | ||||
| @@ -0,0 +1,412 @@ | ||||
| +/* | ||||
| + * lzma_misc.c | ||||
| @@ -1151,9 +1108,50 @@ diff -Naur linux-old/arch/i386/boot/compressed/lzma_misc.c linux-lzma/arch/i386/ | ||||
| +	if (high_loaded) close_output_buffer_if_we_run_high(mv); | ||||
| +	return high_loaded; | ||||
| +} | ||||
| diff -urN linux-2.6.19.2/scripts/Makefile.lib linux-2.6.19.2.new/scripts/Makefile.lib | ||||
| --- linux-2.6.19.2/scripts/Makefile.lib	2007-01-10 20:10:37.000000000 +0100 | ||||
| +++ linux-2.6.19.2.new/scripts/Makefile.lib	2007-04-15 23:51:54.000000000 +0200 | ||||
| diff -Nur linux-2.6.21.1/arch/i386/boot/compressed/Makefile linux-2.6.21.1-owrt/arch/i386/boot/compressed/Makefile | ||||
| --- linux-2.6.21.1/arch/i386/boot/compressed/Makefile	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/arch/i386/boot/compressed/Makefile	2007-05-14 12:01:25.000000000 +0200 | ||||
| @@ -4,7 +4,7 @@ | ||||
|  # create a compressed vmlinux image from the original vmlinux | ||||
|  # | ||||
|   | ||||
| -targets		:= vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o \ | ||||
| +targets		:= vmlinux vmlinux.bin vmlinux.bin.lzma head.o lzma_misc.o piggy.o \ | ||||
|  			vmlinux.bin.all vmlinux.relocs | ||||
|  EXTRA_AFLAGS	:= -traditional | ||||
|   | ||||
| @@ -12,7 +12,7 @@ | ||||
|  CFLAGS_misc.o += -fPIC | ||||
|  hostprogs-y	:= relocs | ||||
|   | ||||
| -$(obj)/vmlinux: $(src)/vmlinux.lds $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o FORCE | ||||
| +$(obj)/vmlinux: $(src)/vmlinux.lds $(obj)/head.o $(obj)/lzma_misc.o $(obj)/piggy.o FORCE | ||||
|  	$(call if_changed,ld) | ||||
|  	@: | ||||
|   | ||||
| @@ -32,14 +32,14 @@ | ||||
|  	$(call if_changed,relocbin) | ||||
|   | ||||
|  ifdef CONFIG_RELOCATABLE | ||||
| -$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin.all FORCE | ||||
| -	$(call if_changed,gzip) | ||||
| +$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin.all FORCE | ||||
| +	$(call if_changed,lzma) | ||||
|  else | ||||
| -$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE | ||||
| -	$(call if_changed,gzip) | ||||
| +$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE | ||||
| +	$(call if_changed,lzma) | ||||
|  endif | ||||
|   | ||||
|  LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T | ||||
|   | ||||
| -$(obj)/piggy.o: $(src)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE | ||||
| +$(obj)/piggy.o: $(src)/vmlinux.scr $(obj)/vmlinux.bin.lzma FORCE | ||||
|  	$(call if_changed,ld) | ||||
| diff -Nur linux-2.6.21.1/scripts/Makefile.lib linux-2.6.21.1-owrt/scripts/Makefile.lib | ||||
| --- linux-2.6.21.1/scripts/Makefile.lib	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/scripts/Makefile.lib	2007-05-14 11:55:38.000000000 +0200 | ||||
| @@ -162,4 +162,9 @@ | ||||
|  quiet_cmd_gzip = GZIP    $@ | ||||
|  cmd_gzip = gzip -f -9 < $< > $@ | ||||
|   | ||||
| @@ -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 | ||||
| --- linux-2.6.19.2/scripts/gen_initramfs_list.sh	2007-01-10 20:10:37.000000000 +0100 | ||||
| +++ linux-2.6.19.2.new/scripts/gen_initramfs_list.sh	2007-05-03 16:25:06.000000000 +0200 | ||||
| @@ -120,9 +120,9 @@ | ||||
| diff -Nur linux-2.6.21.1/scripts/gen_initramfs_list.sh linux-2.6.21.1-owrt/scripts/gen_initramfs_list.sh | ||||
| --- linux-2.6.21.1/scripts/gen_initramfs_list.sh	2007-04-27 23:49:26.000000000 +0200 | ||||
| +++ linux-2.6.21.1-owrt/scripts/gen_initramfs_list.sh	2007-05-14 12:18:02.000000000 +0200 | ||||
| @@ -125,7 +125,7 @@ | ||||
|  			str="${ftype} ${name} ${location} ${str}" | ||||
|  			;; | ||||
|  		"nod") | ||||
|  			local dev_type= | ||||
| -			local maj=$(LC_ALL=C ls -l "${location}" | \ | ||||
| +			local maj=$(LC_ALL=C ls --time-style=locale -l "${location}" | \ | ||||
|  					gawk '{sub(/,/, "", $5); print $5}') | ||||
| -			local min=$(LC_ALL=C ls -l "${location}" | \ | ||||
| +			local min=$(LC_ALL=C ls --time-style=locale -l "${location}" | \ | ||||
|  					gawk '{print $6}') | ||||
|   | ||||
|  			if [ -b "${location}" ]; then | ||||
| @@ -133,7 +133,7 @@ | ||||
|  			str="${ftype} ${name} ${str} ${dev_type} ${maj} ${min}" | ||||
| -			local dev=`LC_ALL=C ls -l "${location}"` | ||||
| +			local dev=`LC_ALL=C ls -l --time-style=locale "${location}"` | ||||
|  			local maj=`field 5 ${dev}` | ||||
|  			local min=`field 6 ${dev}` | ||||
|  			maj=${maj%,} | ||||
| @@ -135,7 +135,7 @@ | ||||
|  			str="${ftype} ${name} ${str} ${dev} ${maj} ${min}" | ||||
|  			;; | ||||
|  		"slink") | ||||
| -			local target=$(LC_ALL=C ls -l "${location}" | \ | ||||
| +			local target=$(LC_ALL=C ls --time-style=locale -l "${location}" | \ | ||||
|  					gawk '{print $11}') | ||||
| -			local target=`field 11 $(LC_ALL=C ls -l "${location}")` | ||||
| +			local target=`field 11 $(LC_ALL=C ls -l --time-style=locale "${location}")` | ||||
|  			str="${ftype} ${name} ${target} ${str}" | ||||
|  			;; | ||||
|  		*) | ||||
|   | ||||
| @@ -15,8 +15,10 @@ CONFIG_ALIGNMENT_TRAP=y | ||||
| # CONFIG_ARCH_H720X is not set | ||||
| # CONFIG_ARCH_IMX is not set | ||||
| # CONFIG_ARCH_INTEGRATOR is not set | ||||
| # CONFIG_ARCH_IOP13XX is not set | ||||
| # CONFIG_ARCH_IOP32X is not set | ||||
| # CONFIG_ARCH_IOP33X is not set | ||||
| CONFIG_ARCH_IXCDP1100=y | ||||
| CONFIG_ARCH_IXDP425=y | ||||
| CONFIG_ARCH_IXDP4XX=y | ||||
| # CONFIG_ARCH_IXP2000 is not set | ||||
| @@ -25,6 +27,7 @@ CONFIG_ARCH_IXP4XX=y | ||||
| # CONFIG_ARCH_L7200 is not set | ||||
| # CONFIG_ARCH_LH7A40X is not set | ||||
| # CONFIG_ARCH_NETX is not set | ||||
| # CONFIG_ARCH_NS9XXX is not set | ||||
| # CONFIG_ARCH_OMAP is not set | ||||
| # CONFIG_ARCH_PNX4008 is not set | ||||
| # CONFIG_ARCH_PRPMC1100 is not set | ||||
| @@ -202,9 +205,11 @@ CONFIG_IXP4XX_NPE_FW_MTD=y | ||||
| CONFIG_IXP4XX_QMGR=y | ||||
| CONFIG_IXP4XX_CRYPTO=y | ||||
| CONFIG_IXP4XX_WATCHDOG=y | ||||
| # CONFIG_IWMMXT is not set | ||||
| # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||||
| CONFIG_JFFS2_FS_DEBUG=0 | ||||
| # CONFIG_JFS_FS is not set | ||||
| # CONFIG_KEXEC is not set | ||||
| # CONFIG_LANMEDIA is not set | ||||
| CONFIG_LEGACY_PTYS=y | ||||
| CONFIG_LEGACY_PTY_COUNT=256 | ||||
| @@ -318,6 +323,7 @@ CONFIG_PATA_ARTOP=m | ||||
| # CONFIG_PATA_HPT37X is not set | ||||
| # CONFIG_PATA_HPT3X2N is not set | ||||
| # CONFIG_PATA_HPT3X3 is not set | ||||
| CONFIG_PATA_IXP4XX_CF=m | ||||
| # CONFIG_PATA_IT821X is not set | ||||
| # CONFIG_PATA_JMICRON is not set | ||||
| # CONFIG_PATA_MPIIX is not set | ||||
| @@ -389,6 +395,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||||
| # CONFIG_SENSORS_ADM1021 is not set | ||||
| # CONFIG_SENSORS_ADM1025 is not set | ||||
| # CONFIG_SENSORS_ADM1026 is not set | ||||
| # CONFIG_SENSORS_ADM1029 is not set | ||||
| # CONFIG_SENSORS_ADM1031 is not set | ||||
| # CONFIG_SENSORS_ADM9240 is not set | ||||
| # CONFIG_SENSORS_ASB100 is not set | ||||
| @@ -416,6 +423,7 @@ CONFIG_SENSORS_EEPROM=y | ||||
| # CONFIG_SENSORS_MAX1619 is not set | ||||
| # CONFIG_SENSORS_MAX6875 is not set | ||||
| # CONFIG_SENSORS_PC87360 is not set | ||||
| # CONFIG_SENSORS_PC87427 is not set | ||||
| # CONFIG_SENSORS_PCA9539 is not set | ||||
| # CONFIG_SENSORS_PCF8574 is not set | ||||
| # CONFIG_SENSORS_PCF8591 is not set | ||||
| @@ -431,6 +439,7 @@ CONFIG_SENSORS_EEPROM=y | ||||
| # CONFIG_SENSORS_W83781D is not set | ||||
| # CONFIG_SENSORS_W83791D is not set | ||||
| # CONFIG_SENSORS_W83792D is not set | ||||
| # CONFIG_SENSORS_W83793 is not set | ||||
| # CONFIG_SENSORS_W83L785TS is not set | ||||
| # CONFIG_SERIAL_8250_EXTENDED is not set | ||||
| # CONFIG_SHMEM is not set | ||||
|   | ||||
| @@ -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 | ||||
| +++ b/drivers/net/ixp4xx/Kconfig	2007-01-12 23:28:50.000000000 -0700 | ||||
| @@ -11,6 +11,7 @@ config IXP4XX_NPE | ||||
| --- | ||||
|  drivers/net/ixp4xx/Kconfig             |   10 + | ||||
|  drivers/net/ixp4xx/Makefile            |    1  | ||||
|  drivers/net/ixp4xx/npe_ucode.c         |  185 +++++++++++++++++++++++++++++++++ | ||||
|  drivers/net/ixp4xx/ucode_dl.c          |   43 ++++--- | ||||
|  include/asm-arm/arch-ixp4xx/platform.h |   19 +++ | ||||
|  include/linux/ixp_npe.h                |    1  | ||||
|  6 files changed, 239 insertions(+), 20 deletions(-) | ||||
|  | ||||
| Index: linux-2.6.20-rc3/drivers/net/ixp4xx/Kconfig | ||||
| =================================================================== | ||||
| --- linux-2.6.20-rc3.orig/drivers/net/ixp4xx/Kconfig | ||||
| +++ linux-2.6.20-rc3/drivers/net/ixp4xx/Kconfig | ||||
| @@ -11,6 +11,7 @@ | ||||
|  	tristate "IXP4xx NPE support" | ||||
|  	depends on ARCH_IXP4XX | ||||
|  	depends on NET_ETHERNET | ||||
| @@ -9,7 +19,7 @@ diff -Naupr a/drivers/net/ixp4xx/Kconfig b/drivers/net/ixp4xx/Kconfig | ||||
|  	help | ||||
|  	  The IXP4XX NPE driver supports the 3 CPU co-processors called | ||||
|  	  "Network Processing Engines" (NPE). It adds support fo downloading | ||||
| @@ -18,7 +19,7 @@ config IXP4XX_NPE | ||||
| @@ -18,7 +19,7 @@ | ||||
|  	  More about this at: Documentation/networking/ixp4xx/README. | ||||
|  	  You can either use this OR the Intel Access Library (IAL) | ||||
|   | ||||
| @@ -18,7 +28,7 @@ diff -Naupr a/drivers/net/ixp4xx/Kconfig b/drivers/net/ixp4xx/Kconfig | ||||
|  	bool "Use Firmware hotplug for Microcode download" | ||||
|  	depends on IXP4XX_NPE | ||||
|  	select HOTPLUG | ||||
| @@ -28,6 +29,13 @@ config IXP4XX_FW_LOAD | ||||
| @@ -28,6 +29,13 @@ | ||||
|  	  /usr/lib/hotplug/firmware/NPE-[ABC] | ||||
|  	  see Documentation/firmware_class/hotplug-script | ||||
|   | ||||
| @@ -32,9 +42,10 @@ diff -Naupr a/drivers/net/ixp4xx/Kconfig b/drivers/net/ixp4xx/Kconfig | ||||
|  config IXP4XX_MAC | ||||
|  	tristate "IXP4xx MAC support" | ||||
|  	depends on IXP4XX_NPE | ||||
| diff -Naupr a/drivers/net/ixp4xx/Makefile b/drivers/net/ixp4xx/Makefile | ||||
| --- a/drivers/net/ixp4xx/Makefile	2007-01-12 21:54:40.000000000 -0700 | ||||
| +++ b/drivers/net/ixp4xx/Makefile	2007-01-12 23:28:50.000000000 -0700 | ||||
| Index: linux-2.6.20-rc3/drivers/net/ixp4xx/Makefile | ||||
| =================================================================== | ||||
| --- linux-2.6.20-rc3.orig/drivers/net/ixp4xx/Makefile | ||||
| +++ linux-2.6.20-rc3/drivers/net/ixp4xx/Makefile | ||||
| @@ -1,5 +1,6 @@ | ||||
|  obj-$(CONFIG_IXP4XX_QMGR) += ixp4xx_qmgr.o | ||||
|  obj-$(CONFIG_IXP4XX_NPE) += ixp4xx_npe.o | ||||
| @@ -42,9 +53,10 @@ diff -Naupr a/drivers/net/ixp4xx/Makefile b/drivers/net/ixp4xx/Makefile | ||||
|  obj-$(CONFIG_IXP4XX_MAC) += ixp4xx_mac.o | ||||
|  obj-$(CONFIG_IXP4XX_CRYPTO) += ixp4xx_crypto.o | ||||
|   | ||||
| diff -Naupr a/drivers/net/ixp4xx/npe_ucode.c b/drivers/net/ixp4xx/npe_ucode.c | ||||
| --- a/drivers/net/ixp4xx/npe_ucode.c	1969-12-31 17:00:00.000000000 -0700 | ||||
| +++ b/drivers/net/ixp4xx/npe_ucode.c	2007-01-12 23:28:50.000000000 -0700 | ||||
| Index: linux-2.6.20-rc3/drivers/net/ixp4xx/npe_ucode.c | ||||
| =================================================================== | ||||
| --- /dev/null | ||||
| +++ linux-2.6.20-rc3/drivers/net/ixp4xx/npe_ucode.c | ||||
| @@ -0,0 +1,185 @@ | ||||
| +/* | ||||
| + * Provide an NPE platform device for microcode handling | ||||
| @@ -231,9 +243,10 @@ diff -Naupr a/drivers/net/ixp4xx/npe_ucode.c b/drivers/net/ixp4xx/npe_ucode.c | ||||
| + | ||||
| +MODULE_LICENSE("GPL"); | ||||
| +MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); | ||||
| diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c | ||||
| --- a/drivers/net/ixp4xx/ucode_dl.c	2007-01-12 21:54:40.000000000 -0700 | ||||
| +++ b/drivers/net/ixp4xx/ucode_dl.c	2007-01-12 23:28:50.000000000 -0700 | ||||
| Index: linux-2.6.20-rc3/drivers/net/ixp4xx/ucode_dl.c | ||||
| =================================================================== | ||||
| --- linux-2.6.20-rc3.orig/drivers/net/ixp4xx/ucode_dl.c | ||||
| +++ linux-2.6.20-rc3/drivers/net/ixp4xx/ucode_dl.c | ||||
| @@ -16,6 +16,7 @@ | ||||
|  #include <linux/firmware.h> | ||||
|  #include <linux/dma-mapping.h> | ||||
| @@ -255,7 +268,7 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c | ||||
|  #define EOF_BLOCK 0xf | ||||
|  #define IMG_SIZE(image) (((image)->size * sizeof(u32)) + \ | ||||
|  		sizeof(struct dl_image)) | ||||
| @@ -38,21 +45,6 @@ enum blk_type { | ||||
| @@ -38,21 +45,6 @@ | ||||
|  	data, | ||||
|  }; | ||||
|   | ||||
| @@ -277,7 +290,7 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c | ||||
|  struct dl_codeblock { | ||||
|  	u32 npe_addr; | ||||
|  	u32 size; | ||||
| @@ -127,20 +119,33 @@ download_block(struct npe_info *npe, str | ||||
| @@ -127,20 +119,33 @@ | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -313,7 +326,7 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c | ||||
|  	npe = dev_get_drvdata(dev); | ||||
|  	if (npe->loaded && (npe->usage > 0)) { | ||||
|  		printk(KERN_INFO "Cowardly refusing to reload an Image " | ||||
| @@ -267,8 +272,7 @@ static ssize_t ucode_write(struct file * | ||||
| @@ -267,8 +272,7 @@ | ||||
|   | ||||
|  static void npe_firmware_probe(struct device *dev) | ||||
|  { | ||||
| @@ -323,17 +336,18 @@ diff -Naupr a/drivers/net/ixp4xx/ucode_dl.c b/drivers/net/ixp4xx/ucode_dl.c | ||||
|  	const struct firmware *fw_entry; | ||||
|  	struct npe_info *npe = dev_get_drvdata(dev); | ||||
|  	struct dl_image *image; | ||||
| @@ -477,3 +481,4 @@ MODULE_AUTHOR("Christian Hohnstaedt <cho | ||||
| @@ -477,3 +481,4 @@ | ||||
|   | ||||
|  EXPORT_SYMBOL(get_npe_by_id); | ||||
|  EXPORT_SYMBOL(return_npe_dev); | ||||
| +EXPORT_SYMBOL(store_npe_image); | ||||
| diff -Naupr a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4xx/platform.h | ||||
| --- a/include/asm-arm/arch-ixp4xx/platform.h	2007-01-12 21:54:40.000000000 -0700 | ||||
| +++ b/include/asm-arm/arch-ixp4xx/platform.h	2007-01-12 23:28:50.000000000 -0700 | ||||
| @@ -89,6 +89,21 @@ struct ixp4xx_i2c_pins { | ||||
|   | ||||
|  struct sys_timer; | ||||
| Index: linux-2.6.20-rc3/include/asm-arm/arch-ixp4xx/platform.h | ||||
| =================================================================== | ||||
| --- linux-2.6.20-rc3.orig/include/asm-arm/arch-ixp4xx/platform.h | ||||
| +++ linux-2.6.20-rc3/include/asm-arm/arch-ixp4xx/platform.h | ||||
| @@ -86,6 +86,21 @@ | ||||
|  	unsigned long scl_pin; | ||||
|  }; | ||||
|   | ||||
| +struct dl_block { | ||||
| +	u32 type; | ||||
| @@ -353,7 +367,7 @@ diff -Naupr a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4 | ||||
|  struct npe_plat_data { | ||||
|  	const char *name; | ||||
|  	int data_size; | ||||
| @@ -108,6 +123,10 @@ struct mac_plat_info { | ||||
| @@ -105,6 +120,10 @@ | ||||
|   | ||||
|  }; | ||||
|   | ||||
| @@ -362,12 +376,13 @@ diff -Naupr a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4 | ||||
| +}; | ||||
| +  | ||||
|  /* | ||||
|   * Frequency of clock used for primary clocksource | ||||
|   */ | ||||
| diff -Naupr a/include/linux/ixp_npe.h b/include/linux/ixp_npe.h | ||||
| --- a/include/linux/ixp_npe.h	2007-01-12 21:54:40.000000000 -0700 | ||||
| +++ b/include/linux/ixp_npe.h	2007-01-12 23:28:50.000000000 -0700 | ||||
| @@ -99,6 +99,7 @@ extern void npe_reset(struct npe_info *n | ||||
|   * This structure provide a means for the board setup code | ||||
|   * to give information to th pata_ixp4xx driver. It is | ||||
| Index: linux-2.6.20-rc3/include/linux/ixp_npe.h | ||||
| =================================================================== | ||||
| --- linux-2.6.20-rc3.orig/include/linux/ixp_npe.h | ||||
| +++ linux-2.6.20-rc3/include/linux/ixp_npe.h | ||||
| @@ -99,6 +99,7 @@ | ||||
|   | ||||
|  extern struct device *get_npe_by_id(int id); | ||||
|  extern void return_npe_dev(struct device *dev); | ||||
|   | ||||
| @@ -129,8 +129,8 @@ diff -Nur linux-2.6.19.2/arch/arm/mach-ixp4xx/ixdp425-pci.c linux-2.6.19.2-owrt/ | ||||
|  int __init ixdp425_pci_init(void) | ||||
|  { | ||||
|  	if (machine_is_ixdp425() || machine_is_ixcdp1100() || | ||||
| -			machine_is_avila() || machine_is_ixdp465()) | ||||
| +			machine_is_avila() || machine_is_ixdp465() || machine_is_compex()) | ||||
| -			machine_is_ixdp465()) | ||||
| +			machine_is_ixdp465() || machine_is_compex()) | ||||
|  		pci_common_init(&ixdp425_pci); | ||||
|  	return 0; | ||||
|  } | ||||
| @@ -173,8 +173,12 @@ diff -Nur linux-2.6.19.2/arch/arm/mach-ixp4xx/Makefile linux-2.6.19.2-owrt/arch/ | ||||
| diff -Nur linux-2.6.19.2/arch/arm/tools/mach-types linux-2.6.19.2-owrt/arch/arm/tools/mach-types | ||||
| --- linux-2.6.19.2/arch/arm/tools/mach-types	2007-04-10 01:27:55.000000000 +0200 | ||||
| +++ linux-2.6.19.2-owrt/arch/arm/tools/mach-types	2007-04-09 20:22:33.000000000 +0200 | ||||
| @@ -1171,3 +1171,4 @@ | ||||
|  cdcs_quoll		MACH_CDCS_QUOLL		CDCS_QUOLL		1158 | ||||
|  quicksilver		MACH_QUICKSILVER	QUICKSILVER		1159 | ||||
|  uplat926		MACH_UPLAT926		UPLAT926		1160 | ||||
| @@ -1278,7 +1278,7 @@ | ||||
|  smdk6400		MACH_SMDK6400		SMDK6400		1270 | ||||
|  nokia_n800		MACH_NOKIA_N800		NOKIA_N800		1271 | ||||
|  greenphone		MACH_GREENPHONE		GREENPHONE		1272 | ||||
| -compex42x		MACH_COMPEXWP18		COMPEXWP18		1273 | ||||
| +compex			MACH_COMPEX		COMPEX			1273 | ||||
|  xmate			MACH_XMATE		XMATE			1274 | ||||
|  energizer		MACH_ENERGIZER		ENERGIZER		1275 | ||||
|  ime1			MACH_IME1		IME1			1276 | ||||
|   | ||||
| @@ -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> | ||||
|  | ||||
| Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | ||||
| Index: linux-2.6.21-rc1-arm/drivers/i2c/chips/eeprom.c | ||||
| =================================================================== | ||||
| --- linux-2.6.19.orig/drivers/i2c/chips/eeprom.c | ||||
| +++ linux-2.6.19/drivers/i2c/chips/eeprom.c | ||||
| @@ -34,6 +34,8 @@ | ||||
| --- linux-2.6.21-rc1-arm.orig/drivers/i2c/chips/eeprom.c	2007-02-21 02:24:14.000000000 -0800 | ||||
| +++ linux-2.6.21-rc1-arm/drivers/i2c/chips/eeprom.c	2007-02-21 02:25:01.000000000 -0800 | ||||
| @@ -33,6 +33,8 @@ | ||||
|  #include <linux/jiffies.h> | ||||
|  #include <linux/i2c.h> | ||||
|  #include <linux/mutex.h> | ||||
| @@ -22,7 +22,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | ||||
|   | ||||
|  /* Addresses to scan */ | ||||
|  static unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54, | ||||
| @@ -42,26 +44,7 @@ static unsigned short normal_i2c[] = { 0 | ||||
| @@ -41,26 +43,7 @@ | ||||
|  /* Insmod parameters */ | ||||
|  I2C_CLIENT_INSMOD_1(eeprom); | ||||
|   | ||||
| @@ -50,7 +50,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | ||||
|   | ||||
|  static int eeprom_attach_adapter(struct i2c_adapter *adapter); | ||||
|  static int eeprom_detect(struct i2c_adapter *adapter, int address, int kind); | ||||
| @@ -190,6 +173,7 @@ static int eeprom_detect(struct i2c_adap | ||||
| @@ -189,6 +172,7 @@ | ||||
|  	data->valid = 0; | ||||
|  	mutex_init(&data->update_lock); | ||||
|  	data->nature = UNKNOWN; | ||||
| @@ -58,7 +58,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | ||||
|   | ||||
|  	/* Tell the I2C layer a new client has arrived */ | ||||
|  	if ((err = i2c_attach_client(new_client))) | ||||
| @@ -213,6 +197,9 @@ static int eeprom_detect(struct i2c_adap | ||||
| @@ -212,6 +196,9 @@ | ||||
|  	if (err) | ||||
|  		goto exit_detach; | ||||
|   | ||||
| @@ -68,7 +68,7 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | ||||
|  	return 0; | ||||
|   | ||||
|  exit_detach: | ||||
| @@ -238,6 +225,41 @@ static int eeprom_detach_client(struct i | ||||
| @@ -237,6 +224,41 @@ | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -110,10 +110,10 @@ Index: linux-2.6.19/drivers/i2c/chips/eeprom.c | ||||
|  static int __init eeprom_init(void) | ||||
|  { | ||||
|  	return i2c_add_driver(&eeprom_driver); | ||||
| Index: linux-2.6.19/include/linux/eeprom.h | ||||
| Index: linux-2.6.21-rc1-arm/include/linux/eeprom.h | ||||
| =================================================================== | ||||
| --- /dev/null | ||||
| +++ linux-2.6.19/include/linux/eeprom.h | ||||
| --- /dev/null	1970-01-01 00:00:00.000000000 +0000 | ||||
| +++ linux-2.6.21-rc1-arm/include/linux/eeprom.h	2007-02-21 02:25:01.000000000 -0800 | ||||
| @@ -0,0 +1,71 @@ | ||||
| +#ifndef _LINUX_EEPROM_H | ||||
| +#define _LINUX_EEPROM_H | ||||
| @@ -186,11 +186,11 @@ Index: linux-2.6.19/include/linux/eeprom.h | ||||
| +extern int unregister_eeprom_notifier(struct notifier_block *nb); | ||||
| + | ||||
| +#endif /* _LINUX_EEPROM_H */ | ||||
| Index: linux-2.6.19/include/linux/notifier.h | ||||
| Index: linux-2.6.21-rc1-arm/include/linux/notifier.h | ||||
| =================================================================== | ||||
| --- linux-2.6.19.orig/include/linux/notifier.h | ||||
| +++ linux-2.6.19/include/linux/notifier.h | ||||
| @@ -187,5 +187,8 @@ extern int srcu_notifier_call_chain(stru | ||||
| --- linux-2.6.21-rc1-arm.orig/include/linux/notifier.h	2007-02-21 02:24:14.000000000 -0800 | ||||
| +++ linux-2.6.21-rc1-arm/include/linux/notifier.h	2007-02-21 02:25:01.000000000 -0800 | ||||
| @@ -187,5 +187,8 @@ | ||||
|  #define CPU_DOWN_FAILED		0x0006 /* CPU (unsigned)v NOT going down */ | ||||
|  #define CPU_DEAD		0x0007 /* CPU (unsigned)v dead */ | ||||
|   | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Imre Kaloz
					Imre Kaloz