diff options
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/ubi/wl.c | 9 |
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 | */ |
358 | static struct ubi_wl_entry *find_wl_entry(struct rb_root *root, int max) | 358 | static 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) { |