Re: [PATCH v9 2/3] cachestat: implement cachestat syscall

From: Arnd Bergmann
Date: Sun Feb 05 2023 - 05:03:12 EST


On Fri, Feb 3, 2023, at 20:04, Nhat Pham wrote:

> +SYSCALL_DEFINE5(cachestat, unsigned int, fd, loff_t, off, size_t, len,
> + struct cachestat __user *, cstat, unsigned int, flags)
> +{
> + return ksys_cachestat(fd, off, len, cstat, flags);
> +}
> +
> +#ifdef CONFIG_COMPAT
> +COMPAT_SYSCALL_DEFINE6(cachestat, unsigned int, fd,
> compat_arg_u64_dual(off),
> + size_t, len, struct cachestat __user *, cstat, unsigned int, flags)
> +{
> + return ksys_cachestat(fd, compat_arg_u64_glue(off), len, cstat,
> flags);
> +}

This still looks wrong to me, as this compat definition does not match
the native variant on architectures that require 64-bit arguments to
be passed in aligned register pairs, such as arm, mips or ppc, but
not x86, s390 or riscv.

Arnd