Re: [PATCH v2 1/3] syscalls,x86 Expose arch_prctl on x86-32.

From: Dave Hansen
Date: Wed Sep 14 2016 - 17:46:57 EST


On 09/14/2016 02:35 PM, Kyle Huey wrote:
> It's not quite a plain move. To leave the existing arch_prctls only
> accessible to 64 bit callers, I added the is_32 bit and the four early
> returns for each existing ARCH_BLAH. These cases are now
> conditionally compiled out in a 32 bit kernel, so we only have to
> handle the 32 bit process on a 64 bit kernel case at runtime.

I think it would make a lot of sense to do the move and the modification
in two patches.

Oh, and arch_prctl() really *is* 64-bit only. I didn't realize that.
That would have been nice to call out in the changelog, too. It's
totally non-obvious.

You're going to owe some manpage updates after this too, I guess. It
says: "arch_prctl() is supported only on Linux/x86-64 for 64-bit
programs currently."

FWIW, I don't think it would be horrible to leave the existing
do_arch_prctl() code in process_64.h and call it
do_64_bit_only_something_arch_prctl(), and only call in to it from the
generic do_arch_prctl(). You really have one reason for all the "if
(is_32)"'s and it would be nice to document why in one single place.