Citando https://www.kernel.org/doc/Documentation/process/adding-syscalls.rst :
Pelo menos no x86 de 64 bits, será um requisito difícil a partir da v4.17 não chamar funções de chamada do sistema no kernel. Ele usa uma convenção de chamada diferente para chamadas de sistema, onde
struct pt_regs
é decodificada dinamicamente em um wrapper syscall que então transfere o processamento para a função syscall real. Isso significa que apenas os parâmetros que são realmente necessários para um syscall específico são passados durante a entrada do syscall, em vez de preencher seis registros da CPU com conteúdo aleatório do espaço do usuário o tempo todo (o que pode causar sérios problemas na cadeia de chamadas).
A que problema sério na cadeia de chamadas se refere a última cláusula entre parênteses?
Para mim, parece estúpido não carregar os seis registros na preparação genérica para o syscall. Forçar cada wrapper do syscall a fazer isso os torna maiores e as funções do syscall se tornam um novo caso especial, então estou me perguntando qual é o "problema sério" de ter conteúdo de usuário não intencional em registros de argumentos não utilizados.