Patchwork UBI: fix unaligned leb_start value

login
register
mail settings
Submitter John Ogness
Date Jan. 21, 2011, 2:39 p.m.
Message ID <87zkqu1fuh.fsf@vostro.fn.ogness.net>
Download mbox | patch
Permalink /patch/79849/
State Accepted
Commit e8cfe009436f9ab6f4234e1f7c406c231747925c
Headers show

Comments

John Ogness - Jan. 21, 2011, 2:39 p.m.
From: John Ogness <john.ogness@linutronix.de>

The wrong header size was used in calculating the data offset. The
data offset should be VID header offset + VID header size (aligned to
the minimum I/O unit).

Signed-off-by: John Ogness <john.ogness@linutronix.de>
---
This patch is against linux-next-20110121.

Since the value is later aligned, this patch does not fix any real
world problem. But it should be fixed nonetheless.

 drivers/mtd/ubi/build.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Artem Bityutskiy - Jan. 25, 2011, 10:42 a.m.
On Fri, 2011-01-21 at 15:39 +0100, John Ogness wrote:
> From: John Ogness <john.ogness@linutronix.de>
> 
> The wrong header size was used in calculating the data offset. The
> data offset should be VID header offset + VID header size (aligned to
> the minimum I/O unit).
> 
> Signed-off-by: John Ogness <john.ogness@linutronix.de>

I've tweaked the commit message and pushed this to the UBI tree, thanks:
http://git.infradead.org/ubi-2.6.git/commit/a25376636fa6cee8017a22144652f276840281bf

> ---
> This patch is against linux-next-20110121.
> 
> Since the value is later aligned, this patch does not fix any real
> world problem. But it should be fixed nonetheless.

Not exactly, this does not fix any real problem because UBI_EC_HDR_SIZE
and UBI_VID_HDR_SIZE are currently equivalent :-)

Thank you!

Patch

diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index f49e49d..a4f47dd 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -737,7 +737,7 @@  static int io_init(struct ubi_device *ubi)
 	}
 
 	/* Similar for the data offset */
-	ubi->leb_start = ubi->vid_hdr_offset + UBI_EC_HDR_SIZE;
+	ubi->leb_start = ubi->vid_hdr_offset + UBI_VID_HDR_SIZE;
 	ubi->leb_start = ALIGN(ubi->leb_start, ubi->min_io_size);
 
 	dbg_msg("vid_hdr_offset   %d", ubi->vid_hdr_offset);