From ccb24387c66517ebf769b4ec938a1270f83655d6 Mon Sep 17 00:00:00 2001 From: Adriana Kobylak Date: Mon, 30 Jul 2018 12:56:29 -0500 Subject: mtd-utils: Revert "Return correct error number in ubi_get_vol_in" Add mtd-utils upstream patch that fixes a regression on the mtd-utils tools such as ubinfo. Details of the issue which affects mtd-utils 2.0.1 and 2.0.2: http://lists.infradead.org/pipermail/linux-mtd/2018-June/081562.html Upstream-Status: Accepted [http://git.infradead.org/mtd-utils.git/commit/0f833ac73ad631248826386e2918d8571ecf0347] (From OE-Core rev: 41356d2c86d85b199962c3024f25361a709d9180) Signed-off-by: Adriana Kobylak Signed-off-by: Richard Purdie (From Yocto rev: ffb7fd233ce23af06b54bee5b934f7d01271da97) Signed-off-by: Brad Bishop Change-Id: Ic6e244369f5e86d3ee2411bf1f7566a6637622e3 --- ...rn-correct-error-number-in-ubi_get_vol_in.patch | 92 ++++++++++++++++++++++ .../meta/recipes-devtools/mtd/mtd-utils_git.bb | 1 + 2 files changed, 93 insertions(+) create mode 100644 import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch b/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch new file mode 100644 index 000000000..4ece56b9c --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch @@ -0,0 +1,92 @@ +From 0f833ac73ad631248826386e2918d8571ecf0347 Mon Sep 17 00:00:00 2001 +From: David Oberhollenzer +Date: Sat, 9 Jun 2018 16:45:22 +0200 +Subject: [PATCH] Revert "Return correct error number in ubi_get_vol_info1" + +This reverts commit dede98ffb706676309488d7cc660f569548d5930. + +The original commit tried to fix a descrepancy between the implementation +and the documentation by making the implementation comply. + +When making the change, it was overlooked, that ubinfo and ubirename were +written against the implementation instead of the behaviour specified by +the documentation. So were further internal functions like +ubi_get_vol_info1_nm which further breaks ubirmvol. + +A report with an outline of a resulting problem can be read on +the mailing list: + +http://lists.infradead.org/pipermail/linux-mtd/2018-June/081562.html + +From the report: + +steps to reproduce: have mtd-utils 2.0.1 or 2.0.2 + +0. make a bunch of ubi volumes in sequential order + +ubimkvol /dev/ubi0 -s 64KiB -N test1 +ubimkvol /dev/ubi0 -s 64KiB -N test2 +ubimkvol /dev/ubi0 -s 64KiB -N test3 +ubimkvol /dev/ubi0 -s 64KiB -N test4 +.. + +1. delete the test1 volume, making a hole in the volume table + +ubirmvol /dev/ubi0 -N test1 + +2. try an affected tool (i.e. "ubirmvol /dev/ubi0 -N test4" ) + + |root at mr24:/# ubirmvol /dev/ubi0 -N test4 + |ubirmvol: error!: cannot find UBI volume "test4" + | error 19 (No such device) + +or "ubinfo -a" + + | root at mr24:/# ubinfo -a + | UBI version: 1 + | Count of UBI devices: 1 + | UBI control device major/minor: 10:59 + | Present UBI devices: ubi0 + | + | ubi0 + | Volumes count: 11 + | Logical eraseblock size: 15872 bytes, 15.5 KiB + | Total amount of logical eraseblocks: 1952 (30982144 bytes, 29.5 MiB) + | Amount of available logical eraseblocks: 75 (1190400 bytes, 1.1 MiB) + | Maximum count of volumes 92 + | Count of bad physical eraseblocks: 0 + | Count of reserved physical eraseblocks: 40 + | Current maximum erase counter value: 984 + | Minimum input/output unit size: 512 bytes + | Character device major/minor: 251:0 + | ubinfo: error!: libubi failed to probe volume 5 on ubi0 + | error 19 (No such device) + | Present volumes: 0, 1, 2, 3, 4root at mr24:/# + +Reported-by: Christian Lamparter +Signed-off-by: David Oberhollenzer +Upstream-Status: Accepted [http://git.infradead.org/mtd-utils.git/commit/0f833ac73ad631248826386e2918d8571ecf0347] +--- + lib/libubi.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/lib/libubi.c b/lib/libubi.c +index b50e68a..978b433 100644 +--- a/lib/libubi.c ++++ b/lib/libubi.c +@@ -1240,11 +1240,8 @@ int ubi_get_vol_info1(libubi_t desc, int dev_num, int vol_id, + info->dev_num = dev_num; + info->vol_id = vol_id; + +- if (vol_get_major(lib, dev_num, vol_id, &info->major, &info->minor)) { +- if (errno == ENOENT) +- errno = ENODEV; ++ if (vol_get_major(lib, dev_num, vol_id, &info->major, &info->minor)) + return -1; +- } + + ret = vol_read_data(lib->vol_type, dev_num, vol_id, buf, 50); + if (ret < 0) +-- +2.14.4 + diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb index a0e1cf76f..69f2eba1f 100644 --- a/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb +++ b/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb @@ -15,6 +15,7 @@ PV = "2.0.1+${SRCPV}" SRCREV = "9c6173559f95e939e66efb2ec3193d6f3618cf69" SRC_URI = "git://git.infradead.org/mtd-utils.git \ file://add-exclusion-to-mkfs-jffs2-git-2.patch \ + file://0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch \ " S = "${WORKDIR}/git/" -- cgit v1.2.1