> +static void __invoke_syscall(struct pt_regs *regs, syscall_fn_t syscall_fn)
> +{
> +     regs->regs[0] = syscall_fn(regs->regs[0], regs->regs[1],
> +                                regs->regs[2], regs->regs[3],
> +                                regs->regs[4], regs->regs[5]);
> +}

Any specific reason to have this in a separate function? This seems to be
called only from one instance, namely

> +asmlinkage void invoke_syscall(struct pt_regs *regs, int scno, int sc_nr,
> +                            syscall_fn_t syscall_table[])
> +{
> +     if (scno < sc_nr) {
> +             syscall_fn_t syscall_fn;
> +             syscall_fn = syscall_table[array_index_nospec(scno, sc_nr)];
> +             __invoke_syscall(regs, syscall_fn);
> +     } else {
> +             regs->regs[0] = do_ni_syscall(regs);
> +     }
> +}

and result in a one-liner in the last patch of the series.

Thanks,
        Dominik

Reply via email to