diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-07-05 21:58:04 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2007-07-05 21:58:04 -0400 |
commit | 04c7d9579f25ff0dd01efa958805f34c92bc6a71 (patch) | |
tree | 125a0da3b1d4397af86b562c5b4e8df1eedf10ab /arch/sh/lib/div64-generic.c | |
parent | 75f016a7ce75220d898608791870ab7da549a430 (diff) |
sh: Correct __xdiv64_32/div64_32 return value size.
These should be returning a uint32_t, whereas they were erroneously
returning a u64 before. As the register sizes are 32-bits, this doesn't
really make a lot of sense.
Reported-by: Katsuya MATSUBARA <matsu@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/lib/div64-generic.c')
-rw-r--r-- | arch/sh/lib/div64-generic.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/sh/lib/div64-generic.c b/arch/sh/lib/div64-generic.c index c02473afd581..d9482cd2a9ea 100644 --- a/arch/sh/lib/div64-generic.c +++ b/arch/sh/lib/div64-generic.c | |||
@@ -4,16 +4,15 @@ | |||
4 | 4 | ||
5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
6 | 6 | ||
7 | extern u64 __xdiv64_32(u64 n, u32 d); | 7 | extern uint32_t __xdiv64_32(u64 n, u32 d); |
8 | 8 | ||
9 | u64 __div64_32(u64 *xp, u32 y) | 9 | uint32_t __div64_32(u64 *xp, u32 y) |
10 | { | 10 | { |
11 | u64 rem; | 11 | uint32_t rem; |
12 | u64 q = __xdiv64_32(*xp, y); | 12 | uint32_t q = __xdiv64_32(*xp, y); |
13 | 13 | ||
14 | rem = *xp - q * y; | 14 | rem = *xp - q * y; |
15 | *xp = q; | 15 | *xp = q; |
16 | 16 | ||
17 | return rem; | 17 | return rem; |
18 | } | 18 | } |
19 | |||