--- /dev/null
+From c6ae063aaf3786b9db7f19a90bf4ed8aaebb7f90 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 3 May 2012 09:02:47 +0000
+Subject: frv: Use core allocator for task_struct
+
+From: Thomas Gleixner <tglx@linutronix.de>
+
+commit c6ae063aaf3786b9db7f19a90bf4ed8aaebb7f90 upstream.
+
+There is no point having a copy of the core allocator.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Acked-by: David Howells <dhowells@redhat.com>
+Link: http://lkml.kernel.org/r/20120503085033.967140188@linutronix.de
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/frv/include/asm/thread_info.h | 2 --
+ arch/frv/kernel/process.c | 10 ----------
+ 2 files changed, 12 deletions(-)
+
+--- a/arch/frv/include/asm/thread_info.h
++++ b/arch/frv/include/asm/thread_info.h
+@@ -21,8 +21,6 @@
+
+ #define THREAD_SIZE 8192
+
+-#define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
+-
+ /*
+ * low level task data that entry.S needs immediate access to
+ * - this struct should fit entirely inside of one cache line
+--- a/arch/frv/kernel/process.c
++++ b/arch/frv/kernel/process.c
+@@ -44,16 +44,6 @@ asmlinkage void ret_from_fork(void);
+ void (*pm_power_off)(void);
+ EXPORT_SYMBOL(pm_power_off);
+
+-struct task_struct *alloc_task_struct_node(int node)
+-{
+- return kmalloc_node(sizeof(task_struct), GFP_KERNEL, node);
+-}
+-
+-void free_task_struct(struct task_struct *p)
+-{
+- kfree(p);
+-}
+-
+ static void core_sleep_idle(void)
+ {
+ #ifdef LED_DEBUG_SLEEP
--- /dev/null
+From cce4517f33384c3794c759e206cc8e1bb6df146b Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 3 May 2012 09:02:47 +0000
+Subject: frv: Use correct size for task_struct allocation
+
+From: Thomas Gleixner <tglx@linutronix.de>
+
+commit cce4517f33384c3794c759e206cc8e1bb6df146b upstream.
+
+alloc_task_struct_node() allocates THREAD_SIZE and maintains some
+weird refcount in the allocated memory. This never blew up as
+task_struct size on 32bit machines was always less than THREAD_SIZE
+
+Allocate just sizeof(struct task_struct) and get rid of the magic
+refcounting.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Acked-by: David Howells <dhowells@redhat.com>
+Link: http://lkml.kernel.org/r/20120503085033.898475542@linutronix.de
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/frv/kernel/process.c | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+--- a/arch/frv/kernel/process.c
++++ b/arch/frv/kernel/process.c
+@@ -46,17 +46,12 @@ EXPORT_SYMBOL(pm_power_off);
+
+ struct task_struct *alloc_task_struct_node(int node)
+ {
+- struct task_struct *p = kmalloc_node(THREAD_SIZE, GFP_KERNEL, node);
+-
+- if (p)
+- atomic_set((atomic_t *)(p+1), 1);
+- return p;
++ return kmalloc_node(sizeof(task_struct), GFP_KERNEL, node);
+ }
+
+ void free_task_struct(struct task_struct *p)
+ {
+- if (atomic_dec_and_test((atomic_t *)(p+1)))
+- kfree(p);
++ kfree(p);
+ }
+
+ static void core_sleep_idle(void)
cris-remove-old-legacy-traditional-flag-from-arch-v10-lib-makefile.patch
cris-add-_sdata-to-vmlinux.lds.s.patch
futex-take-hugepages-into-account-when-generating-futex_key.patch
+frv-use-correct-size-for-task_struct-allocation.patch
+frv-use-core-allocator-for-task_struct.patch