aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2014-11-07 07:35:41 -0500
committerRichard Weinberger <richard@nod.at>2015-03-26 17:47:38 -0400
commit56794c0a1ae738cb4184ab27501e4d152b0b2771 (patch)
treed702c6fd6e672a4d6e48f0e20269af1312e7f4c0 /drivers/mtd
parent1841fcfd910b4e841de40e1f6bc3dad6109a4054 (diff)
UBI: Fastmap: Remove is_fm_block()
This function was added to fastmap in a very early stage to have paranoid assertions. With the current fastmap implementation this assert will never trigger as fastmap PEBs are not seen by the WL sub-system. Remove it to save us some CPU cycles. Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/ubi/fastmap-wl.c19
-rw-r--r--drivers/mtd/ubi/wl.c5
-rw-r--r--drivers/mtd/ubi/wl.h5
3 files changed, 0 insertions, 29 deletions
diff --git a/drivers/mtd/ubi/fastmap-wl.c b/drivers/mtd/ubi/fastmap-wl.c
index 067aa9042ec1..b2a665398bca 100644
--- a/drivers/mtd/ubi/fastmap-wl.c
+++ b/drivers/mtd/ubi/fastmap-wl.c
@@ -29,25 +29,6 @@ static void update_fastmap_work_fn(struct work_struct *wrk)
29} 29}
30 30
31/** 31/**
32 * is_fm_block - returns 1 if a PEB is currently used in a fastmap.
33 * @ubi: UBI device description object
34 * @pnum: the to be checked PEB
35 */
36static int is_fm_block(struct ubi_device *ubi, int pnum)
37{
38 int i;
39
40 if (!ubi->fm)
41 return 0;
42
43 for (i = 0; i < ubi->fm->used_blocks; i++)
44 if (ubi->fm->e[i]->pnum == pnum)
45 return 1;
46
47 return 0;
48}
49
50/**
51 * find_anchor_wl_entry - find wear-leveling entry to used as anchor PEB. 32 * find_anchor_wl_entry - find wear-leveling entry to used as anchor PEB.
52 * @root: the RB-tree where to look for 33 * @root: the RB-tree where to look for
53 */ 34 */
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index 94ffdeb370c1..16214d3d57a4 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -585,7 +585,6 @@ static int schedule_erase(struct ubi_device *ubi, struct ubi_wl_entry *e,
585 struct ubi_work *wl_wrk; 585 struct ubi_work *wl_wrk;
586 586
587 ubi_assert(e); 587 ubi_assert(e);
588 ubi_assert(!is_fm_block(ubi, e->pnum));
589 588
590 dbg_wl("schedule erasure of PEB %d, EC %d, torture %d", 589 dbg_wl("schedule erasure of PEB %d, EC %d, torture %d",
591 e->pnum, e->ec, torture); 590 e->pnum, e->ec, torture);
@@ -1045,8 +1044,6 @@ static int erase_worker(struct ubi_device *ubi, struct ubi_work *wl_wrk,
1045 dbg_wl("erase PEB %d EC %d LEB %d:%d", 1044 dbg_wl("erase PEB %d EC %d LEB %d:%d",
1046 pnum, e->ec, wl_wrk->vol_id, wl_wrk->lnum); 1045 pnum, e->ec, wl_wrk->vol_id, wl_wrk->lnum);
1047 1046
1048 ubi_assert(!is_fm_block(ubi, e->pnum));
1049
1050 err = sync_erase(ubi, e, wl_wrk->torture); 1047 err = sync_erase(ubi, e, wl_wrk->torture);
1051 if (!err) { 1048 if (!err) {
1052 /* Fine, we've erased it successfully */ 1049 /* Fine, we've erased it successfully */
@@ -1526,7 +1523,6 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai)
1526 1523
1527 e->pnum = aeb->pnum; 1524 e->pnum = aeb->pnum;
1528 e->ec = aeb->ec; 1525 e->ec = aeb->ec;
1529 ubi_assert(!is_fm_block(ubi, e->pnum));
1530 ubi->lookuptbl[e->pnum] = e; 1526 ubi->lookuptbl[e->pnum] = e;
1531 if (schedule_erase(ubi, e, aeb->vol_id, aeb->lnum, 0)) { 1527 if (schedule_erase(ubi, e, aeb->vol_id, aeb->lnum, 0)) {
1532 wl_entry_destroy(ubi, e); 1528 wl_entry_destroy(ubi, e);
@@ -1547,7 +1543,6 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai)
1547 e->pnum = aeb->pnum; 1543 e->pnum = aeb->pnum;
1548 e->ec = aeb->ec; 1544 e->ec = aeb->ec;
1549 ubi_assert(e->ec >= 0); 1545 ubi_assert(e->ec >= 0);
1550 ubi_assert(!is_fm_block(ubi, e->pnum));
1551 1546
1552 wl_tree_add(e, &ubi->free); 1547 wl_tree_add(e, &ubi->free);
1553 ubi->free_count++; 1548 ubi->free_count++;
diff --git a/drivers/mtd/ubi/wl.h b/drivers/mtd/ubi/wl.h
index fbc2d8e312df..bd1f07e5ce9a 100644
--- a/drivers/mtd/ubi/wl.h
+++ b/drivers/mtd/ubi/wl.h
@@ -1,7 +1,6 @@
1#ifndef UBI_WL_H 1#ifndef UBI_WL_H
2#define UBI_WL_H 2#define UBI_WL_H
3#ifdef CONFIG_MTD_UBI_FASTMAP 3#ifdef CONFIG_MTD_UBI_FASTMAP
4static int is_fm_block(struct ubi_device *ubi, int pnum);
5static int anchor_pebs_avalible(struct rb_root *root); 4static int anchor_pebs_avalible(struct rb_root *root);
6static void update_fastmap_work_fn(struct work_struct *wrk); 5static void update_fastmap_work_fn(struct work_struct *wrk);
7static struct ubi_wl_entry *find_anchor_wl_entry(struct rb_root *root); 6static struct ubi_wl_entry *find_anchor_wl_entry(struct rb_root *root);
@@ -18,10 +17,6 @@ static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi,
18 struct rb_root *root); 17 struct rb_root *root);
19#else /* !CONFIG_MTD_UBI_FASTMAP */ 18#else /* !CONFIG_MTD_UBI_FASTMAP */
20static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi); 19static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi);
21static inline int is_fm_block(struct ubi_device *ubi, int pnum)
22{
23 return 0;
24}
25static inline void ubi_fastmap_close(struct ubi_device *ubi) { } 20static inline void ubi_fastmap_close(struct ubi_device *ubi) { }
26static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) { } 21static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) { }
27static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi, 22static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi,