All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxim Levitsky <maximlevitsky@gmail.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: linux-mtd <linux-mtd@lists.infradead.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Alex Dubov <oakad@yahoo.com>, joern <joern@logfs.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	<stanley.miao@windriver.com>, Vitaly Wool <vitalywool@gmail.com>,
	Maxim Levitsky <maximlevitsky@gmail.com>
Subject: [PATCH 08/15] MTD: nand: make MTD_OOB_PLACE work correctly.
Date: Mon, 22 Feb 2010 20:39:35 +0200	[thread overview]
Message-ID: <1266863982-5258-9-git-send-email-maximlevitsky@gmail.com> (raw)
In-Reply-To: <1266863982-5258-1-git-send-email-maximlevitsky@gmail.com>

MTD_OOB_PLACE is supposed to read/write the raw oob data similiar to the MTD_OOB_RAW
however due to a bug, currently it is not possible to read more data that
is specified by the oob 'free' regions.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 drivers/mtd/nand/nand_base.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 7442b3a..cada4cf 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -1420,6 +1420,9 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,
 	int ret = 0;
 	uint32_t readlen = ops->len;
 	uint32_t oobreadlen = ops->ooblen;
+	uint32_t max_oobsize = ops->mode == MTD_OOB_AUTO ?
+		mtd->oobavail : mtd->oobsize;
+
 	uint8_t *bufpoi, *oob, *buf;
 
 	stats = mtd->ecc_stats;
@@ -1470,10 +1473,11 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,
 			buf += bytes;
 
 			if (unlikely(oob)) {
+
 				/* Raw mode does data:oob:data:oob */
 				if (ops->mode != MTD_OOB_RAW) {
 					int toread = min(oobreadlen,
-						chip->ecc.layout->oobavail);
+								max_oobsize);
 					if (toread) {
 						oob = nand_transfer_oob(chip,
 							oob, ops, toread);
-- 
1.6.3.3


WARNING: multiple messages have this Message-ID (diff)
From: Maxim Levitsky <maximlevitsky@gmail.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Maxim Levitsky <maximlevitsky@gmail.com>,
	Alex Dubov <oakad@yahoo.com>, Vitaly Wool <vitalywool@gmail.com>,
	joern <joern@logfs.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	stanley.miao@windriver.com,
	linux-mtd <linux-mtd@lists.infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: [PATCH 08/15] MTD: nand: make MTD_OOB_PLACE work correctly.
Date: Mon, 22 Feb 2010 20:39:35 +0200	[thread overview]
Message-ID: <1266863982-5258-9-git-send-email-maximlevitsky@gmail.com> (raw)
In-Reply-To: <1266863982-5258-1-git-send-email-maximlevitsky@gmail.com>

MTD_OOB_PLACE is supposed to read/write the raw oob data similiar to the MTD_OOB_RAW
however due to a bug, currently it is not possible to read more data that
is specified by the oob 'free' regions.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 drivers/mtd/nand/nand_base.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 7442b3a..cada4cf 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -1420,6 +1420,9 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,
 	int ret = 0;
 	uint32_t readlen = ops->len;
 	uint32_t oobreadlen = ops->ooblen;
+	uint32_t max_oobsize = ops->mode == MTD_OOB_AUTO ?
+		mtd->oobavail : mtd->oobsize;
+
 	uint8_t *bufpoi, *oob, *buf;
 
 	stats = mtd->ecc_stats;
@@ -1470,10 +1473,11 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,
 			buf += bytes;
 
 			if (unlikely(oob)) {
+
 				/* Raw mode does data:oob:data:oob */
 				if (ops->mode != MTD_OOB_RAW) {
 					int toread = min(oobreadlen,
-						chip->ecc.layout->oobavail);
+								max_oobsize);
 					if (toread) {
 						oob = nand_transfer_oob(chip,
 							oob, ops, toread);
-- 
1.6.3.3

  parent reply	other threads:[~2010-02-22 18:40 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-22 18:39 [PATCH 0/15 V10] Work to enable SmartMedia/xD support in mtd Maxim Levitsky
2010-02-22 18:39 ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 01/15] MTD: create unlocked versions of {get,put}_mtd_device Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 02/15] blktrans: remove mtd_blkcore_priv and switch to per device queue and thread Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 03/15] blktrans: Hotplug fixes Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 04/15] MTD: mtdblock: test return value of add_mtd_blktrans_dev, because if can fail Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 05/15] MTD: call the remove notifiers before assuming it is in use Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 06/15] blktrans: allow FTL drivers to export sysfs attributes Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 07/15] MTD: nand: make suspend work if device is accessed by kernel threads Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` Maxim Levitsky [this message]
2010-02-22 18:39   ` [PATCH 08/15] MTD: nand: make MTD_OOB_PLACE work correctly Maxim Levitsky
2010-02-22 18:39 ` [PATCH 09/15] MTD: nand: cleanup the nand_do_write_ops Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 10/15] MTD: nand: make reads using MTD_OOB_RAW affect only ECC validation Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 21:20   ` Thomas Gleixner
2010-02-22 21:20     ` Thomas Gleixner
2010-02-22 21:28     ` Maxim Levitsky
2010-02-22 21:28       ` Maxim Levitsky
2010-02-22 21:29       ` Thomas Gleixner
2010-02-22 21:29         ` Thomas Gleixner
2010-02-22 21:34         ` Maxim Levitsky
2010-02-22 21:34           ` Maxim Levitsky
2010-02-23  7:23           ` Maxim Levitsky
2010-02-23  7:23             ` Maxim Levitsky
2010-02-23 18:32         ` Maxim Levitsky
2010-02-23 18:32           ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 11/15] MTD: nand: add ->badblockbits to specify the minimum number of bits in bad block byte to consider the block good Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 12/15] MTD: common module for smartmedia/xD support Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 13/15] MTD: add few workarounds to nand system for SmartMedia/xD chips Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 21:25   ` Thomas Gleixner
2010-02-22 21:25     ` Thomas Gleixner
2010-02-22 21:33     ` Maxim Levitsky
2010-02-22 21:33       ` Maxim Levitsky
2010-02-22 21:53       ` Thomas Gleixner
2010-02-22 21:53         ` Thomas Gleixner
2010-02-22 22:12         ` Maxim Levitsky
2010-02-22 22:12           ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 14/15] MTD: Add new SmartMedia/xD FTL Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky
2010-02-22 18:39 ` [PATCH 15/15] MTD: Add nand driver for Ricoh xD/SmartMedia reader Maxim Levitsky
2010-02-22 18:39   ` Maxim Levitsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1266863982-5258-9-git-send-email-maximlevitsky@gmail.com \
    --to=maximlevitsky@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=joern@logfs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=oakad@yahoo.com \
    --cc=stanley.miao@windriver.com \
    --cc=tglx@linutronix.de \
    --cc=vitalywool@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.