aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/ubi/wl.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index 0696e36b0539..8616f52144c1 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -350,18 +350,19 @@ static void prot_queue_add(struct ubi_device *ubi, struct ubi_wl_entry *e)
350/** 350/**
351 * find_wl_entry - find wear-leveling entry closest to certain erase counter. 351 * find_wl_entry - find wear-leveling entry closest to certain erase counter.
352 * @root: the RB-tree where to look for 352 * @root: the RB-tree where to look for
353 * @max: highest possible erase counter 353 * @diff: maximum possible difference from the smallest erase counter
354 * 354 *
355 * This function looks for a wear leveling entry with erase counter closest to 355 * This function looks for a wear leveling entry with erase counter closest to
356 * @max and less than @max. 356 * min + @diff, where min is the smallest erase counter.
357 */ 357 */
358static struct ubi_wl_entry *find_wl_entry(struct rb_root *root, int max) 358static struct ubi_wl_entry *find_wl_entry(struct rb_root *root, int diff)
359{ 359{
360 struct rb_node *p; 360 struct rb_node *p;
361 struct ubi_wl_entry *e; 361 struct ubi_wl_entry *e;
362 int max;
362 363
363 e = rb_entry(rb_first(root), struct ubi_wl_entry, u.rb); 364 e = rb_entry(rb_first(root), struct ubi_wl_entry, u.rb);
364 max += e->ec; 365 max = e->ec + diff;
365 366
366 p = root->rb_node; 367 p = root->rb_node;
367 while (p) { 368 while (p) {