diff options
| author | Tony Lindgren <tony@atomide.com> | 2020-04-21 09:36:03 -0700 |
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2020-04-21 09:36:03 -0700 |
| commit | 175ae3ad59ab3459652bd2ae3bbc1785aeba1bf3 (patch) | |
| tree | c7fd682de61e3c2a6cc3ba0e8881b99fafdf969c /kernel/time/timekeeping.c | |
| parent | 07bdc492cff6f555538df95e9812fe72e16d154a (diff) | |
| parent | 90d4d3f4ea45370d482fa609dbae4d2281b4074f (diff) | |
Merge branch 'fixes-v5.7' into fixes
Diffstat (limited to 'kernel/time/timekeeping.c')
| -rw-r--r-- | kernel/time/timekeeping.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index ca69290bee2a..9ebaab13339d 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1005,9 +1005,8 @@ static int scale64_check_overflow(u64 mult, u64 div, u64 *base) ((int)sizeof(u64)*8 - fls64(mult) < fls64(rem))) return -EOVERFLOW; tmp *= mult; - rem *= mult; - do_div(rem, div); + rem = div64_u64(rem * mult, div); *base = tmp + rem; return 0; } @@ -2397,8 +2396,10 @@ EXPORT_SYMBOL(hardpps); */ void xtime_update(unsigned long ticks) { - write_seqlock(&jiffies_lock); + raw_spin_lock(&jiffies_lock); + write_seqcount_begin(&jiffies_seq); do_timer(ticks); - write_sequnlock(&jiffies_lock); + write_seqcount_end(&jiffies_seq); + raw_spin_unlock(&jiffies_lock); update_wall_time(); } |
