diff options
Diffstat (limited to 'target/linux/generic/patches-3.0/420-redboot_space.patch')
| -rw-r--r-- | target/linux/generic/patches-3.0/420-redboot_space.patch | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.0/420-redboot_space.patch b/target/linux/generic/patches-3.0/420-redboot_space.patch new file mode 100644 index 000000000..fb6700b07 --- /dev/null +++ b/target/linux/generic/patches-3.0/420-redboot_space.patch @@ -0,0 +1,30 @@ +--- a/drivers/mtd/redboot.c ++++ b/drivers/mtd/redboot.c +@@ -267,14 +267,21 @@ static int parse_redboot_partitions(stru + #endif + 		names += strlen(names)+1; +  +-#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED + 		if(fl->next && fl->img->flash_base + fl->img->size + master->erasesize <= fl->next->img->flash_base) { +-			i++; +-			parts[i].offset = parts[i-1].size + parts[i-1].offset; +-			parts[i].size = fl->next->img->flash_base - parts[i].offset; +-			parts[i].name = nullname; +-		} ++			if (!strcmp(parts[i].name, "rootfs")) { ++				parts[i].size = fl->next->img->flash_base; ++				parts[i].size &= ~(master->erasesize - 1); ++				parts[i].size -= parts[i].offset; ++#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED ++				nrparts--; ++			} else { ++				i++; ++				parts[i].offset = parts[i-1].size + parts[i-1].offset; ++				parts[i].size = fl->next->img->flash_base - parts[i].offset; ++				parts[i].name = nullname; + #endif ++			} ++		} + 		tmp_fl = fl; + 		fl = fl->next; + 		kfree(tmp_fl);  | 
