From: Brian Norris Date: Fri, 27 Jan 2012 18:30:46 +0000 (-0800) Subject: mtdinfo: fix `--all' for non-consecutive device numbers X-Git-Tag: v1.5.0~12 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=457c9fe94be95bffaced33029d3ca2986e8179c1;p=mtd-utils.git mtdinfo: fix `--all' for non-consecutive device numbers When we have assigned non-consecutive device numbers to our MTD devices, then we run `mtdinfo --all', we get errors once mtdinfo tries to process the devices in the "hole". For instance, suppose that at boot time, we have one MTD (/dev/mtd0) then perform a sequence like the following: # modprobe mtdram # modprobe nandsim # rmmod mtdram Then at this point, we have should have devices 0 and 2 without 1. Then: # mtdinfo --all ... mtdinfo: error!: mtd1 does not correspond to any existing MTD device We add a check to first see if device is present, then continue to the next ID if it doesn't exist. Reported-by: Brian Foster Signed-off-by: Brian Norris Signed-off-by: Artem Bityutskiy --- diff --git a/ubi-utils/mtdinfo.c b/ubi-utils/mtdinfo.c index ead4bce..d25595a 100644 --- a/ubi-utils/mtdinfo.c +++ b/ubi-utils/mtdinfo.c @@ -378,6 +378,8 @@ static int print_general_info(libmtd_t libmtd, const struct mtd_info *mtd_info, for (i = mtd_info->lowest_mtd_num; i <= mtd_info->highest_mtd_num; i++) { + if (!mtd_dev_present(libmtd, i)) + continue; err = print_dev_info(libmtd, mtd_info, i); if (err) return err;