summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/greybus/loopback.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c
index 85d3e35e6a5f..9f0da577d842 100644
--- a/drivers/staging/greybus/loopback.c
+++ b/drivers/staging/greybus/loopback.c
@@ -157,14 +157,15 @@ static ssize_t name##_avg_show(struct device *dev, \
{ \
struct gb_loopback_stats *stats; \
struct gb_loopback *gb; \
- u64 avg; \
- u32 count, rem; \
+ u64 avg, rem; \
+ u32 count; \
gb = dev_get_drvdata(dev); \
stats = &gb->name; \
count = stats->count ? stats->count : 1; \
- avg = stats->sum + count / 2; /* round closest */ \
+ avg = stats->sum; \
rem = do_div(avg, count); \
- return sprintf(buf, "%llu.%06u\n", avg, 1000000 * rem / count); \
+ rem = 1000000 * rem / count; \
+ return sprintf(buf, "%llu.%06u\n", avg, (u32)rem); \
} \
static DEVICE_ATTR_RO(name##_avg)