1 diff -urN linux-2.6.19/drivers/mtd/redboot.c linux-2.6.19.new/drivers/mtd/redboot.c
2 --- linux-2.6.19/drivers/mtd/redboot.c 2006-12-18 17:09:14.000000000 +0100
3 +++ linux-2.6.19.new/drivers/mtd/redboot.c 2006-12-18 17:14:26.000000000 +0100
8 -static int parse_redboot_partitions(struct mtd_info *master,
9 +int parse_redboot_partitions(struct mtd_info *master,
10 struct mtd_partition **pparts,
11 unsigned long fis_origin)
18 + for (i = 0; i < numslots; i++) {
19 + if (!strncmp(buf[i].name, "RedBoot", 8)) {
20 + fis_origin = (buf[i].flash_base & (master->size << 1) - 1);
25 for (i = 0; i < numslots; i++) {
26 struct fis_list *new_fl, **prev;
29 new_fl->img = &buf[i];
31 buf[i].flash_base -= fis_origin;
33 - buf[i].flash_base &= master->size-1;
35 + buf[i].flash_base &= (master->size << 1) - 1;
37 /* I'm sure the JFFS2 code has done me permanent damage.
38 * I now think the following is _normal_