diff options
author | Richard Weinberger <richard@nod.at> | 2014-11-07 07:35:41 -0500 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2015-03-26 17:47:38 -0400 |
commit | 56794c0a1ae738cb4184ab27501e4d152b0b2771 (patch) | |
tree | d702c6fd6e672a4d6e48f0e20269af1312e7f4c0 /drivers/mtd | |
parent | 1841fcfd910b4e841de40e1f6bc3dad6109a4054 (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.c | 19 | ||||
-rw-r--r-- | drivers/mtd/ubi/wl.c | 5 | ||||
-rw-r--r-- | drivers/mtd/ubi/wl.h | 5 |
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 | */ | ||
36 | static 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 |
4 | static int is_fm_block(struct ubi_device *ubi, int pnum); | ||
5 | static int anchor_pebs_avalible(struct rb_root *root); | 4 | static int anchor_pebs_avalible(struct rb_root *root); |
6 | static void update_fastmap_work_fn(struct work_struct *wrk); | 5 | static void update_fastmap_work_fn(struct work_struct *wrk); |
7 | static struct ubi_wl_entry *find_anchor_wl_entry(struct rb_root *root); | 6 | static 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 */ |
20 | static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi); | 19 | static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi); |
21 | static inline int is_fm_block(struct ubi_device *ubi, int pnum) | ||
22 | { | ||
23 | return 0; | ||
24 | } | ||
25 | static inline void ubi_fastmap_close(struct ubi_device *ubi) { } | 20 | static inline void ubi_fastmap_close(struct ubi_device *ubi) { } |
26 | static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) { } | 21 | static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) { } |
27 | static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi, | 22 | static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi, |