From: Heiner Kallweit <hkallweit1@gmail.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: MTD Maling List <linux-mtd@lists.infradead.org>
Subject: [PATCH 1/2] mtd: m25p80: fix retlen usage in m25p80_read and propagate errors
Date: Sat, 27 Feb 2016 23:48:23 +0100 [thread overview]
Message-ID: <56D227B7.5010902@gmail.com> (raw)
So far retlen usage in m25p80_read is different from retlen usage in other
places on the mtd subsystem. Usually bytes read are added to the current
value of *retlen, here the current value is ignored.
As a prerequisite for using m25p80_read in a loop if the transfer size is
limited we have to fix this.
Also propagate the return code of spi_sync.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/mtd/devices/m25p80.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index c9c3b7f..c2d1f65 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -126,10 +126,9 @@ static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len,
struct spi_device *spi = flash->spi;
struct spi_transfer t[2];
struct spi_message m;
- unsigned int dummy = nor->read_dummy;
-
/* convert the dummy cycles to the number of bytes */
- dummy /= 8;
+ unsigned int cmdlen = m25p_cmdsz(nor) + nor->read_dummy / 8;
+ int ret;
spi_message_init(&m);
memset(t, 0, (sizeof t));
@@ -138,7 +137,7 @@ static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len,
m25p_addr2cmd(nor, from, flash->command);
t[0].tx_buf = flash->command;
- t[0].len = m25p_cmdsz(nor) + dummy;
+ t[0].len = cmdlen;
spi_message_add_tail(&t[0], &m);
t[1].rx_buf = buf;
@@ -146,10 +145,12 @@ static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len,
t[1].len = len;
spi_message_add_tail(&t[1], &m);
- spi_sync(spi, &m);
+ ret = spi_sync(spi, &m);
- *retlen = m.actual_length - m25p_cmdsz(nor) - dummy;
- return 0;
+ if (m.actual_length > cmdlen)
+ *retlen += m.actual_length - cmdlen;
+
+ return ret;
}
/*
--
2.7.1
reply other threads:[~2016-02-27 22:50 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=56D227B7.5010902@gmail.com \
--to=hkallweit1@gmail.com \
--cc=computersforpeace@gmail.com \
--cc=linux-mtd@lists.infradead.org \
/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.