mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-19 01:56:21 +07:00
[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: Peter Korsgaard <jacmet@sunsite.dk> Cc: Thomas Gleixner <tglx@linutronix.de> Acked-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
a63ec1b7b7
commit
84e699e6ec
@ -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,
|
|||||||
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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user