diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-09-23 15:33:41 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-09-23 16:19:37 +0200 |
commit | 6918bc5c830e890681eabb3c6cb6b8d117a52d14 (patch) | |
tree | 1e7eff6405d2e086fbf0db6a64d76bba21ea630a | |
parent | 9b9b181ce53ef387dfe3df9316bbc641fca13d51 (diff) | |
download | lwn-6918bc5c830e890681eabb3c6cb6b8d117a52d14.tar.gz lwn-6918bc5c830e890681eabb3c6cb6b8d117a52d14.zip |
lockstat: fixup signed division
Some recent modification to this code made me notice the little todo mark.
Now that we have more elaborate 64-bit division functions this isn't hard.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | kernel/lockdep_proc.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/lockdep_proc.c b/kernel/lockdep_proc.c index 20dbcbf9c7dd..8d3a6eba8d5a 100644 --- a/kernel/lockdep_proc.c +++ b/kernel/lockdep_proc.c @@ -470,11 +470,12 @@ static void seq_line(struct seq_file *m, char c, int offset, int length) static void snprint_time(char *buf, size_t bufsiz, s64 nr) { - unsigned long rem; + s64 div; + s32 rem; nr += 5; /* for display rounding */ - rem = do_div(nr, 1000); /* XXX: do_div_signed */ - snprintf(buf, bufsiz, "%lld.%02d", (long long)nr, (int)rem/10); + div = div_s64_rem(nr, 1000, &rem); + snprintf(buf, bufsiz, "%lld.%02d", (long long)div, (int)rem/10); } static void seq_time(struct seq_file *m, s64 time) |