In some environments, 100 * nr_active_objs is calculated at first,
and lower 32bit of the result is divided by nr_objs.
If 100 * nr_active_objs > 42949672, %use will be incorrect.
Signed-off-by: Takayuki Nagata <tnagata@xxxxxxxxxx>
---
proc/slab.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/proc/slab.c b/proc/slab.c
index 444b79c..2d7f967 100644
--- a/proc/slab.c
+++ b/proc/slab.c
@@ -179,7 +179,7 @@ static int parse_slabinfo20(struct slab_info **list, struct
slab_stat *stats,
curr->cache_size = (unsigned long)curr->nr_slabs *
curr->pages_per_slab * page_size;
if (curr->nr_objs) {
- curr->use = 100 * curr->nr_active_objs / curr->nr_objs;
+ curr->use = 100 * (curr->nr_active_objs /
curr->nr_objs);
stats->nr_active_caches++;
} else
curr->use = 0;
--
2.5.5