remove div_long_long_rem
x86 is the only arch right now, which provides an optimized for div_long_long_rem and it has the downside that one has to be very careful that the divide doesn't overflow. The API is a little akward, as the arguments for the unsigned divide are signed. The signed version also doesn't handle a negative divisor and produces worse code on 64bit archs. There is little incentive to keep this API alive, so this converts the few users to the new API. Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: john stultz <johnstul@us.ibm.com> Cc: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
6f6d6a1a6a
commit
f8bd2258e2
@ -22,6 +22,7 @@
|
||||
#include <linux/debugobjects.h>
|
||||
#include <linux/kallsyms.h>
|
||||
#include <linux/memory.h>
|
||||
#include <linux/math64.h>
|
||||
|
||||
/*
|
||||
* Lock order:
|
||||
@ -3621,12 +3622,10 @@ static int list_locations(struct kmem_cache *s, char *buf,
|
||||
len += sprintf(buf + len, "<not-available>");
|
||||
|
||||
if (l->sum_time != l->min_time) {
|
||||
unsigned long remainder;
|
||||
|
||||
len += sprintf(buf + len, " age=%ld/%ld/%ld",
|
||||
l->min_time,
|
||||
div_long_long_rem(l->sum_time, l->count, &remainder),
|
||||
l->max_time);
|
||||
l->min_time,
|
||||
(long)div_u64(l->sum_time, l->count),
|
||||
l->max_time);
|
||||
} else
|
||||
len += sprintf(buf + len, " age=%ld",
|
||||
l->min_time);
|
||||
|
Reference in New Issue
Block a user