summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-07-26 20:27:45 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-07-26 20:27:45 +0000
commit21a64e41815aee4850b73cc851ed5fcbeabae209 (patch)
treeb1ff00b272befb76ae9a63cd11a5cd14322506bd
parent811d83bef398a5cd310edc406a554ba886d8edb5 (diff)
fix kernel oops in the redboot partition parser when CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is set and there is some free space after the rootfs partition
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11948 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/generic-2.6/patches-2.6.23/070-redboot_space.patch6
-rw-r--r--target/linux/generic-2.6/patches-2.6.24/070-redboot_space.patch6
-rw-r--r--target/linux/generic-2.6/patches-2.6.25/070-redboot_space.patch6
-rw-r--r--target/linux/generic-2.6/patches-2.6.26/070-redboot_space.patch6
4 files changed, 12 insertions, 12 deletions
diff --git a/target/linux/generic-2.6/patches-2.6.23/070-redboot_space.patch b/target/linux/generic-2.6/patches-2.6.23/070-redboot_space.patch
index 2f31555884..b4d57cb535 100644
--- a/target/linux/generic-2.6/patches-2.6.23/070-redboot_space.patch
+++ b/target/linux/generic-2.6/patches-2.6.23/070-redboot_space.patch
@@ -15,15 +15,15 @@
+ 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
-+ else {
++ 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;
diff --git a/target/linux/generic-2.6/patches-2.6.24/070-redboot_space.patch b/target/linux/generic-2.6/patches-2.6.24/070-redboot_space.patch
index 2f31555884..b4d57cb535 100644
--- a/target/linux/generic-2.6/patches-2.6.24/070-redboot_space.patch
+++ b/target/linux/generic-2.6/patches-2.6.24/070-redboot_space.patch
@@ -15,15 +15,15 @@
+ 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
-+ else {
++ 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;
diff --git a/target/linux/generic-2.6/patches-2.6.25/070-redboot_space.patch b/target/linux/generic-2.6/patches-2.6.25/070-redboot_space.patch
index b473d59eca..0f15bab3dd 100644
--- a/target/linux/generic-2.6/patches-2.6.25/070-redboot_space.patch
+++ b/target/linux/generic-2.6/patches-2.6.25/070-redboot_space.patch
@@ -15,15 +15,15 @@
+ 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
-+ else {
++ 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;
diff --git a/target/linux/generic-2.6/patches-2.6.26/070-redboot_space.patch b/target/linux/generic-2.6/patches-2.6.26/070-redboot_space.patch
index b473d59eca..0f15bab3dd 100644
--- a/target/linux/generic-2.6/patches-2.6.26/070-redboot_space.patch
+++ b/target/linux/generic-2.6/patches-2.6.26/070-redboot_space.patch
@@ -15,15 +15,15 @@
+ 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
-+ else {
++ 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;