| From 431e1ecabddcd7cbba237182ddf431771f98bb4c Mon Sep 17 00:00:00 2001 |
| From: Felix Radensky <felix@embedded-sol.com> |
| Date: Mon, 25 Apr 2011 01:57:12 +0300 |
| Subject: mtd: mtdconcat: fix NAND OOB write |
| |
| From: Felix Radensky <felix@embedded-sol.com> |
| |
| commit 431e1ecabddcd7cbba237182ddf431771f98bb4c upstream. |
| |
| Currently mtdconcat is broken for NAND. An attemtpt to create |
| JFFS2 filesystem on concatenation of several NAND devices fails |
| with OOB write errors. This patch fixes that problem. |
| |
| Signed-off-by: Felix Radensky <felix@embedded-sol.com> |
| Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> |
| Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/mtd/mtdconcat.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/mtd/mtdconcat.c |
| +++ b/drivers/mtd/mtdconcat.c |
| @@ -306,7 +306,7 @@ concat_write_oob(struct mtd_info *mtd, l |
| if (!(mtd->flags & MTD_WRITEABLE)) |
| return -EROFS; |
| |
| - ops->retlen = 0; |
| + ops->retlen = ops->oobretlen = 0; |
| |
| for (i = 0; i < concat->num_subdev; i++) { |
| struct mtd_info *subdev = concat->subdev[i]; |
| @@ -321,7 +321,7 @@ concat_write_oob(struct mtd_info *mtd, l |
| devops.len = subdev->size - to; |
| |
| err = subdev->write_oob(subdev, to, &devops); |
| - ops->retlen += devops.retlen; |
| + ops->retlen += devops.oobretlen; |
| if (err) |
| return err; |
| |