Re: [PATCH v11 25/25] x86/cet/shstk: Add arch_prctl functions for shadow stack
From: Dave Hansen
Date: Tue Aug 25 2020 - 15:19:46 EST
On 8/25/20 11:43 AM, Yu, Yu-cheng wrote:
>>> arch_prctl(ARCH_X86_CET_MMAP_SHSTK, u64 *args)
>>> Allocate a new shadow stack.
>>>
>>> The parameter 'args' is a pointer to a user buffer.
>>>
>>> *args = desired size
>>> *(args + 1) = MAP_32BIT or MAP_POPULATE
>>>
>>> On returning, *args is the allocated shadow stack address.
>>
>> This is hideous. Would this be better as a new syscall?
>
> Could you point out why this is hideous, so that I can modify the
> arch_prctl?
Passing values in memory is hideous when we don't have to. A syscall
would let you have separate arguments for size and flags and would also
let you have a nice return value instead of needing to do that in memory
too.
> I think this is more arch-specific. Even if it becomes a new syscall,
> we still need to pass the same parameters.
Right, but without the copying in and out of memory.