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
next prev 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: linkBe 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.