Commit d99383b0 authored by Artem Bityutskiy's avatar Artem Bityutskiy

UBI: change the interface of a debugging check function

This is a minor preparational patch which changes the
'paranoid_check_in_wl_tree()' function interface by adding the 'ubi' parameter
which will be needed there in the next patch.

And while on it, add "const" qualifier to the 'ubi' parameter of the
'paranoid_check_in_pq()' function.
Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
parent 55922c9d
/* /*
* @ubi: UBI device description object
* Copyright (c) International Business Machines Corp., 2006 * Copyright (c) International Business Machines Corp., 2006
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -163,12 +164,14 @@ struct ubi_work { ...@@ -163,12 +164,14 @@ struct ubi_work {
#ifdef CONFIG_MTD_UBI_DEBUG #ifdef CONFIG_MTD_UBI_DEBUG
static int paranoid_check_ec(struct ubi_device *ubi, int pnum, int ec); static int paranoid_check_ec(struct ubi_device *ubi, int pnum, int ec);
static int paranoid_check_in_wl_tree(struct ubi_wl_entry *e, static int paranoid_check_in_wl_tree(const struct ubi_device *ubi,
struct ubi_wl_entry *e,
struct rb_root *root); struct rb_root *root);
static int paranoid_check_in_pq(struct ubi_device *ubi, struct ubi_wl_entry *e); static int paranoid_check_in_pq(const struct ubi_device *ubi,
struct ubi_wl_entry *e);
#else #else
#define paranoid_check_ec(ubi, pnum, ec) 0 #define paranoid_check_ec(ubi, pnum, ec) 0
#define paranoid_check_in_wl_tree(e, root) #define paranoid_check_in_wl_tree(ubi, e, root)
#define paranoid_check_in_pq(ubi, e) 0 #define paranoid_check_in_pq(ubi, e) 0
#endif #endif
...@@ -449,7 +452,7 @@ int ubi_wl_get_peb(struct ubi_device *ubi, int dtype) ...@@ -449,7 +452,7 @@ int ubi_wl_get_peb(struct ubi_device *ubi, int dtype)
BUG(); BUG();
} }
paranoid_check_in_wl_tree(e, &ubi->free); paranoid_check_in_wl_tree(ubi, e, &ubi->free);
/* /*
* Move the physical eraseblock to the protection queue where it will * Move the physical eraseblock to the protection queue where it will
...@@ -712,7 +715,7 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk, ...@@ -712,7 +715,7 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk,
e1->ec, e2->ec); e1->ec, e2->ec);
goto out_cancel; goto out_cancel;
} }
paranoid_check_in_wl_tree(e1, &ubi->used); paranoid_check_in_wl_tree(ubi, e1, &ubi->used);
rb_erase(&e1->u.rb, &ubi->used); rb_erase(&e1->u.rb, &ubi->used);
dbg_wl("move PEB %d EC %d to PEB %d EC %d", dbg_wl("move PEB %d EC %d to PEB %d EC %d",
e1->pnum, e1->ec, e2->pnum, e2->ec); e1->pnum, e1->ec, e2->pnum, e2->ec);
...@@ -721,12 +724,12 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk, ...@@ -721,12 +724,12 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk,
scrubbing = 1; scrubbing = 1;
e1 = rb_entry(rb_first(&ubi->scrub), struct ubi_wl_entry, u.rb); e1 = rb_entry(rb_first(&ubi->scrub), struct ubi_wl_entry, u.rb);
e2 = find_wl_entry(&ubi->free, WL_FREE_MAX_DIFF); e2 = find_wl_entry(&ubi->free, WL_FREE_MAX_DIFF);
paranoid_check_in_wl_tree(e1, &ubi->scrub); paranoid_check_in_wl_tree(ubi, e1, &ubi->scrub);
rb_erase(&e1->u.rb, &ubi->scrub); rb_erase(&e1->u.rb, &ubi->scrub);
dbg_wl("scrub PEB %d to PEB %d", e1->pnum, e2->pnum); dbg_wl("scrub PEB %d to PEB %d", e1->pnum, e2->pnum);
} }
paranoid_check_in_wl_tree(e2, &ubi->free); paranoid_check_in_wl_tree(ubi, e2, &ubi->free);
rb_erase(&e2->u.rb, &ubi->free); rb_erase(&e2->u.rb, &ubi->free);
ubi->move_from = e1; ubi->move_from = e1;
ubi->move_to = e2; ubi->move_to = e2;
...@@ -1169,13 +1172,13 @@ int ubi_wl_put_peb(struct ubi_device *ubi, int pnum, int torture) ...@@ -1169,13 +1172,13 @@ int ubi_wl_put_peb(struct ubi_device *ubi, int pnum, int torture)
return 0; return 0;
} else { } else {
if (in_wl_tree(e, &ubi->used)) { if (in_wl_tree(e, &ubi->used)) {
paranoid_check_in_wl_tree(e, &ubi->used); paranoid_check_in_wl_tree(ubi, e, &ubi->used);
rb_erase(&e->u.rb, &ubi->used); rb_erase(&e->u.rb, &ubi->used);
} else if (in_wl_tree(e, &ubi->scrub)) { } else if (in_wl_tree(e, &ubi->scrub)) {
paranoid_check_in_wl_tree(e, &ubi->scrub); paranoid_check_in_wl_tree(ubi, e, &ubi->scrub);
rb_erase(&e->u.rb, &ubi->scrub); rb_erase(&e->u.rb, &ubi->scrub);
} else if (in_wl_tree(e, &ubi->erroneous)) { } else if (in_wl_tree(e, &ubi->erroneous)) {
paranoid_check_in_wl_tree(e, &ubi->erroneous); paranoid_check_in_wl_tree(ubi, e, &ubi->erroneous);
rb_erase(&e->u.rb, &ubi->erroneous); rb_erase(&e->u.rb, &ubi->erroneous);
ubi->erroneous_peb_count -= 1; ubi->erroneous_peb_count -= 1;
ubi_assert(ubi->erroneous_peb_count >= 0); ubi_assert(ubi->erroneous_peb_count >= 0);
...@@ -1242,7 +1245,7 @@ int ubi_wl_scrub_peb(struct ubi_device *ubi, int pnum) ...@@ -1242,7 +1245,7 @@ int ubi_wl_scrub_peb(struct ubi_device *ubi, int pnum)
} }
if (in_wl_tree(e, &ubi->used)) { if (in_wl_tree(e, &ubi->used)) {
paranoid_check_in_wl_tree(e, &ubi->used); paranoid_check_in_wl_tree(ubi, e, &ubi->used);
rb_erase(&e->u.rb, &ubi->used); rb_erase(&e->u.rb, &ubi->used);
} else { } else {
int err; int err;
...@@ -1609,13 +1612,15 @@ static int paranoid_check_ec(struct ubi_device *ubi, int pnum, int ec) ...@@ -1609,13 +1612,15 @@ static int paranoid_check_ec(struct ubi_device *ubi, int pnum, int ec)
/** /**
* paranoid_check_in_wl_tree - check that wear-leveling entry is in WL RB-tree. * paranoid_check_in_wl_tree - check that wear-leveling entry is in WL RB-tree.
* @ubi: UBI device description object
* @e: the wear-leveling entry to check * @e: the wear-leveling entry to check
* @root: the root of the tree * @root: the root of the tree
* *
* This function returns zero if @e is in the @root RB-tree and %-EINVAL if it * This function returns zero if @e is in the @root RB-tree and %-EINVAL if it
* is not. * is not.
*/ */
static int paranoid_check_in_wl_tree(struct ubi_wl_entry *e, static int paranoid_check_in_wl_tree(const struct ubi_device *ubi,
struct ubi_wl_entry *e,
struct rb_root *root) struct rb_root *root)
{ {
if (!(ubi_chk_flags & UBI_CHK_GEN)) if (!(ubi_chk_flags & UBI_CHK_GEN))
...@@ -1638,7 +1643,8 @@ static int paranoid_check_in_wl_tree(struct ubi_wl_entry *e, ...@@ -1638,7 +1643,8 @@ static int paranoid_check_in_wl_tree(struct ubi_wl_entry *e,
* *
* This function returns zero if @e is in @ubi->pq and %-EINVAL if it is not. * This function returns zero if @e is in @ubi->pq and %-EINVAL if it is not.
*/ */
static int paranoid_check_in_pq(struct ubi_device *ubi, struct ubi_wl_entry *e) static int paranoid_check_in_pq(const struct ubi_device *ubi,
struct ubi_wl_entry *e)
{ {
struct ubi_wl_entry *p; struct ubi_wl_entry *p;
int i; int i;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment