On Thu, Jan 4, 2018 at 9:00 AM, Christoph Hellwig <h...@lst.de> wrote:

> +}
> +
> +SYSCALL_DEFINE6(io_pgetevents,
> +               aio_context_t, ctx_id,
> +               long, min_nr,
> +               long, nr,
> +               struct io_event __user *, events,
> +               struct timespec __user *, timeout,
> +               const sigset_t __user *, sigmask)
> +{

> +COMPAT_SYSCALL_DEFINE6(io_pgetevents,
> +               compat_aio_context_t, ctx_id,
> +               compat_long_t, min_nr,
> +               compat_long_t, nr,
> +               struct io_event __user *, events,
> +               struct compat_timespec __user *, timeout,
> +               const compat_sigset_t __user *, sigmask)
> +{

Hmm, these two new syscall entry points turn into four when we add in
support for 64-bit time_t, as we'd have to support all combinations of 32/64
bit aio_context_t and time_t.

Would it be better to start this interface out by defining it using a 64-bit
timeout structure? The downside would be that the user space syscall
wrappers have to start out with a conversion, if we don't do it, then
the opposite conversion would have to get added later.

      Arnd

Reply via email to