From: Russell King <[EMAIL PROTECTED]>
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!

Reply via email to