summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2008-09-23 15:33:41 +0200
committerIngo Molnar <mingo@elte.hu>2008-09-23 16:19:37 +0200
commit6918bc5c830e890681eabb3c6cb6b8d117a52d14 (patch)
tree1e7eff6405d2e086fbf0db6a64d76bba21ea630a
parent9b9b181ce53ef387dfe3df9316bbc641fca13d51 (diff)
downloadlwn-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.c7
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)