aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ptp/ptp_clock.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c
index e25d2bc898e5..296b0ec8744d 100644
--- a/drivers/ptp/ptp_clock.c
+++ b/drivers/ptp/ptp_clock.c
@@ -142,7 +142,10 @@ static int ptp_clock_adjtime(struct posix_clock *pc, struct timex *tx)
142 delta = ktime_to_ns(kt); 142 delta = ktime_to_ns(kt);
143 err = ops->adjtime(ops, delta); 143 err = ops->adjtime(ops, delta);
144 } else if (tx->modes & ADJ_FREQUENCY) { 144 } else if (tx->modes & ADJ_FREQUENCY) {
145 err = ops->adjfreq(ops, scaled_ppm_to_ppb(tx->freq)); 145 s32 ppb = scaled_ppm_to_ppb(tx->freq);
146 if (ppb > ops->max_adj || ppb < -ops->max_adj)
147 return -ERANGE;
148 err = ops->adjfreq(ops, ppb);
146 ptp->dialed_frequency = tx->freq; 149 ptp->dialed_frequency = tx->freq;
147 } else if (tx->modes == 0) { 150 } else if (tx->modes == 0) {
148 tx->freq = ptp->dialed_frequency; 151 tx->freq = ptp->dialed_frequency;