On Thu, Jan 4, 2018 at 9:00 AM, Christoph Hellwig <hch@xxxxxx> 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