Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cce4517f authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

frv: Use correct size for task_struct allocation



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: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarDavid Howells <dhowells@redhat.com>
Link: http://lkml.kernel.org/r/20120503085033.898475542@linutronix.de
parent 43a18b1e
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -45,16 +45,11 @@ 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);
}