summaryrefslogtreecommitdiffstats
path: root/kernel/time
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2016-12-08 15:49:34 -0500
committerThomas Gleixner <tglx@linutronix.de>2016-12-09 06:06:41 -0500
commitacc89612a70e370a5640fd77a83f15b7b94d85e4 (patch)
tree147bc4f82c26a46c2b7e0ce69f3926213bf50c67 /kernel/time
parent9c1645727b8fa90d07256fdfcc45bf831242a3ab (diff)
timekeeping: Make the conversion call chain consistently unsigned
Propagating a unsigned value through signed variables and functions makes absolutely no sense and is just prone to (re)introduce subtle signed vs. unsigned issues as happened recently. Clean it up. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Parit Bhargava <prarit@redhat.com> Cc: Laurent Vivier <lvivier@redhat.com> Cc: "Christopher S. Hall" <christopher.s.hall@intel.com> Cc: Chris Metcalf <cmetcalf@mellanox.com> Cc: Richard Cochran <richardcochran@gmail.com> Cc: Liav Rehana <liavr@mellanox.com> Cc: John Stultz <john.stultz@linaro.org> Link: http://lkml.kernel.org/r/20161208204228.765843099@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/time')
-rw-r--r--kernel/time/timekeeping.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index bfe589e929e8..5244821643a4 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -311,7 +311,7 @@ static inline u64 timekeeping_delta_to_ns(struct tk_read_base *tkr,
311 return nsec + arch_gettimeoffset(); 311 return nsec + arch_gettimeoffset();
312} 312}
313 313
314static inline s64 timekeeping_get_ns(struct tk_read_base *tkr) 314static inline u64 timekeeping_get_ns(struct tk_read_base *tkr)
315{ 315{
316 cycle_t delta; 316 cycle_t delta;
317 317
@@ -319,8 +319,8 @@ static inline s64 timekeeping_get_ns(struct tk_read_base *tkr)
319 return timekeeping_delta_to_ns(tkr, delta); 319 return timekeeping_delta_to_ns(tkr, delta);
320} 320}
321 321
322static inline s64 timekeeping_cycles_to_ns(struct tk_read_base *tkr, 322static inline u64 timekeeping_cycles_to_ns(struct tk_read_base *tkr,
323 cycle_t cycles) 323 cycle_t cycles)
324{ 324{
325 cycle_t delta; 325 cycle_t delta;
326 326
@@ -652,7 +652,7 @@ static void timekeeping_forward_now(struct timekeeper *tk)
652{ 652{
653 struct clocksource *clock = tk->tkr_mono.clock; 653 struct clocksource *clock = tk->tkr_mono.clock;
654 cycle_t cycle_now, delta; 654 cycle_t cycle_now, delta;
655 s64 nsec; 655 u64 nsec;
656 656
657 cycle_now = tk->tkr_mono.read(clock); 657 cycle_now = tk->tkr_mono.read(clock);
658 delta = clocksource_delta(cycle_now, tk->tkr_mono.cycle_last, tk->tkr_mono.mask); 658 delta = clocksource_delta(cycle_now, tk->tkr_mono.cycle_last, tk->tkr_mono.mask);
@@ -681,7 +681,7 @@ int __getnstimeofday64(struct timespec64 *ts)
681{ 681{
682 struct timekeeper *tk = &tk_core.timekeeper; 682 struct timekeeper *tk = &tk_core.timekeeper;
683 unsigned long seq; 683 unsigned long seq;
684 s64 nsecs = 0; 684 u64 nsecs;
685 685
686 do { 686 do {
687 seq = read_seqcount_begin(&tk_core.seq); 687 seq = read_seqcount_begin(&tk_core.seq);
@@ -721,7 +721,7 @@ ktime_t ktime_get(void)
721 struct timekeeper *tk = &tk_core.timekeeper; 721 struct timekeeper *tk = &tk_core.timekeeper;
722 unsigned int seq; 722 unsigned int seq;
723 ktime_t base; 723 ktime_t base;
724 s64 nsecs; 724 u64 nsecs;
725 725
726 WARN_ON(timekeeping_suspended); 726 WARN_ON(timekeeping_suspended);
727 727
@@ -764,7 +764,7 @@ ktime_t ktime_get_with_offset(enum tk_offsets offs)
764 struct timekeeper *tk = &tk_core.timekeeper; 764 struct timekeeper *tk = &tk_core.timekeeper;
765 unsigned int seq; 765 unsigned int seq;
766 ktime_t base, *offset = offsets[offs]; 766 ktime_t base, *offset = offsets[offs];
767 s64 nsecs; 767 u64 nsecs;
768 768
769 WARN_ON(timekeeping_suspended); 769 WARN_ON(timekeeping_suspended);
770 770
@@ -808,7 +808,7 @@ ktime_t ktime_get_raw(void)
808 struct timekeeper *tk = &tk_core.timekeeper; 808 struct timekeeper *tk = &tk_core.timekeeper;
809 unsigned int seq; 809 unsigned int seq;
810 ktime_t base; 810 ktime_t base;
811 s64 nsecs; 811 u64 nsecs;
812 812
813 do { 813 do {
814 seq = read_seqcount_begin(&tk_core.seq); 814 seq = read_seqcount_begin(&tk_core.seq);
@@ -833,8 +833,8 @@ void ktime_get_ts64(struct timespec64 *ts)
833{ 833{
834 struct timekeeper *tk = &tk_core.timekeeper; 834 struct timekeeper *tk = &tk_core.timekeeper;
835 struct timespec64 tomono; 835 struct timespec64 tomono;
836 s64 nsec;
837 unsigned int seq; 836 unsigned int seq;
837 u64 nsec;
838 838
839 WARN_ON(timekeeping_suspended); 839 WARN_ON(timekeeping_suspended);
840 840
@@ -922,8 +922,8 @@ void ktime_get_snapshot(struct system_time_snapshot *systime_snapshot)
922 unsigned long seq; 922 unsigned long seq;
923 ktime_t base_raw; 923 ktime_t base_raw;
924 ktime_t base_real; 924 ktime_t base_real;
925 s64 nsec_raw; 925 u64 nsec_raw;
926 s64 nsec_real; 926 u64 nsec_real;
927 cycle_t now; 927 cycle_t now;
928 928
929 WARN_ON_ONCE(timekeeping_suspended); 929 WARN_ON_ONCE(timekeeping_suspended);
@@ -1081,7 +1081,7 @@ int get_device_system_crosststamp(int (*get_time_fn)
1081 cycle_t cycles, now, interval_start; 1081 cycle_t cycles, now, interval_start;
1082 unsigned int clock_was_set_seq = 0; 1082 unsigned int clock_was_set_seq = 0;
1083 ktime_t base_real, base_raw; 1083 ktime_t base_real, base_raw;
1084 s64 nsec_real, nsec_raw; 1084 u64 nsec_real, nsec_raw;
1085 u8 cs_was_changed_seq; 1085 u8 cs_was_changed_seq;
1086 unsigned long seq; 1086 unsigned long seq;
1087 bool do_interp; 1087 bool do_interp;
@@ -1394,7 +1394,7 @@ void getrawmonotonic64(struct timespec64 *ts)
1394 struct timekeeper *tk = &tk_core.timekeeper; 1394 struct timekeeper *tk = &tk_core.timekeeper;
1395 struct timespec64 ts64; 1395 struct timespec64 ts64;
1396 unsigned long seq; 1396 unsigned long seq;
1397 s64 nsecs; 1397 u64 nsecs;
1398 1398
1399 do { 1399 do {
1400 seq = read_seqcount_begin(&tk_core.seq); 1400 seq = read_seqcount_begin(&tk_core.seq);