diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch b/target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch new file mode 100644 index 0000000000..c67cdb0f82 --- /dev/null +++ b/target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch @@ -0,0 +1,46 @@ +From 17e6b7bb84649ffcbec11b3e3e933294d8856462 Mon Sep 17 00:00:00 2001 +From: Huang Shijie <b32955@freescale.com> +Date: Wed, 18 Sep 2013 10:17:39 +0800 +Subject: [PATCH] ENGR00279980 ubi: attach: do not return -EINVAL if the + mtd->numeraseregions is 1 + +If the master mtd does not have any slave mtd partitions, +and its numeraseregions is one(only has one erease block), and +we attach the master mtd with : ubiattach -m 0 -d 0 + +We will meet the error: +------------------------------------------------------- +root@freescale ~$ ubiattach /dev/ubi_ctrl -m 0 -d 0 +UBI: attaching mtd0 to ubi0 +UBI error: io_init: multiple regions, not implemented +ubiattach: error!: cannot attach mtd0 + error 22 (Invalid argument) +------------------------------------------------------- + +In fact, if there is only one "erase block", we should not +prevent the attach. + +This patch fixes it. + +Signed-off-by: Huang Shijie <b32955@freescale.com> +(cherry picked from commit 361cdc47fc4c4db31c5485560cdabd94f409bd81) +(cherry picked from commit ebee7d74914fad3cf7223af84496811c9d2488a1) + +Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com> + +Signed-off-by: Han Xu <han.xu@nxp.com> +--- + drivers/mtd/ubi/build.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/mtd/ubi/build.c ++++ b/drivers/mtd/ubi/build.c +@@ -576,7 +576,7 @@ static int io_init(struct ubi_device *ub + dbg_gen("sizeof(struct ubi_ainf_peb) %zu", sizeof(struct ubi_ainf_peb)); + dbg_gen("sizeof(struct ubi_wl_entry) %zu", sizeof(struct ubi_wl_entry)); + +- if (ubi->mtd->numeraseregions != 0) { ++ if (ubi->mtd->numeraseregions > 1) { + /* + * Some flashes have several erase regions. Different regions + * may have different eraseblock size and other |