diff options
-rw-r--r-- | package/krb5/patches/patch-src_Makefile_in | 10 | ||||
-rw-r--r-- | target/Config.in | 1 | ||||
-rw-r--r-- | target/foxboard/patches/cris.patch | 130 | ||||
-rw-r--r-- | target/linux/config/Config.in.nls | 5 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/aufs2.patch | 24453 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/cris-initrd.patch | 14 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/cygwin-compat.patch | 66 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/freebsd-compat.patch | 11 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/mtd-root.patch | 62 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/ocf.patch | 23653 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/startup.patch | 20 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/swconfig.patch | 1075 | ||||
-rw-r--r-- | target/linux/patches/2.6.31.5/yaffs2.patch | 15066 |
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) + |