lkml.org 
[lkml]   [2008]   [Sep]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: CONFIG_HAVE_ARCH_TRACEHOOK and you
Okay, let's comment on each bit separately.

Regsets
-------

These don't appear to be a problem for ARM, and turn out to be relatively
clean. The only thing I did do was invent some alternative simpler
helper functions rather than using the user_regset_copy* functions (to
avoid taking the address of function arguments, which needlessly forces
them onto the stack.)

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?

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:


\
 
 \ /
  Last update: 2008-09-12 15:17    [W:0.062 / U:1.140 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site