public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [RFC] [PATCH] [MTD-UTILS]: flash_lock: fix length being passed
@ 2009-12-02 14:28 Vimal Singh
  2009-12-02 14:33 ` Vimal Singh
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Vimal Singh @ 2009-12-02 14:28 UTC (permalink / raw)
  To: Linux MTD

This patch fixes the 'length' calculation.
Making it:
+       mtdLockInfo.length = (num_sectors - 1) * mtdInfo.erasesize;
Rather:
-       mtdLockInfo.length = num_sectors * mtdInfo.erasesize;

Say there are 240 blocks present in the device. Then:
offset starts from: 0x0
and full size of device: 0x1E00000

doing: 240 * 0x20000 gives -> 0x1E00000
But last block address should be 0x1DE0000 (which spans for 0x20000
bytes, adding upto size of 0x1E00000)

Signed-off-by: Vimal Singh <vimalsingh@ti.com>
---

--- flash_lock.c.org	2009-11-24 19:33:18.000000000 +0530
+++ flash_lock.c	2009-11-24 19:33:13.000000000 +0530
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
 	}

 	mtdLockInfo.start = ofs;
-	mtdLockInfo.length = num_sectors * mtdInfo.erasesize;
+	mtdLockInfo.length = (num_sectors - 1) * mtdInfo.erasesize;
 	if(ioctl(fd, MEMLOCK, &mtdLockInfo))
 	{
 		fprintf(stderr, "Could not lock MTD device: %s\n", argv[1]);
@@ -81,4 +81,3 @@ int main(int argc, char *argv[])

 	return 0;
 }
-

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-12-08 12:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-02 14:28 [RFC] [PATCH] [MTD-UTILS]: flash_lock: fix length being passed Vimal Singh
2009-12-02 14:33 ` Vimal Singh
2009-12-04  8:41 ` Artem Bityutskiy
2009-12-07  6:54   ` Vimal Singh
2009-12-08 12:19 ` Artem Bityutskiy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox