linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michal Suchanek <hramrach@gmail.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>,
	"Rafa?? Mi??ecki" <zajec5@gmail.com>, Marek Vasut <marex@denx.de>,
	Alison Chaiken <alison_chaiken@mentor.com>,
	Ben Hutchings <ben@decadent.org.uk>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	"Bean Huo (beanhuo)" <beanhuo@micron.com>,
	"grmoore@altera.com" <grmoore@altera.com>,
	linux-mtd@lists.infradead.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/3] MTD: m25p80: fix write return value.
Date: Thu, 21 May 2015 10:33:09 +0200	[thread overview]
Message-ID: <CAOMqctQ3Asj+-onsAs7R-LBBth6Pf-D55yBPKwk5Z2bVVeQHVg@mail.gmail.com> (raw)
In-Reply-To: <20150520234525.GY11598@ld-irv-0074>

Hello,

On 21 May 2015 at 01:45, Brian Norris <computersforpeace@gmail.com> wrote:
> On Thu, Apr 30, 2015 at 03:33:47PM +0200, Michal Suchanek wrote:
>> The 'retlen' points to a variable representing the number of data bytes
>> written/read (see include/linux/mtd/mtd.h) by the current invocation of
>> the function. This variable must be set, not incremented.
>>
>> v2: clearer commit message
>>
>> Signed-off-by: Michal Suchanek <hramrach@gmail.com>
>> Acked-by: Marek Vasut <marex@denx.de>
>> ---
>>  drivers/mtd/devices/m25p80.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
>> index 7c8b169..0b2bc21 100644
>> --- a/drivers/mtd/devices/m25p80.c
>> +++ b/drivers/mtd/devices/m25p80.c
>> @@ -102,7 +102,7 @@ static void m25p80_write(struct spi_nor *nor, loff_t to, size_t len,
>>
>>       spi_sync(spi, &m);
>>
>> -     *retlen += m.actual_length - cmd_sz;
>> +     *retlen = m.actual_length - cmd_sz;
>
> This is very wrong. It gets a little better once you add your next
> patches (which are also not good) since those patches reinterpret the
> usage of retlen, but this one definitely does *not* stand a lone.
>
> I'll admit the API is a little odd here, but the callers of this
> function (see spi_nor_write()) actually depend on calling this multiple
> times, with the value incrementing each time so we get a summary total.
> You're now clobbering this value.
>
> I'm willing to accept patches to improve this API, if you think that
> would help. Or to add comments that document this.

Yes, the only user of the retlen value ignores it but passes it on so
without the following patch this one makes the passed on value
different from before.

For m25p80 this would be fixed by truncating the write in the driver
and setting actual_length appropriately rather than returning an error
when the message is too long. It might possibly break other drivers,
though.

Thanks

Michal

  reply	other threads:[~2015-05-21  8:35 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1430430153.git.hramrach@gmail.com>
     [not found] ` <35add8df33b17e2354d9496eba8597d9d8488f30.1430430153.git.hramrach@gmail.com>
2015-04-30 23:13   ` [PATCH 3/3] MTD: spi-nor: add flag to not use sector erase Marek Vasut
2015-05-01  7:05     ` Michal Suchanek
2015-05-01 10:50       ` Jonas Gorski
2015-05-01 14:20       ` Marek Vasut
2015-05-04 11:11         ` Michal Suchanek
2015-05-04 12:12           ` Marek Vasut
2015-05-04 13:18             ` Michal Suchanek
2015-05-04 13:35               ` Marek Vasut
2015-05-04 13:39                 ` Michal Suchanek
2015-05-04 14:11                   ` Marek Vasut
2015-05-01 21:56   ` Rafał Miłecki
     [not found] ` <02f7510acb9b6dbb3a5a6cd5bb287762eb4d22c1.1430430153.git.hramrach@gmail.com>
2015-04-30 23:09   ` [PATCH 1/3] MTD: m25p80: fix write return value Marek Vasut
2015-05-20 23:45   ` Brian Norris
2015-05-21  8:33     ` Michal Suchanek [this message]
     [not found] <cover.1430403750.git.hramrach@gmail.com>
     [not found] ` <55132b4496e7fe73f949186c0f140f3e4fd4e2c7.1430403750.git.hramrach@gmail.com>
2015-04-30 18:43   ` Marek Vasut
2015-04-30 21:37     ` Michal Suchanek

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=CAOMqctQ3Asj+-onsAs7R-LBBth6Pf-D55yBPKwk5Z2bVVeQHVg@mail.gmail.com \
    --to=hramrach@gmail.com \
    --cc=alison_chaiken@mentor.com \
    --cc=beanhuo@micron.com \
    --cc=ben@decadent.org.uk \
    --cc=computersforpeace@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=geert+renesas@glider.be \
    --cc=grmoore@altera.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marex@denx.de \
    --cc=zajec5@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).