Skip to content

Commit

Permalink
regmap: prevent division by zero in rbtree_show
Browse files Browse the repository at this point in the history
If there are no nodes in the cache, nodes will be 0, so calculating
"registers / nodes" will cause division by zero.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
  • Loading branch information
Stephen Warren authored and Mark Brown committed Apr 4, 2012
1 parent e466de0 commit c04c1b9
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion drivers/base/regmap/regcache-rbtree.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ static int rbtree_show(struct seq_file *s, void *ignored)
unsigned int base, top;
int nodes = 0;
int registers = 0;
int average;

mutex_lock(&map->lock);

Expand All @@ -152,8 +153,13 @@ static int rbtree_show(struct seq_file *s, void *ignored)
registers += top - base + 1;
}

if (nodes)
average = registers / nodes;
else
average = 0;

seq_printf(s, "%d nodes, %d registers, average %d registers\n",
nodes, registers, registers / nodes);
nodes, registers, average);

mutex_unlock(&map->lock);

Expand Down

0 comments on commit c04c1b9

Please sign in to comment.