summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/krb5/patches/patch-src_Makefile_in10
-rw-r--r--target/Config.in1
-rw-r--r--target/foxboard/patches/cris.patch130
-rw-r--r--target/linux/config/Config.in.nls5
-rw-r--r--target/linux/patches/2.6.31.5/aufs2.patch24453
-rw-r--r--target/linux/patches/2.6.31.5/cris-initrd.patch14
-rw-r--r--target/linux/patches/2.6.31.5/cygwin-compat.patch66
-rw-r--r--target/linux/patches/2.6.31.5/freebsd-compat.patch11
-rw-r--r--target/linux/patches/2.6.31.5/mtd-root.patch62
-rw-r--r--target/linux/patches/2.6.31.5/ocf.patch23653
-rw-r--r--target/linux/patches/2.6.31.5/startup.patch20
-rw-r--r--target/linux/patches/2.6.31.5/swconfig.patch1075
-rw-r--r--target/linux/patches/2.6.31.5/yaffs2.patch15066
13 files changed, 64504 insertions, 62 deletions
diff --git a/package/krb5/patches/patch-src_Makefile_in b/package/krb5/patches/patch-src_Makefile_in
new file mode 100644
index 000000000..ba9aff1f1
--- /dev/null
+++ b/package/krb5/patches/patch-src_Makefile_in
@@ -0,0 +1,10 @@
+--- krb5-1.7.orig/src/Makefile.in 2009-04-15 22:07:03.000000000 +0200
++++ krb5-1.7/src/Makefile.in 2009-11-11 19:45:39.281234175 +0100
+@@ -13,7 +13,6 @@ SUBDIRS=util include lib kdc kadmin @lda
+ plugins/kdb/db2 \
+ plugins/preauth/pkinit \
+ plugins/preauth/encrypted_challenge \
+- appl tests \
+ config-files gen-manpages
+ BUILDTOP=$(REL)$(C)
+ LOCALINCLUDES = -I$(srcdir)
diff --git a/target/Config.in b/target/Config.in
index 824deba03..d3b443145 100644
--- a/target/Config.in
+++ b/target/Config.in
@@ -147,6 +147,7 @@ config ADK_LINUX_CRIS_FOXBOARD
bool "Foxboard (ETRAX LX100)"
select ADK_foxboard
select ADK_PACKAGE_KMOD_USB_CONTROLLER
+ select ADK_KERNEL_NLS
help
Foxboard support
diff --git a/target/foxboard/patches/cris.patch b/target/foxboard/patches/cris.patch
index 5914a4ab5..277e1757d 100644
--- a/target/foxboard/patches/cris.patch
+++ b/target/foxboard/patches/cris.patch
@@ -1,6 +1,6 @@
-diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/axisflashmap.c linux-2.6.30.5/arch/cris/arch-v10/drivers/axisflashmap.c
---- linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/axisflashmap.c 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/arch-v10/drivers/axisflashmap.c 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/arch-v10/drivers/axisflashmap.c linux-2.6.31.5/arch/cris/arch-v10/drivers/axisflashmap.c
+--- linux-2.6.31.5.orig/arch/cris/arch-v10/drivers/axisflashmap.c 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/arch-v10/drivers/axisflashmap.c 2009-11-09 21:10:52.565914436 +0100
@@ -122,19 +122,19 @@
*/
static struct mtd_partition axis_default_partitions[NUM_DEFAULT_PARTITIONS] = {
@@ -132,9 +132,9 @@ diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/axisflashmap.c linux-2.
return err;
}
-diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/ds1302.c linux-2.6.30.5/arch/cris/arch-v10/drivers/ds1302.c
---- linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/ds1302.c 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/arch-v10/drivers/ds1302.c 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/arch-v10/drivers/ds1302.c linux-2.6.31.5/arch/cris/arch-v10/drivers/ds1302.c
+--- linux-2.6.31.5.orig/arch/cris/arch-v10/drivers/ds1302.c 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/arch-v10/drivers/ds1302.c 2009-11-09 21:10:52.569915505 +0100
@@ -21,6 +21,7 @@
#include <linux/delay.h>
#include <linux/bcd.h>
@@ -167,9 +167,9 @@ diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/ds1302.c linux-2.6.30.5
return 0;
}
-diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/gpio.c linux-2.6.30.5/arch/cris/arch-v10/drivers/gpio.c
---- linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/gpio.c 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/arch-v10/drivers/gpio.c 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/arch-v10/drivers/gpio.c linux-2.6.31.5/arch/cris/arch-v10/drivers/gpio.c
+--- linux-2.6.31.5.orig/arch/cris/arch-v10/drivers/gpio.c 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/arch-v10/drivers/gpio.c 2009-11-09 21:10:52.569915505 +0100
@@ -21,6 +21,7 @@
#include <linux/poll.h>
#include <linux/init.h>
@@ -203,18 +203,18 @@ diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/drivers/gpio.c linux-2.6.30.5/a
/* Clear all leds */
#if defined (CONFIG_ETRAX_CSP0_LEDS) || defined (CONFIG_ETRAX_PA_LEDS) || defined (CONFIG_ETRAX_PB_LEDS)
CRIS_LED_NETWORK_SET(0);
-diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/lib/hw_settings.S linux-2.6.30.5/arch/cris/arch-v10/lib/hw_settings.S
---- linux-2.6.30.5.orig/arch/cris/arch-v10/lib/hw_settings.S 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/arch-v10/lib/hw_settings.S 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/arch-v10/lib/hw_settings.S linux-2.6.31.5/arch/cris/arch-v10/lib/hw_settings.S
+--- linux-2.6.31.5.orig/arch/cris/arch-v10/lib/hw_settings.S 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/arch-v10/lib/hw_settings.S 2009-11-09 21:10:52.622221897 +0100
@@ -60,3 +60,5 @@
.dword R_PORT_PB_SET
.dword PB_SET_VALUE
.dword 0 ; No more register values
+ .ascii "ACME_PART_MAGIC"
+ .dword 0xdeadc0de
-diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/mm/init.c linux-2.6.30.5/arch/cris/arch-v10/mm/init.c
---- linux-2.6.30.5.orig/arch/cris/arch-v10/mm/init.c 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/arch-v10/mm/init.c 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/arch-v10/mm/init.c linux-2.6.31.5/arch/cris/arch-v10/mm/init.c
+--- linux-2.6.31.5.orig/arch/cris/arch-v10/mm/init.c 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/arch-v10/mm/init.c 2009-11-09 21:10:52.669914289 +0100
@@ -184,6 +184,9 @@
free_area_init_node(0, zones_size, PAGE_OFFSET >> PAGE_SHIFT, 0);
@@ -225,9 +225,9 @@ diff -Nur linux-2.6.30.5.orig/arch/cris/arch-v10/mm/init.c linux-2.6.30.5/arch/c
/* Initialize remaps of some I/O-ports. It is important that this
* is called before any driver is initialized.
-diff -Nur linux-2.6.30.5.orig/arch/cris/boot/compressed/Makefile linux-2.6.30.5/arch/cris/boot/compressed/Makefile
---- linux-2.6.30.5.orig/arch/cris/boot/compressed/Makefile 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/boot/compressed/Makefile 2009-08-23 13:22:41.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/boot/compressed/Makefile linux-2.6.31.5/arch/cris/boot/compressed/Makefile
+--- linux-2.6.31.5.orig/arch/cris/boot/compressed/Makefile 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/boot/compressed/Makefile 2009-11-09 21:10:52.673930723 +0100
@@ -18,7 +18,7 @@
OBJECTS-$(CONFIG_ETRAX_ARCH_V32) = $(obj)/head_v32.o
OBJECTS-$(CONFIG_ETRAX_ARCH_V10) = $(obj)/head_v10.o
@@ -237,9 +237,9 @@ diff -Nur linux-2.6.30.5.orig/arch/cris/boot/compressed/Makefile linux-2.6.30.5/
quiet_cmd_image = BUILD $@
cmd_image = cat $(obj)/decompress.bin $(obj)/piggy.gz > $@
-diff -Nur linux-2.6.30.5.orig/arch/cris/boot/compressed/misc.c linux-2.6.30.5/arch/cris/boot/compressed/misc.c
---- linux-2.6.30.5.orig/arch/cris/boot/compressed/misc.c 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/boot/compressed/misc.c 2009-08-23 12:56:32.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/boot/compressed/misc.c linux-2.6.31.5/arch/cris/boot/compressed/misc.c
+--- linux-2.6.31.5.orig/arch/cris/boot/compressed/misc.c 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/boot/compressed/misc.c 2009-11-09 21:10:52.677915030 +0100
@@ -106,7 +106,7 @@
static void flush_window(void);
@@ -290,9 +290,9 @@ diff -Nur linux-2.6.30.5.orig/arch/cris/boot/compressed/misc.c linux-2.6.30.5/ar
- puts("Done. Now booting the kernel\n");
+ putstr("Done. Now booting the kernel\n");
}
-diff -Nur linux-2.6.30.5.orig/arch/cris/boot/Makefile linux-2.6.30.5/arch/cris/boot/Makefile
---- linux-2.6.30.5.orig/arch/cris/boot/Makefile 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/boot/Makefile 2009-08-23 13:23:10.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/boot/Makefile linux-2.6.31.5/arch/cris/boot/Makefile
+--- linux-2.6.31.5.orig/arch/cris/boot/Makefile 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/boot/Makefile 2009-11-09 21:10:52.729928085 +0100
@@ -5,7 +5,7 @@
objcopyflags-$(CONFIG_ETRAX_ARCH_V10) += -R .note -R .comment
objcopyflags-$(CONFIG_ETRAX_ARCH_V32) += --remove-section=.bss
@@ -310,9 +310,9 @@ diff -Nur linux-2.6.30.5.orig/arch/cris/boot/Makefile linux-2.6.30.5/arch/cris/b
$(obj)/zImage: $(obj)/compressed/vmlinux
@cp $< $@
-diff -Nur linux-2.6.30.5.orig/arch/cris/Kconfig linux-2.6.30.5/arch/cris/Kconfig
---- linux-2.6.30.5.orig/arch/cris/Kconfig 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/Kconfig 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/arch/cris/Kconfig linux-2.6.31.5/arch/cris/Kconfig
+--- linux-2.6.31.5.orig/arch/cris/Kconfig 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/Kconfig 2009-11-09 21:10:52.761915122 +0100
@@ -168,6 +168,12 @@
help
Size of DRAM (decimal in MB) typically 2, 8 or 16.
@@ -347,27 +347,25 @@ diff -Nur linux-2.6.30.5.orig/arch/cris/Kconfig linux-2.6.30.5/arch/cris/Kconfig
source "drivers/net/Kconfig"
source "drivers/i2c/Kconfig"
-diff -Nur linux-2.6.30.5.orig/arch/cris/Makefile linux-2.6.30.5/arch/cris/Makefile
---- linux-2.6.30.5.orig/arch/cris/Makefile 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/arch/cris/Makefile 2009-08-23 13:23:50.000000000 +0200
-@@ -40,12 +40,12 @@
+diff -Nur linux-2.6.31.5.orig/arch/cris/Makefile linux-2.6.31.5/arch/cris/Makefile
+--- linux-2.6.31.5.orig/arch/cris/Makefile 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/arch/cris/Makefile 2009-11-09 21:12:38.534695929 +0100
+@@ -40,10 +40,10 @@
LD = $(CROSS_COMPILE)ld -mcrislinux
-OBJCOPYFLAGS := -O binary -R .note -R .comment -S
+OBJCOPYFLAGS := -O binary -R .bss -R .note -R .note.gnu.build-id -R .comment -S
- CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
-
KBUILD_AFLAGS += -mlinux -march=$(arch-y) $(inc)
-KBUILD_CFLAGS += -mlinux -march=$(arch-y) -pipe $(inc)
+KBUILD_CFLAGS += -mlinux -march=$(arch-y) -pipe -fno-peephole2 $(inc)
KBUILD_CPPFLAGS += $(inc)
ifdef CONFIG_FRAME_POINTER
-diff -Nur linux-2.6.30.5.orig/drivers/net/cris/eth_v10.c linux-2.6.30.5/drivers/net/cris/eth_v10.c
---- linux-2.6.30.5.orig/drivers/net/cris/eth_v10.c 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/drivers/net/cris/eth_v10.c 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/drivers/net/cris/eth_v10.c linux-2.6.31.5/drivers/net/cris/eth_v10.c
+--- linux-2.6.31.5.orig/drivers/net/cris/eth_v10.c 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/drivers/net/cris/eth_v10.c 2009-11-09 21:10:52.857914224 +0100
@@ -1711,7 +1711,7 @@
static void
e100_netpoll(struct net_device* netdev)
@@ -377,10 +375,18 @@ diff -Nur linux-2.6.30.5.orig/drivers/net/cris/eth_v10.c linux-2.6.30.5/drivers/
}
#endif
-diff -Nur linux-2.6.30.5.orig/drivers/serial/crisv10.c linux-2.6.30.5/drivers/serial/crisv10.c
---- linux-2.6.30.5.orig/drivers/serial/crisv10.c 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/drivers/serial/crisv10.c 2009-08-23 12:37:27.000000000 +0200
-@@ -26,6 +26,7 @@
+diff -Nur linux-2.6.31.5.orig/drivers/serial/crisv10.c linux-2.6.31.5/drivers/serial/crisv10.c
+--- linux-2.6.31.5.orig/drivers/serial/crisv10.c 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/drivers/serial/crisv10.c 2009-11-10 07:59:31.341915786 +0100
+@@ -13,6 +13,7 @@
+ #include <linux/errno.h>
+ #include <linux/signal.h>
+ #include <linux/sched.h>
++#include <linux/smp_lock.h>
+ #include <linux/timer.h>
+ #include <linux/interrupt.h>
+ #include <linux/tty.h>
+@@ -26,6 +27,7 @@
#include <linux/kernel.h>
#include <linux/mutex.h>
#include <linux/bitops.h>
@@ -388,7 +394,7 @@ diff -Nur linux-2.6.30.5.orig/drivers/serial/crisv10.c linux-2.6.30.5/drivers/se
#include <linux/seq_file.h>
#include <linux/delay.h>
#include <linux/module.h>
-@@ -4414,6 +4415,7 @@
+@@ -4414,6 +4416,7 @@
#endif
};
@@ -396,7 +402,7 @@ diff -Nur linux-2.6.30.5.orig/drivers/serial/crisv10.c linux-2.6.30.5/drivers/se
static int __init rs_init(void)
{
int i;
-@@ -4547,6 +4549,24 @@
+@@ -4547,6 +4550,24 @@
#endif
#endif /* CONFIG_SVINTO_SIM */
@@ -421,9 +427,9 @@ diff -Nur linux-2.6.30.5.orig/drivers/serial/crisv10.c linux-2.6.30.5/drivers/se
return 0;
}
-diff -Nur linux-2.6.30.5.orig/drivers/usb/host/hc-cris-dbg.h linux-2.6.30.5/drivers/usb/host/hc-cris-dbg.h
---- linux-2.6.30.5.orig/drivers/usb/host/hc-cris-dbg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5/drivers/usb/host/hc-cris-dbg.h 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/drivers/usb/host/hc-cris-dbg.h linux-2.6.31.5/drivers/usb/host/hc-cris-dbg.h
+--- linux-2.6.31.5.orig/drivers/usb/host/hc-cris-dbg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31.5/drivers/usb/host/hc-cris-dbg.h 2009-11-09 21:10:52.977927276 +0100
@@ -0,0 +1,146 @@
+
+/* macros for debug output */
@@ -571,9 +577,9 @@ diff -Nur linux-2.6.30.5.orig/drivers/usb/host/hc-cris-dbg.h linux-2.6.30.5/driv
+ }; \
+ s; \
+ })
-diff -Nur linux-2.6.30.5.orig/drivers/usb/host/hc-crisv10.c linux-2.6.30.5/drivers/usb/host/hc-crisv10.c
---- linux-2.6.30.5.orig/drivers/usb/host/hc-crisv10.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5/drivers/usb/host/hc-crisv10.c 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/drivers/usb/host/hc-crisv10.c linux-2.6.31.5/drivers/usb/host/hc-crisv10.c
+--- linux-2.6.31.5.orig/drivers/usb/host/hc-crisv10.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31.5/drivers/usb/host/hc-crisv10.c 2009-11-09 21:10:53.049913537 +0100
@@ -0,0 +1,4801 @@
+/*
+ *
@@ -5376,9 +5382,9 @@ diff -Nur linux-2.6.30.5.orig/drivers/usb/host/hc-crisv10.c linux-2.6.30.5/drive
+/* Module hooks */
+module_init(module_hcd_init);
+module_exit(module_hcd_exit);
-diff -Nur linux-2.6.30.5.orig/drivers/usb/host/hc-crisv10.h linux-2.6.30.5/drivers/usb/host/hc-crisv10.h
---- linux-2.6.30.5.orig/drivers/usb/host/hc-crisv10.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.30.5/drivers/usb/host/hc-crisv10.h 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/drivers/usb/host/hc-crisv10.h linux-2.6.31.5/drivers/usb/host/hc-crisv10.h
+--- linux-2.6.31.5.orig/drivers/usb/host/hc-crisv10.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31.5/drivers/usb/host/hc-crisv10.h 2009-11-09 21:10:53.061914787 +0100
@@ -0,0 +1,331 @@
+#ifndef __LINUX_ETRAX_USB_H
+#define __LINUX_ETRAX_USB_H
@@ -5711,18 +5717,18 @@ diff -Nur linux-2.6.30.5.orig/drivers/usb/host/hc-crisv10.h linux-2.6.30.5/drive
+#define USB_SB_command__full__yes 1
+
+#endif
-diff -Nur linux-2.6.30.5.orig/drivers/usb/host/Makefile linux-2.6.30.5/drivers/usb/host/Makefile
---- linux-2.6.30.5.orig/drivers/usb/host/Makefile 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/drivers/usb/host/Makefile 2009-08-23 12:37:27.000000000 +0200
-@@ -29,3 +29,4 @@
+diff -Nur linux-2.6.31.5.orig/drivers/usb/host/Makefile linux-2.6.31.5/drivers/usb/host/Makefile
+--- linux-2.6.31.5.orig/drivers/usb/host/Makefile 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/drivers/usb/host/Makefile 2009-11-09 21:10:53.090776289 +0100
+@@ -31,3 +31,4 @@
obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o
obj-$(CONFIG_USB_ISP1760_HCD) += isp1760.o
obj-$(CONFIG_USB_HWA_HCD) += hwa-hc.o
+obj-$(CONFIG_ETRAX_USB_HOST) += hc-crisv10.o
-diff -Nur linux-2.6.30.5.orig/drivers/usb/Makefile linux-2.6.30.5/drivers/usb/Makefile
---- linux-2.6.30.5.orig/drivers/usb/Makefile 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/drivers/usb/Makefile 2009-08-23 12:37:27.000000000 +0200
-@@ -19,6 +19,7 @@
+diff -Nur linux-2.6.31.5.orig/drivers/usb/Makefile linux-2.6.31.5/drivers/usb/Makefile
+--- linux-2.6.31.5.orig/drivers/usb/Makefile 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/drivers/usb/Makefile 2009-11-09 21:10:53.111922280 +0100
+@@ -20,6 +20,7 @@
obj-$(CONFIG_USB_R8A66597_HCD) += host/
obj-$(CONFIG_USB_HWA_HCD) += host/
obj-$(CONFIG_USB_ISP1760_HCD) += host/
@@ -5730,9 +5736,9 @@ diff -Nur linux-2.6.30.5.orig/drivers/usb/Makefile linux-2.6.30.5/drivers/usb/Ma
obj-$(CONFIG_USB_C67X00_HCD) += c67x00/
-diff -Nur linux-2.6.30.5.orig/lib/klist.c linux-2.6.30.5/lib/klist.c
---- linux-2.6.30.5.orig/lib/klist.c 2009-08-16 23:19:38.000000000 +0200
-+++ linux-2.6.30.5/lib/klist.c 2009-08-23 12:37:27.000000000 +0200
+diff -Nur linux-2.6.31.5.orig/lib/klist.c linux-2.6.31.5/lib/klist.c
+--- linux-2.6.31.5.orig/lib/klist.c 2009-10-23 00:57:56.000000000 +0200
++++ linux-2.6.31.5/lib/klist.c 2009-11-09 21:10:53.142378957 +0100
@@ -60,7 +60,7 @@
{
knode->n_klist = klist;
diff --git a/target/linux/config/Config.in.nls b/target/linux/config/Config.in.nls
index 657103f74..6933bad20 100644
--- a/target/linux/config/Config.in.nls
+++ b/target/linux/config/Config.in.nls
@@ -1,5 +1,9 @@
menu "Native Language support"
+config ADK_KERNEL_NLS
+ boolean
+ default n
+
config ADK_KERNEL_NLS_DEFAULT
string
default "iso8859-1"
@@ -7,6 +11,7 @@ config ADK_KERNEL_NLS_DEFAULT
config ADK_KPACKAGE_KMOD_NLS
prompt "kmod-nls.......................... Base native language support"
tristate
+ depends on !ADK_KERNEL_NLS
default n
help
The base Native Language Support. A number of filesystems
diff --git a/target/linux/patches/2.6.31.5/aufs2.patch b/target/linux/patches/2.6.31.5/aufs2.patch
new file mode 100644
index 000000000..7a6d3bac6
--- /dev/null
+++ b/target/linux/patches/2.6.31.5/aufs2.patch
@@ -0,0 +1,24453 @@
+diff -Nur linux-2.6.31.4.orig/Documentation/ABI/testing/debugfs-aufs linux-2.6.31.4/Documentation/ABI/testing/debugfs-aufs
+--- linux-2.6.31.4.orig/Documentation/ABI/testing/debugfs-aufs 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31.4/Documentation/ABI/testing/debugfs-aufs 2009-10-18 11:26:01.000000000 +0200
+@@ -0,0 +1,40 @@
++What: /debug/aufs/si_<id>/
++Date: March 2009
++Contact: J. R. Okajima <hooanon05@yahoo.co.jp>
++Description:
++ Under /debug/aufs, a directory named si_<id> is created
++ per aufs mount, where <id> is a unique id generated
++ internally.
++
++What: /debug/aufs/si_<id>/xib
++Date: March 2009
++Contact: J. R. Okajima <hooanon05@yahoo.co.jp>
++Description:
++ It shows the consumed blocks by xib (External Inode Number
++ Bitmap), its block size and file size.
++ When the aufs mount option 'noxino' is specified, it
++ will be empty. About XINO files, see
++ Documentation/filesystems/aufs/aufs.5 in detail.
++
++What: /debug/aufs/si_<id>/xino0, xino1 ... xinoN
++Date: March 2009
++Contact: J. R. Okajima <hooanon05@yahoo.co.jp>
++Description:
++ It shows the consumed blocks by xino (External Inode Number
++ Translation Table), its link count, block size and file
++ size.
++ When the aufs mount option 'noxino' is specified, it
++ will be empty. About XINO files, see
++ Documentation/filesystems/aufs/aufs.5 in detail.
++
++What: /debug/aufs/si_<id>/xigen
++Date: March 2009
++Contact: J. R. Okajima <hooanon05@yahoo.co.jp>
++Description:
++ It shows the consumed blocks by xigen (External Inode
++ Generation Table), its block size and file size.
++ If CONFIG_AUFS_EXPORT is disabled, this entry will not
++ be created.
++ When the aufs mount option 'noxino' is specified, it
++ will be empty. About XINO files, see
++ Documentation/filesystems/aufs/aufs.5 in detail.
+diff -Nur linux-2.6.31.4.orig/Documentation/ABI/testing/sysfs-aufs linux-2.6.31.4/Documentation/ABI/testing/sysfs-aufs
+--- linux-2.6.31.4.orig/Documentation/ABI/testing/sysfs-aufs 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31.4/Documentation/ABI/testing/sysfs-aufs 2009-10-18 11:26:01.000000000 +0200
+@@ -0,0 +1,25 @@
++What: /sys/fs/aufs/si_<id>/
++Date: March 2009
++Contact: J. R. Okajima <hooanon05@yahoo.co.jp>
++Description:
++ Under /sys/fs/aufs, a directory named si_<id> is created
++ per aufs mount, where <id> is a unique id generated
++ internally.
++
++What: /sys/fs/aufs/si_<id>/br0, br1 ... brN
++Date: March 2009
++Contact: J. R. Okajima <hooanon05@yahoo.co.jp>
++Description:
++ It shows the abolute path of a member directory (which
++ is called branch) in aufs, and its permission.
++
++What: /sys/fs/aufs/si_<id>/xi_path
++Date: March 2009
++Contact: J. R. Okajima <hooanon05@yahoo.co.jp>
++Description:
++ It shows the abolute path of XINO (External Inode Number
++ Bitmap, Translation Table and Generation Table) file
++ even if it is the default path.
++ When the aufs mount option 'noxino' is specified, it
++ will be empty. About XINO files, see
++ Documentation/filesystems/aufs/aufs.5 in detail.
+diff -Nur linux-2.6.31.4.orig/fs/aufs/aufs.h linux-2.6.31.4/fs/aufs/aufs.h
+--- linux-2.6.31.4.orig/fs/aufs/aufs.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31.4/fs/aufs/aufs.h 2009-10-18 11:26:01.000000000 +0200
+@@ -0,0 +1,51 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro R. Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * all header files
++ */
++
++#ifndef __AUFS_H__
++#define __AUFS_H__
++
++#ifdef __KERNEL__
++
++#include "debug.h"
++
++#include "branch.h"
++#include "cpup.h"
++#include "dcsub.h"
++#include "dbgaufs.h"
++#include "dentry.h"
++#include "dir.h"
++#include "file.h"
++#include "fstype.h"
++#include "inode.h"
++#include "loop.h"
++#include "module.h"
++#include "opts.h"
++#include "rwsem.h"
++#include "spl.h"
++#include "super.h"
++#include "sysaufs.h"
++#include "vfsub.h"
++#include "whout.h"
++#include "wkq.h"
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_H__ */
+diff -Nur linux-2.6.31.4.orig/fs/aufs/branch.c linux-2.6.31.4/fs/aufs/branch.c
+--- linux-2.6.31.4.orig/fs/aufs/branch.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31.4/fs/aufs/branch.c 2009-10-18 11:26:01.000000000 +0200
+@@ -0,0 +1,974 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro R. Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * branch management
++ */
++
++#include <linux/file.h>
++#include "aufs.h"
++
++/*
++ * free a single branch
++ */
++static void au_br_do_free(struct au_branch *br)
++{
++ int i;
++ struct au_wbr *wbr;
++
++ if (br->br_xino.xi_file)
++ fput(br->br_xino.xi_file);
++ mutex_destroy(&br->br_xino.xi_nondir_mtx);
++
++ AuDebugOn(atomic_read(&br->br_count));
++
++ wbr = br->br_wbr;
++ if (wbr) {
++ for (i = 0; i < AuBrWh_Last; i++)
++ dput(wbr->wbr_wh[i]);
++ AuDebugOn(atomic_read(&wbr->wbr_wh_running));
++ AuRwDestroy(&wbr->wbr_wh_rwsem);
++ }
++
++ /* some filesystems acquire extra lock */
++ lockdep_off();
++ mntput(br->br_mnt);
++ lockdep_on();
++
++ kfree(wbr);
++ kfree(br);
++}
++
++/*
++ * frees all branches
++ */
++void au_br_free(struct au_sbinfo *sbinfo)
++{
++ aufs_bindex_t bmax;
++ struct au_branch **br;
++
++ AuRwMustWriteLock(&sbinfo->si_rwsem);
++
++ bmax = sbinfo->si_bend + 1;
++ br = sbinfo->si_branch;
++ while (bmax--)
++ au_br_do_free(*br++);
++}
++
++/*
++ * find the index of a branch which is specified by @br_id.
++ */
++int au_br_index(struct super_block *sb, aufs_bindex_t br_id)
++{
++ aufs_bindex_t bindex, bend;
++
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++)
++ if (au_sbr_id(sb, bindex) == br_id)
++ return bindex;
++ return -1;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * add a branch
++ */
++
++static int test_overlap(struct super_block *sb, struct dentry *h_d1,
++ struct dentry *h_d2)
++{
++ if (unlikely(h_d1 == h_d2))
++ return 1;
++ return !!au_test_subdir(h_d1, h_d2)
++ || !!au_test_subdir(h_d2, h_d1)
++ || au_test_loopback_overlap(sb, h_d1, h_d2)
++ || au_test_loopback_overlap(sb, h_d2, h_d1);
++}
++
++/*
++ * returns a newly allocated branch. @new_nbranch is a number of branches
++ * after adding a branch.
++ */
++static struct au_branch *au_br_alloc(struct super_block *sb, int new_nbranch,
++ int perm)
++{
++ struct au_branch *add_branch;
++ struct dentry *root;
++
++ root = sb->s_root;
++ add_branch = kmalloc(sizeof(*add_branch), GFP_NOFS);
++ if (unlikely(!add_branch))
++ goto out;
++
++ add_branch->br_wbr = NULL;
++ if (au_br_writable(perm)) {
++ /* may be freed separately at changing the branch permission */
++ add_branch->br_wbr = kmalloc(sizeof(*add_branch->br_wbr),
++ GFP_NOFS);
++ if (unlikely(!add_branch->br_wbr))
++ goto out_br;
++ }
++
++ if (unlikely(au_sbr_realloc(au_sbi(sb), new_nbranch)
++ || au_di_realloc(au_di(root), new_nbranch)
++ || au_ii_realloc(au_ii(root->d_inode), new_nbranch)))
++ goto out_wbr;
++ return add_branch; /* success */
++
++ out_wbr:
++ kfree(add_branch->br_wbr);
++ out_br:
++ kfree(add_branch);
++ out:
++ return ERR_PTR(-ENOMEM);
++}
++
++/*
++ * test if the branch permission is legal or not.
++ */
++static int test_br(struct inode *inode, int brperm, char *path)
++{
++ int err;
++
++ err = 0;
++ if (unlikely(au_br_writable(brperm) && IS_RDONLY(inode))) {
++ AuErr("write permission for readonly mount or inode, %s\n",
++ path);
++ err = -EINVAL;
++ }
++
++ return err;
++}
++
++/*
++ * returns:
++ * 0: success, the caller will add it
++ * plus: success, it is already unified, the caller should ignore it
++ * minus: error
++ */
++static int test_add(struct super_block *sb, struct au_opt_add *add, int remount)
++{
++ int err;
++ aufs_bindex_t bend, bindex;
++ struct dentry *root;
++ struct inode *inode, *h_inode;
++
++ root = sb->s_root;
++ bend = au_sbend(sb);
++ if (unlikely(bend >= 0
++ && au_find_dbindex(root, add->path.dentry) >= 0)) {
++ err = 1;
++ if (!remount) {
++ err = -EINVAL;
++ AuErr("%s duplicated\n", add->pathname);
++ }
++ goto out;
++ }
++
++ err = -ENOSPC; /* -E2BIG; */
++ if (unlikely(AUFS_BRANCH_MAX <= add->bindex
++ || AUFS_BRANCH_MAX - 1 <= bend)) {
++ AuErr("number of branches exceeded %s\n", add->pathname);
++ goto out;
++ }
++
++ err = -EDOM;
++ if (unlikely(add->bindex < 0 || bend + 1 < add->bindex)) {
++ AuErr("bad index %d\n", add->bindex);
++ goto out;
++ }
++
++ inode = add->path.dentry->d_inode;
++ err = -ENOENT;
++ if (unlikely(!inode->i_nlink)) {
++ AuErr("no existence %s\n", add->pathname);
++ goto out;
++ }
++
++ err = -EINVAL;
++ if (unlikely(inode->i_sb == sb)) {
++ AuErr("%s must be outside\n", add->pathname);
++ goto out;
++ }
++
++ if (unlikely(au_test_fs_unsuppoted(inode->i_sb))) {
++ AuErr("unsupported filesystem, %s (%s)\n",
++ add->pathname, au_sbtype(inode->i_sb));
++ goto out;
++ }
++
++ err = test_br(add->path.dentry->d_inode, add->perm, add->pathname);
++ if (unlikely(err))
++ goto out;
++
++ if (bend < 0)
++ return 0; /* success */
++
++ err = -EINVAL;
++ for (bindex = 0; bindex <= bend; bindex++)
++ if (unlikely(test_overlap(sb, add->path.dentry,
++ au_h_dptr(root, bindex)))) {
++ AuErr("%s is overlapped\n", add->pathname);
++ goto out;
++ }
++
++ err = 0;
++ if (au_opt_test(au_mntflags(sb), WARN_PERM)) {
++ h_inode = au_h_dptr(root, 0)->d_inode;
++ if ((h_inode->i_mode & S_IALLUGO) != (inode->i_mode & S_IALLUGO)
++ || h_inode->i_uid != inode->i_uid
++ || h_inode->i_gid != inode->i_gid)
++ AuWarn("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n",
++ add->pathname,
++ inode->i_uid, inode->i_gid,
++ (inode->i_mode & S_IALLUGO),
++ h_inode->i_uid, h_inode->i_gid,
++ (h_inode->i_mode & S_IALLUGO));
++ }
++
++ out:
++ return err;
++}
++
++/*
++ * initialize or clean the whiteouts for an adding branch
++ */
++static int au_br_init_wh(struct super_block *sb, struct au_branch *br,
++ int new_perm, struct dentry *h_root)
++{
++ int err, old_perm;
++ aufs_bindex_t bindex;
++ struct mutex *h_mtx;
++ struct au_wbr *wbr;
++ struct au_hinode *hdir;
++
++ wbr = br->br_wbr;
++ old_perm = br->br_perm;
++ br->br_perm = new_perm;
++ hdir = NULL;
++ h_mtx = NULL;
++ bindex = au_br_index(sb, br->br_id);
++ if (0 <= bindex) {
++ hdir = au_hi(sb->s_root->d_inode, bindex);
++ au_hin_imtx_lock_nested(hdir, AuLsc_I_PARENT);
++ } else {
++ h_mtx = &h_root->d_inode->i_mutex;
++ mutex_lock_nested(h_mtx, AuLsc_I_PARENT);
++ }
++ if (!wbr)
++ err = au_wh_init(h_root, br, sb);
++ else {
++ wbr_wh_write_lock(wbr);
++ err = au_wh_init(h_root, br, sb);
++ wbr_wh_write_unlock(wbr);
++ }
++ if (hdir)
++ au_hin_imtx_unlock(hdir);
++ else
++ mutex_unlock(h_mtx);
++ br->br_perm = old_perm;
++
++ if (!err && wbr && !au_br_writable(new_perm)) {
++ kfree(wbr);
++ br->br_wbr = NULL;
++ }
++
++ return err;
++}
++
++static int au_wbr_init(struct au_branch *br, struct super_block *sb,
++ int perm, struct path *path)
++{
++ int err;
++ struct au_wbr *wbr;
++
++ wbr = br->br_wbr;
++ au_rw_init(&wbr->wbr_wh_rwsem);
++ memset(wbr->wbr_wh, 0, sizeof(wbr->wbr_wh));
++ atomic_set(&wbr->wbr_wh_running, 0);
++ wbr->wbr_bytes = 0;
++
++ err = au_br_init_wh(sb, br, perm, path->dentry);
++
++ return err;
++}
++
++/* intialize a new branch */
++static int au_br_init(struct au_branch *br, struct super_block *sb,
++ struct au_opt_add *add)
++{
++ int err;
++
++ err = 0;
++ memset(&br->br_xino, 0, sizeof(br->br_xino));
++ mutex_init(&br->br_xino.xi_nondir_mtx);
++ br->br_perm = add->perm;
++ br->br_mnt = add->path.mnt; /* set first, mntget() later */
++ atomic_set(&br->br_count, 0);
++ br->br_xino_upper = AUFS_XINO_TRUNC_INIT;
++ atomic_set(&br->br_xino_running, 0);
++ br->br_id = au_new_br_id(sb);
++
++ if (au_br_writable(add->perm)) {
++ err = au_wbr_init(br, sb, add->perm, &add->path);
++ if (unlikely(err))
++ goto out;
++ }
++
++ if (au_opt_test(au_mntflags(sb), XINO)) {
++ err = au_xino_br(sb, br, add->path.dentry->d_inode->i_ino,
++ au_sbr(sb, 0)->br_xino.xi_file, /*do_test*/1);
++ if (unlikely(err)) {
++ AuDebugOn(br->br_xino.xi_file);
++ goto out;
++ }
++ }
++
++ sysaufs_br_init(br);
++ mntget(add->path.mnt);
++
++ out:
++ return err;
++}
++
++static void au_br_do_add_brp(struct au_sbinfo *sbinfo, aufs_bindex_t bindex,
++ struct au_branch *br, aufs_bindex_t bend,
++ aufs_bindex_t amount)
++{
++ struct au_branch **brp;
++
++ AuRwMustWriteLock(&sbinfo->si_rwsem);
++
++ brp = sbinfo->si_branch + bindex;
++ memmove(brp + 1, brp, sizeof(*brp) * amount);
++ *brp = br;
++ sbinfo->si_bend++;
++ if (unlikely(bend < 0))
++ sbinfo->si_bend = 0;
++}
++
++static void au_br_do_add_hdp(struct au_dinfo *dinfo, aufs_bindex_t bindex,
++ aufs_bindex_t bend, aufs_bindex_t amount)
++{
++ struct au_hdentry *hdp;
++
++ AuRwMustWriteLock(&dinfo->di_rwsem);
++
++ hdp = dinfo->di_hdentry + bindex;
++ memmove(hdp + 1, hdp, sizeof(*hdp) * amount);
++ au_h_dentry_init(hdp);
++ dinfo->di_bend++;
++ if (unlikely(bend < 0))
++ dinfo->di_bstart = 0;
++}
++
++static void au_br_do_add_hip(struct au_iinfo *iinfo, aufs_bindex_t bindex,
++ aufs_bindex_t bend, aufs_bindex_t amount)
++{
++ struct au_hinode *hip;
++
++ AuRwMustWriteLock(&iinfo->ii_rwsem);
++
++ hip = iinfo->ii_hinode + bindex;
++ memmove(hip + 1, hip, sizeof(*hip) * amount);
++ hip->hi_inode = NULL;
++ au_hin_init(hip, NULL);
++ iinfo->ii_bend++;
++ if (unlikely(bend < 0))
++ iinfo->ii_bstart = 0;
++}
++
++static void au_br_do_add(struct super_block *sb, struct dentry *h_dentry,
++ struct au_branch *br, aufs_bindex_t bindex)
++{
++ struct dentry *root;
++ struct inode *root_inode;
++ aufs_bindex_t bend, amount;
++
++ root = sb->s_root;
++ root_inode = root->d_inode;
++ au_plink_block_maintain(sb);
++ bend = au_sbend(sb);
++ amount = bend + 1 - bindex;
++ au_br_do_add_brp(au_sbi(sb), bindex, br, bend, amount);
++ au_br_do_add_hdp(au_di(root), bindex, bend, amount);
++ au_br_do_add_hip(au_ii(root_inode), bindex, bend, amount);
++ au_set_h_dptr(root, bindex, dget(h_dentry));
++ au_set_h_iptr(root_inode, bindex, au_igrab(h_dentry->d_inode),
++ /*flags*/0);
++}
++
++int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount)
++{
++ int err;
++ unsigned long long maxb;
++ aufs_bindex_t bend, add_bindex;
++ struct dentry *root, *h_dentry;
++ struct inode *root_inode;
++ struct au_branch *add_branch;
++
++ root = sb->s_root;
++ root_inode = root->d_inode;
++ IMustLock(root_inode);
++ err = test_add(sb, add, remount);
++ if (unlikely(err < 0))
++ goto out;
++ if (err) {
++ err = 0;
++ goto out; /* success */
++ }
++
++ bend = au_sbend(sb);
++ add_branch = au_br_alloc(sb, bend + 2, add->perm);
++ err = PTR_ERR(add_branch);
++ if (IS_ERR(add_branch))
++ goto out;
++
++ err = au_br_init(add_branch, sb, add);
++ if (unlikely(err)) {
++ au_br_do_free(add_branch);
++ goto out;
++ }
++
++ add_bindex = add->bindex;
++ h_dentry = add->path.dentry;
++ if (!remount)
++ au_br_do_add(sb, h_dentry, add_branch, add_bindex);
++ else {
++ sysaufs_brs_del(sb, add_bindex);
++ au_br_do_add(sb, h_dentry, add_branch, add_bindex);
++ sysaufs_brs_add(sb, add_bindex);
++ }
++
++ if (!add_bindex)
+