On Thu, 4 Jun 2015, Arnd Bergmann wrote:
> int get_timespec64(struct timespec64 *ts, const struct timespec __user *uts)
> {
>       struct timespec64 tmp;
>       int ret;
> 
>       if (sizeof(tmp) == sizeof(*ts))
>               return copy_from_user(&tmp, uts, sizeof(*ts)) ? -EFAULT : 0;
> 
>       ret = copy_from_user(&tmp, uts, sizeof(*ts));
>       if (ret)
>               return -EFAULT;
> 
>       ts->tv_sec = tmp.tv_sec;
>       ts->tv_nsec = tmp.tv_nsec;
> 
>       return 0;
> }
> 
> This works fine, but I'd have to change it to copy from a __user
> __kernel_timespec instead of timespec in my system call series, and
> in order to do that, we must ensure that I can change over all callers
> at the same time, so with the function prototype above, we should not
> start using get_timespec64 for anything outside of posix-timers.c.

That's fine I think.

Thanks,

        tglx
_______________________________________________
Y2038 mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/y2038

Reply via email to