[PATCH] fix for mtd partitions for erase_size != 2^X

Peter Menzebach pm-mtd at mw-itcon.de
Fri Sep 23 14:02:42 EDT 2005


Here a trivial patch,
which allows correct creation of mtd partitions, which have erase sizes
which are not a power of 2.

Best regards
Peter

Sorry, I didn't succeed to get the patch accepted by the mailing list as
attachment.

--- drivers/mtd/mtdpart.c.orig    2005-09-23 09:28:07.000000000 +0200
+++ drivers/mtd/mtdpart.c    2005-09-23 09:29:37.000000000 +0200
@@ -465,9 +465,9 @@
          if (slave->offset == MTDPART_OFS_APPEND)
              slave->offset = cur_offset;
          if (slave->offset == MTDPART_OFS_NXTBLK) {
-            u_int32_t emask = master->erasesize-1;
-            slave->offset = (cur_offset + emask) & ~emask;
-            if (slave->offset != cur_offset) {
+            slave->offset = cur_offset;
+            if ((cur_offset % master->erasesize) != 0) {
+                slave->offset = ((cur_offset / master->erasesize) + 1) 
* master->erasesize;
                  printk(KERN_NOTICE "Moving partition %d: "
                         "0x%08x -> 0x%08x\n", i,
                         cur_offset, slave->offset);




More information about the linux-mtd mailing list