From 89ec14ceaedf887fb666f09e1b768afdc32cb291 Mon Sep 17 00:00:00 2001 From: Alexandre Bailon Date: Tue, 8 Mar 2016 16:37:36 +0100 Subject: [PATCH] greybus: loopback: Fix warning on 32-bit build gb_loopback_ro_avg_attr() is using "/" to divide two 64-bit integer, causing a reference to __aeabi_uldivmod() that is not availalbe on 32-bit. Instead, use do_div(). Signed-off-by: Alexandre Bailon Reviewed-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/loopback.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c index ba6e12a3648c..75bff56b48c3 100644 --- a/drivers/staging/greybus/loopback.c +++ b/drivers/staging/greybus/loopback.c @@ -164,7 +164,8 @@ static ssize_t name##_avg_show(struct device *dev, \ count = stats->count ? stats->count : 1; \ avg = stats->sum; \ rem = do_div(avg, count); \ - rem = 1000000 * rem / count; \ + rem *= 1000000; \ + do_div(rem, count); \ return sprintf(buf, "%llu.%06u\n", avg, (u32)rem); \ } \ static DEVICE_ATTR_RO(name##_avg) -- 2.39.2