diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-09-07 17:02:09 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-09-07 17:02:09 -0400 |
| commit | 78f220a84f464ff1a74d1b646e9b96bdddc47050 (patch) | |
| tree | 9a7b8bd85752f029d84aaef5ff8d189022ea80ff | |
| parent | 4848d7156943085c0d4ca0b0575474af25673699 (diff) | |
| parent | d3f6e6c666c0f68991d785177c4c62fcd1d651f2 (diff) | |
Merge branch 'linux-next' of git://git.infradead.org/ubi-2.6
* 'linux-next' of git://git.infradead.org/ubi-2.6:
UBI: do not oops when erroneous PEB is scheduled for scrubbing
UBI: fix kconfig unmet dependency
UBI: fix forward compatibility
UBI: eliminate update of list_for_each_entry loop cursor
| -rw-r--r-- | drivers/mtd/ubi/Kconfig.debug | 2 | ||||
| -rw-r--r-- | drivers/mtd/ubi/cdev.c | 12 | ||||
| -rw-r--r-- | drivers/mtd/ubi/scan.c | 2 | ||||
| -rw-r--r-- | drivers/mtd/ubi/wl.c | 3 |
4 files changed, 10 insertions, 9 deletions
diff --git a/drivers/mtd/ubi/Kconfig.debug b/drivers/mtd/ubi/Kconfig.debug index 2246f154e2f7..61f6e5e40458 100644 --- a/drivers/mtd/ubi/Kconfig.debug +++ b/drivers/mtd/ubi/Kconfig.debug | |||
| @@ -6,7 +6,7 @@ config MTD_UBI_DEBUG | |||
| 6 | depends on SYSFS | 6 | depends on SYSFS |
| 7 | depends on MTD_UBI | 7 | depends on MTD_UBI |
| 8 | select DEBUG_FS | 8 | select DEBUG_FS |
| 9 | select KALLSYMS_ALL | 9 | select KALLSYMS_ALL if KALLSYMS && DEBUG_KERNEL |
| 10 | help | 10 | help |
| 11 | This option enables UBI debugging. | 11 | This option enables UBI debugging. |
| 12 | 12 | ||
diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c index 4dfa6b90c21c..3d2d1a69e9a0 100644 --- a/drivers/mtd/ubi/cdev.c +++ b/drivers/mtd/ubi/cdev.c | |||
| @@ -798,18 +798,18 @@ static int rename_volumes(struct ubi_device *ubi, | |||
| 798 | goto out_free; | 798 | goto out_free; |
| 799 | } | 799 | } |
| 800 | 800 | ||
| 801 | re = kzalloc(sizeof(struct ubi_rename_entry), GFP_KERNEL); | 801 | re1 = kzalloc(sizeof(struct ubi_rename_entry), GFP_KERNEL); |
| 802 | if (!re) { | 802 | if (!re1) { |
| 803 | err = -ENOMEM; | 803 | err = -ENOMEM; |
| 804 | ubi_close_volume(desc); | 804 | ubi_close_volume(desc); |
| 805 | goto out_free; | 805 | goto out_free; |
| 806 | } | 806 | } |
| 807 | 807 | ||
| 808 | re->remove = 1; | 808 | re1->remove = 1; |
| 809 | re->desc = desc; | 809 | re1->desc = desc; |
| 810 | list_add(&re->list, &rename_list); | 810 | list_add(&re1->list, &rename_list); |
| 811 | dbg_msg("will remove volume %d, name \"%s\"", | 811 | dbg_msg("will remove volume %d, name \"%s\"", |
| 812 | re->desc->vol->vol_id, re->desc->vol->name); | 812 | re1->desc->vol->vol_id, re1->desc->vol->name); |
| 813 | } | 813 | } |
| 814 | 814 | ||
| 815 | mutex_lock(&ubi->device_mutex); | 815 | mutex_lock(&ubi->device_mutex); |
diff --git a/drivers/mtd/ubi/scan.c b/drivers/mtd/ubi/scan.c index 372a15ac9995..69b52e9c9489 100644 --- a/drivers/mtd/ubi/scan.c +++ b/drivers/mtd/ubi/scan.c | |||
| @@ -843,7 +843,7 @@ static int process_eb(struct ubi_device *ubi, struct ubi_scan_info *si, | |||
| 843 | case UBI_COMPAT_DELETE: | 843 | case UBI_COMPAT_DELETE: |
| 844 | ubi_msg("\"delete\" compatible internal volume %d:%d" | 844 | ubi_msg("\"delete\" compatible internal volume %d:%d" |
| 845 | " found, will remove it", vol_id, lnum); | 845 | " found, will remove it", vol_id, lnum); |
| 846 | err = add_to_list(si, pnum, ec, &si->corr); | 846 | err = add_to_list(si, pnum, ec, &si->erase); |
| 847 | if (err) | 847 | if (err) |
| 848 | return err; | 848 | return err; |
| 849 | return 0; | 849 | return 0; |
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c index ee7b1d8fbb92..97a435672eaf 100644 --- a/drivers/mtd/ubi/wl.c +++ b/drivers/mtd/ubi/wl.c | |||
| @@ -1212,7 +1212,8 @@ int ubi_wl_scrub_peb(struct ubi_device *ubi, int pnum) | |||
| 1212 | retry: | 1212 | retry: |
| 1213 | spin_lock(&ubi->wl_lock); | 1213 | spin_lock(&ubi->wl_lock); |
| 1214 | e = ubi->lookuptbl[pnum]; | 1214 | e = ubi->lookuptbl[pnum]; |
| 1215 | if (e == ubi->move_from || in_wl_tree(e, &ubi->scrub)) { | 1215 | if (e == ubi->move_from || in_wl_tree(e, &ubi->scrub) || |
| 1216 | in_wl_tree(e, &ubi->erroneous)) { | ||
| 1216 | spin_unlock(&ubi->wl_lock); | 1217 | spin_unlock(&ubi->wl_lock); |
| 1217 | return 0; | 1218 | return 0; |
| 1218 | } | 1219 | } |
