diff mbox

[2/2] mtdinfo: fix `--all' for non-consecutive device numbers

Message ID 1327689046-1450-2-git-send-email-computersforpeace@gmail.com
State Accepted
Commit 457c9fe94be95bffaced33029d3ca2986e8179c1
Headers show

Commit Message

Brian Norris Jan. 27, 2012, 6:30 p.m. UTC
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 <brian.foster@maxim-ic.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
---
 ubi-utils/mtdinfo.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Comments

Brian Norris Jan. 27, 2012, 6:32 p.m. UTC | #1
Hmm, didn't CC Brian Foster. Must have mixed up my headers...

On Fri, Jan 27, 2012 at 10:30 AM, Brian Norris
<computersforpeace@gmail.com> wrote:
> 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 <brian.foster@maxim-ic.com>
> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
> ---
>  ubi-utils/mtdinfo.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> 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;
> --
> 1.7.5.4
>
diff mbox

Patch

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;