[OE-core] [PATCH] mtd-utils: Revert "Return correct error number in ubi_get_vol_in"

2018-08-22 Thread Adriana Kobylak



> 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"

2018-07-30 Thread Adriana Kobylak
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