Re: Compat 32-bit syscall entry from 64-bit task!?

From: Roland McGrath
Date: Mon Feb 06 2012 - 15:39:54 EST


On Mon, Feb 6, 2012 at 12:30 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
> What is needed to make a regset variable-sized? Just declaring that it
> may change in size in the future, or does one need a length field at the
> top (I would personally have expected that both notes and ptrace would
> have out-of-band methods for getting the size?)

ELF notes do have a size field, so core files are self-explanatory. There
is no ptrace interface to directly interrogate the regset details (one
could be added). But the PTRACE_GETREGSET interface is to accept an upper
bound and yield the actual size filled in (which might be less than the
regset's size if the user-supplied buffer was smaller). So in practice, a
caller can just use a buffer that's sure to be large enough, and then look
at iov_len for the actual size delivered. (And nobody has yet complained
about this for xstate, though that might just be that nobody is really
using it.)


Thanks,
Roland
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/