Messages in this thread Patch in this message | | | Date | Thu, 8 May 2008 21:55:27 -0700 | From | "Darrick J. Wong" <> | Subject | [PATCH] ibmaem: Fix 64-bit division on 32-bit platforms |
| |
On Thu, May 08, 2008 at 04:34:43PM -0700, Andrew Morton wrote:
> This driver is littered with 64-bit divides and doesn't link on i386. > I'll make it depend on CONFIG_64BIT for now.
Oops, sorry, I didn't remember that one can't do 64-bit division on i386. The patch below fixes that. --- ibmaem: Fix 64-bit division on 32-bit platforms
Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> ---
drivers/hwmon/ibmaem.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c index 22fa7d6..f808ca3 100644 --- a/drivers/hwmon/ibmaem.c +++ b/drivers/hwmon/ibmaem.c @@ -31,6 +31,7 @@ #include <linux/idr.h> #include <linux/sched.h> #include <linux/platform_device.h> +#include <linux/math64.h> #define REFRESH_INTERVAL (HZ) #define IPMI_TIMEOUT (30 * HZ) @@ -864,9 +865,10 @@ static ssize_t aem_show_power(struct device *dev, mutex_unlock(&data->lock); time = timespec_to_ns(&a) - timespec_to_ns(&b); - time /= 1000; + time = div_u64(time, 1000); - return sprintf(buf, "%llu\n", (after - before) * 1000000000 / time); + return sprintf(buf, "%llu\n", + div64_u64((after - before) * 1000000000, time)); } /* Display energy use */
| |