[PATCH v4 1/2] aarch64: Lock GCS status at startup

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Tue Feb 17 15:40:57 GMT 2026



On 17/02/26 12:32, Yury Khrustalev wrote:
> On Tue, Feb 17, 2026 at 09:49:29AM -0300, Adhemerval Zanella Netto wrote:
>>
>> On 16/02/26 14:25, Yury Khrustalev wrote:
>>> If GCS is enabled (see tunable glibc.cpu.aarch64_gcs), we lock all GCS
>>> operations (including status, write on shadow stack, and push to shadow
>>> stack) unless OPTIONAL policy is used.
>>
>> Patch look ok, some minor nits below. I think we can just fix them, install
>> and send a committed version.
>>
>> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
> 
> Thanks!
> 
>> ...
>>
>>> +  uint64_t gcs = GL (dl_aarch64_gcs);
>>> +  if (gcs != GCS_POLICY_DISABLED)
>>>      {
>>> -      int ret = INLINE_SYSCALL_CALL (prctl, PR_SET_SHADOW_STACK_STATUS,
>>> -				     PR_SHADOW_STACK_ENABLE, 0, 0, 0);
>>> -      if (ret)
>>> -        _dl_fatal_printf ("failed to enable GCS: %d\n", -ret);
>>> +      int r0 = INLINE_SYSCALL_CALL (prctl, PR_SET_SHADOW_STACK_STATUS,
>>> +				    PR_SHADOW_STACK_ENABLE, 0, 0, 0);
>>> +      if (r0)
>>
>> No implicit checks (r0 != 0)
> 
> OK
> 
>> and I think you can just remove r0 and
>> check the INLINE_SYSCALL_CALL return directly in the if.
> 
> We use returned value for error reporting, so we need a variable.
> 

Ah right!


More information about the Libc-alpha mailing list