rename target/linux/generic-2.6 to generic
[openwrt/svn-archive/archive.git] / target / linux / generic-2.6 / patches-2.6.32 / 071-redboot_boardconfig.patch
diff --git a/target/linux/generic-2.6/patches-2.6.32/071-redboot_boardconfig.patch b/target/linux/generic-2.6/patches-2.6.32/071-redboot_boardconfig.patch
deleted file mode 100644 (file)
index f9bc4fe..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
---- a/drivers/mtd/redboot.c
-+++ b/drivers/mtd/redboot.c
-@@ -11,6 +11,8 @@
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/partitions.h>
-+#define BOARD_CONFIG_PART             "boardconfig"
-+
- struct fis_image_desc {
-     unsigned char name[16];      // Null terminated name
-     uint32_t    flash_base;    // Address within FLASH of image
-@@ -41,6 +43,7 @@ static int parse_redboot_partitions(stru
-                              struct mtd_partition **pparts,
-                              unsigned long fis_origin)
- {
-+      unsigned long max_offset = 0;
-       int nrparts = 0;
-       struct fis_image_desc *buf;
-       struct mtd_partition *parts;
-@@ -209,14 +212,14 @@ static int parse_redboot_partitions(stru
-               }
-       }
- #endif
--      parts = kzalloc(sizeof(*parts)*nrparts + nulllen + namelen, GFP_KERNEL);
-+      parts = kzalloc(sizeof(*parts) * (nrparts + 1) + nulllen + namelen + sizeof(BOARD_CONFIG_PART), GFP_KERNEL);
-       if (!parts) {
-               ret = -ENOMEM;
-               goto out;
-       }
--      nullname = (char *)&parts[nrparts];
-+      nullname = (char *)&parts[nrparts + 1];
- #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
-       if (nulllen > 0) {
-               strcpy(nullname, nullstring);
-@@ -235,6 +238,8 @@ static int parse_redboot_partitions(stru
-       }
- #endif
-       for ( ; i<nrparts; i++) {
-+              if(max_offset < buf[i].flash_base + buf[i].size)
-+                      max_offset = buf[i].flash_base + buf[i].size;
-               parts[i].size = fl->img->size;
-               parts[i].offset = fl->img->flash_base;
-               parts[i].name = names;
-@@ -268,6 +273,14 @@ static int parse_redboot_partitions(stru
-               fl = fl->next;
-               kfree(tmp_fl);
-       }
-+      if(master->size - max_offset >= master->erasesize)
-+      {
-+              parts[nrparts].size = master->size - max_offset;
-+              parts[nrparts].offset = max_offset;
-+              parts[nrparts].name = names;
-+              strcpy(names, BOARD_CONFIG_PART);
-+              nrparts++;
-+      }
-       ret = nrparts;
-       *pparts = parts;
-  out: