mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 23:02:22 +02:00
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 <anoo@linux.ibm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
9fe21b8dd7
commit
ffb7fd233c
@@ -0,0 +1,92 @@
|
||||
From 0f833ac73ad631248826386e2918d8571ecf0347 Mon Sep 17 00:00:00 2001
|
||||
From: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
|
||||
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 <chunkeey@gmail.com>
|
||||
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
|
||||
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
|
||||
|
||||
@@ -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/"
|
||||
|
||||
Reference in New Issue
Block a user