aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-07-26 20:27:45 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-07-26 20:27:45 +0000
commit129fcaffb31e53d5f21b4b77bfea84158d33fadf (patch)
tree193cf3f1fe88737fc653bb2e31dad580da2f7b99
parentc385ca9c81264b3e669df791f03f90f73cbaca98 (diff)
downloadupstream-129fcaffb31e53d5f21b4b77bfea84158d33fadf.tar.gz
upstream-129fcaffb31e53d5f21b4b77bfea84158d33fadf.tar.bz2
upstream-129fcaffb31e53d5f21b4b77bfea84158d33fadf.zip
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
SVN-Revision: 11948
-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;