[OE-core] [PATCH] mtd-utils: Revert "Return correct error number in ubi_get_vol_in"
> On Jul 30, 2018, at 12:56 PM, Adriana Kobylak wrote: > > 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] > > Signed-off-by: Adriana Kobylak > --- > ...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 > meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch > > diff --git > a/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch > > b/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch > new file mode 100644 > index 000..4ece56b > --- /dev/null > +++ > b/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, >major, >minor)) { > +-if (errno == ENOENT) > +-errno = ENODEV; > ++if (vol_get_major(lib, dev_num, vol_id, >major, >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/meta/recipes-devtools/mtd/mtd-utils_git.bb > b/meta/recipes-devtools/mtd/mtd-utils_git.bb > index 97a3e0c..f53c6c1 100644 > --- a/meta/recipes-devtools/mtd/mtd-utils_git.bb > +++ b/meta/recipes-devtools/mtd/mtd-utils_git.bb > @@ -15,6 +15,7 @@ PV = "2.0.2+${SRCPV}" > SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659" > SRC_URI =
[OE-core] [PATCH] 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 patch: http://git.infradead.org/mtd-utils.git/commit/0f833ac73ad631248826386e2918d8571ecf0347 Signed-off-by: Adriana Kobylak --- ...rn-correct-error-number-in-ubi_get_vol_in.patch | 91 ++ meta/recipes-devtools/mtd/mtd-utils_git.bb | 1 + 2 files changed, 92 insertions(+) create mode 100644 meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch diff --git a/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch b/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch new file mode 100644 index 000..aaed353 --- /dev/null +++ b/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch @@ -0,0 +1,91 @@ +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 +--- + 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, >major, >minor)) { +- if (errno == ENOENT) +- errno = ENODEV; ++ if (vol_get_major(lib, dev_num, vol_id, >major, >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/meta/recipes-devtools/mtd/mtd-utils_git.bb b/meta/recipes-devtools/mtd/mtd-utils_git.bb index 97a3e0c..f53c6c1 100644 --- a/meta/recipes-devtools/mtd/mtd-utils_git.bb +++ b/meta/recipes-devtools/mtd/mtd-utils_git.bb @@ -15,6 +15,7 @@ PV = "2.0.2+${SRCPV}" SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659" 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/" -- 1.8.3.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core