Fix docg3 read align bug
Robert Jarzmik
robert.jarzmik at free.fr
Sun Mar 25 17:47:29 EDT 2012
Hi Artem,
I sent not long ago a patch for unaligned reads. And ... I made an error. I have
a patch to patch my previous submission. I wonder if this can be squashed in, or
requires an incremental commit. Tell me what you want to do, the patch is at the
end of the mail.
I hope I have not overseen another corner case, I'll recheck tomorrow evening
(GMT+1).
Cheers.
--
Robert
---8>---
>From c013bc50a456c3c127eae3f1751369dec1e32221 Mon Sep 17 00:00:00 2001
From: Robert Jarzmik <robert.jarzmik at free.fr>
Date: Sun, 25 Mar 2012 23:26:05 +0200
Subject: [PATCH] mtd: docg3 refix docg3 lessen read alignement burden
After the fix "mtd: docg3 less read alignement burden", a corner case
where read is unaligned an length read is small was left. As a full
page must be read, the remaining data bytes to read number was
miscalculated, leading to unreadable LEBs by UBIFS.
Signed-off-by: Robert Jarzmik <robert.jarzmik at free.fr>
---
drivers/mtd/devices/docg3.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
index 7ced089..8272c02 100644
--- a/drivers/mtd/devices/docg3.c
+++ b/drivers/mtd/devices/docg3.c
@@ -893,7 +893,8 @@ static int doc_read_oob(struct mtd_info *mtd, loff_t from,
ret = doc_read_page_getbytes(docg3, nbdata, buf, 0);
if (ret < nbdata)
goto err_in_read;
- doc_read_page_getbytes(docg3, DOC_LAYOUT_PAGE_SIZE - nbdata,
+ doc_read_page_getbytes(docg3,
+ DOC_LAYOUT_PAGE_SIZE - nbdata - skip,
NULL, 0);
ret = doc_read_page_getbytes(docg3, nboob, oobbuf, 0);
if (ret < nboob)
--
1.7.5.4
More information about the linux-mtd
mailing list