OSDN Git Service

net: xilinx: fix possible object reference leak
[sagit-ice-cold/kernel_xiaomi_msm8998.git] / drivers / ptp / ptp_clock.c
index 2e481b9..60a5e0c 100644 (file)
@@ -97,30 +97,26 @@ static s32 scaled_ppm_to_ppb(long ppm)
 
 /* posix clock implementation */
 
-static int ptp_clock_getres(struct posix_clock *pc, struct timespec *tp)
+static int ptp_clock_getres(struct posix_clock *pc, struct timespec64 *tp)
 {
        tp->tv_sec = 0;
        tp->tv_nsec = 1;
        return 0;
 }
 
-static int ptp_clock_settime(struct posix_clock *pc, const struct timespec *tp)
+static int ptp_clock_settime(struct posix_clock *pc, const struct timespec64 *tp)
 {
        struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock);
-       struct timespec64 ts = timespec_to_timespec64(*tp);
 
-       return  ptp->info->settime64(ptp->info, &ts);
+       return  ptp->info->settime64(ptp->info, tp);
 }
 
-static int ptp_clock_gettime(struct posix_clock *pc, struct timespec *tp)
+static int ptp_clock_gettime(struct posix_clock *pc, struct timespec64 *tp)
 {
        struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock);
-       struct timespec64 ts;
        int err;
 
-       err = ptp->info->gettime64(ptp->info, &ts);
-       if (!err)
-               *tp = timespec64_to_timespec(ts);
+       err = ptp->info->gettime64(ptp->info, tp);
        return err;
 }
 
@@ -133,7 +129,7 @@ static int ptp_clock_adjtime(struct posix_clock *pc, struct timex *tx)
        ops = ptp->info;
 
        if (tx->modes & ADJ_SETOFFSET) {
-               struct timespec ts;
+               struct timespec64 ts;
                ktime_t kt;
                s64 delta;
 
@@ -146,7 +142,7 @@ static int ptp_clock_adjtime(struct posix_clock *pc, struct timex *tx)
                if ((unsigned long) ts.tv_nsec >= NSEC_PER_SEC)
                        return -EINVAL;
 
-               kt = timespec_to_ktime(ts);
+               kt = timespec64_to_ktime(ts);
                delta = ktime_to_ns(kt);
                err = ops->adjtime(ops, delta);
        } else if (tx->modes & ADJ_FREQUENCY) {