diff -urN linux.old/drivers/mtd/redboot.c linux.dev/drivers/mtd/redboot.c --- linux.old/drivers/mtd/redboot.c 2006-12-14 23:53:29.000000000 +0100 +++ linux.dev/drivers/mtd/redboot.c 2006-12-16 04:23:42.000000000 +0100 @@ -64,6 +64,7 @@ if (!buf) return -ENOMEM; +restart: if ( directory < 0 ) offset = master->size + directory*master->erasesize; else @@ -140,6 +141,11 @@ } if (i == numslots) { /* Didn't find it */ + if (offset + master->erasesize < master->size) { + /* not at the end of the flash yet, maybe next block :) */ + directory++; + goto restart; + } printk(KERN_NOTICE "No RedBoot partition table detected in %s\n", master->name); ret = 0;