Commit 84e699e6 authored by Peter Korsgaard's avatar Peter Korsgaard Committed by Linus Torvalds

[PATCH] mtd/redboot: Handle holes in fis table

Redboot simply sets the first character of a fis entry to 0xff on "fis
delete".  The kernel redboot parser stops parsing on such an entry, and
without this patch any entries after a deleted image would not be detected.
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent a63ec1b7
...@@ -85,10 +85,6 @@ static int parse_redboot_partitions(struct mtd_info *master, ...@@ -85,10 +85,6 @@ static int parse_redboot_partitions(struct mtd_info *master,
numslots = (master->erasesize / sizeof(struct fis_image_desc)); numslots = (master->erasesize / sizeof(struct fis_image_desc));
for (i = 0; i < numslots; i++) { for (i = 0; i < numslots; i++) {
if (buf[i].name[0] == 0xff) {
i = numslots;
break;
}
if (!memcmp(buf[i].name, "FIS directory", 14)) { if (!memcmp(buf[i].name, "FIS directory", 14)) {
/* This is apparently the FIS directory entry for the /* This is apparently the FIS directory entry for the
* FIS directory itself. The FIS directory size is * FIS directory itself. The FIS directory size is
...@@ -128,7 +124,7 @@ static int parse_redboot_partitions(struct mtd_info *master, ...@@ -128,7 +124,7 @@ static int parse_redboot_partitions(struct mtd_info *master,
struct fis_list *new_fl, **prev; struct fis_list *new_fl, **prev;
if (buf[i].name[0] == 0xff) if (buf[i].name[0] == 0xff)
break; continue;
if (!redboot_checksum(&buf[i])) if (!redboot_checksum(&buf[i]))
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment