Re: CONFIG_HAVE_ARCH_TRACEHOOK and you

David Miller
2008-09-12T21:57:48Z

From: Russell King <rmk+lkml@arm.linux.org.uk>
Date: Fri, 12 Sep 2008 14:13:51 +0100

> However, in looking at other architectures, I notice that sparc does this
> when initializing its regsets:
>
> .n = 38 * sizeof(u32),
> .size = sizeof(u32), .align = sizeof(u32),
>
> and sparc64:
>
> .n = 36 * sizeof(u64),
> .size = sizeof(u64), .align = sizeof(u64),
>
> which, given that fs/binfmt_elf.c does this:
>
> size_t size = regset->n * regset->size;
> void *data = kmalloc(size, GFP_KERNEL);
> if (unlikely(!data))
> return 0;
>
> means sparc ends up allocating 38 * sizeof(u32) * sizeof(u32), and
> sparc64 ends up with 36 * sizeof(u64) * sizeof(u64), which must surely
> be wrong?

Yep, definitely a bug, good catch. I guess, better to allocate
too much by accident rather than too little in this case :-)

I'll fix this up, thanks!