提交 56794c0a 编写于 作者: R Richard Weinberger

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: NRichard Weinberger <richard@nod.at>
上级 1841fcfd
...@@ -28,25 +28,6 @@ static void update_fastmap_work_fn(struct work_struct *wrk) ...@@ -28,25 +28,6 @@ static void update_fastmap_work_fn(struct work_struct *wrk)
spin_unlock(&ubi->wl_lock); spin_unlock(&ubi->wl_lock);
} }
/**
* is_fm_block - returns 1 if a PEB is currently used in a fastmap.
* @ubi: UBI device description object
* @pnum: the to be checked PEB
*/
static int is_fm_block(struct ubi_device *ubi, int pnum)
{
int i;
if (!ubi->fm)
return 0;
for (i = 0; i < ubi->fm->used_blocks; i++)
if (ubi->fm->e[i]->pnum == pnum)
return 1;
return 0;
}
/** /**
* find_anchor_wl_entry - find wear-leveling entry to used as anchor PEB. * find_anchor_wl_entry - find wear-leveling entry to used as anchor PEB.
* @root: the RB-tree where to look for * @root: the RB-tree where to look for
......
...@@ -585,7 +585,6 @@ static int schedule_erase(struct ubi_device *ubi, struct ubi_wl_entry *e, ...@@ -585,7 +585,6 @@ static int schedule_erase(struct ubi_device *ubi, struct ubi_wl_entry *e,
struct ubi_work *wl_wrk; struct ubi_work *wl_wrk;
ubi_assert(e); ubi_assert(e);
ubi_assert(!is_fm_block(ubi, e->pnum));
dbg_wl("schedule erasure of PEB %d, EC %d, torture %d", dbg_wl("schedule erasure of PEB %d, EC %d, torture %d",
e->pnum, e->ec, torture); e->pnum, e->ec, torture);
...@@ -1045,8 +1044,6 @@ static int erase_worker(struct ubi_device *ubi, struct ubi_work *wl_wrk, ...@@ -1045,8 +1044,6 @@ static int erase_worker(struct ubi_device *ubi, struct ubi_work *wl_wrk,
dbg_wl("erase PEB %d EC %d LEB %d:%d", dbg_wl("erase PEB %d EC %d LEB %d:%d",
pnum, e->ec, wl_wrk->vol_id, wl_wrk->lnum); pnum, e->ec, wl_wrk->vol_id, wl_wrk->lnum);
ubi_assert(!is_fm_block(ubi, e->pnum));
err = sync_erase(ubi, e, wl_wrk->torture); err = sync_erase(ubi, e, wl_wrk->torture);
if (!err) { if (!err) {
/* Fine, we've erased it successfully */ /* Fine, we've erased it successfully */
...@@ -1526,7 +1523,6 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai) ...@@ -1526,7 +1523,6 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai)
e->pnum = aeb->pnum; e->pnum = aeb->pnum;
e->ec = aeb->ec; e->ec = aeb->ec;
ubi_assert(!is_fm_block(ubi, e->pnum));
ubi->lookuptbl[e->pnum] = e; ubi->lookuptbl[e->pnum] = e;
if (schedule_erase(ubi, e, aeb->vol_id, aeb->lnum, 0)) { if (schedule_erase(ubi, e, aeb->vol_id, aeb->lnum, 0)) {
wl_entry_destroy(ubi, e); wl_entry_destroy(ubi, e);
...@@ -1547,7 +1543,6 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai) ...@@ -1547,7 +1543,6 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai)
e->pnum = aeb->pnum; e->pnum = aeb->pnum;
e->ec = aeb->ec; e->ec = aeb->ec;
ubi_assert(e->ec >= 0); ubi_assert(e->ec >= 0);
ubi_assert(!is_fm_block(ubi, e->pnum));
wl_tree_add(e, &ubi->free); wl_tree_add(e, &ubi->free);
ubi->free_count++; ubi->free_count++;
......
#ifndef UBI_WL_H #ifndef UBI_WL_H
#define UBI_WL_H #define UBI_WL_H
#ifdef CONFIG_MTD_UBI_FASTMAP #ifdef CONFIG_MTD_UBI_FASTMAP
static int is_fm_block(struct ubi_device *ubi, int pnum);
static int anchor_pebs_avalible(struct rb_root *root); static int anchor_pebs_avalible(struct rb_root *root);
static void update_fastmap_work_fn(struct work_struct *wrk); static void update_fastmap_work_fn(struct work_struct *wrk);
static struct ubi_wl_entry *find_anchor_wl_entry(struct rb_root *root); 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,10 +17,6 @@ static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi,
struct rb_root *root); struct rb_root *root);
#else /* !CONFIG_MTD_UBI_FASTMAP */ #else /* !CONFIG_MTD_UBI_FASTMAP */
static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi); static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi);
static inline int is_fm_block(struct ubi_device *ubi, int pnum)
{
return 0;
}
static inline void ubi_fastmap_close(struct ubi_device *ubi) { } static inline void ubi_fastmap_close(struct ubi_device *ubi) { }
static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) { } static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) { }
static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi, static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册