Re: [Y2038] [PATCH v4 06/25] time/posix-timers:Introduce {get, put}_timespec and {get, put}_itimerspec

From: Thomas Gleixner
Date: Fri Jun 05 2015 - 05:59:38 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/