All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Wu <josh.wu@atmel.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] fs: fat: fix bug when write size is less than a sector size
Date: Fri, 19 Jul 2013 17:43:25 +0800	[thread overview]
Message-ID: <51E90A3D.6000007@atmel.com> (raw)
In-Reply-To: <20130718082445.2BBA0380DF1@gemini.denx.de>

Dear Wolfgang Denk,

Thank you for the quick reply.

On 7/18/2013 4:24 PM, Wolfgang Denk wrote:
> Dear Josh Wu,
>
> In message <1374134870-10154-1-git-send-email-josh.wu@atmel.com> you wrote:
>> Tested in at91sam9x5ek and sama5d3x-ek in mmc fat.
>>
>> Signed-off-by: Josh Wu <josh.wu@atmel.com>
>> ---
>> When I debugging this issue, I also find the thread talking about this:
>>    http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/158698
>> But finally no patch is send for this bug. So I send this and cc all the
>> people in that thread. Hope it can be merged in 2013.07.
> Definitely not.  This needs thurough testing before it can go
> mainline.

got it.

>
>
>> -	__u32 startsect;
>> +	__u32 startsect, nr_sectors;
>>   
>>   	if (clustnum > 0)
>>   		startsect = mydata->data_begin +
>> @@ -571,7 +571,11 @@ set_cluster(fsdata *mydata, __u32 clustnum, __u8 *buffer,
>>   
>>   	debug("clustnum: %d, startsect: %d\n", clustnum, startsect);
>>   
>> -	if (disk_write(startsect, size / mydata->sect_size, buffer) < 0) {
>> +	nr_sectors = size / mydata->sect_size;
>> +	if (nr_sectors == 0)
>> +		nr_sectors = 1;
> Why would this be needed?  The case of a partial write is covered
> further down below in the code, in the "if (size % mydata->sect_size)"
> part...

The call of disk_write() will pass the sector size as 0. That will cause 
the mmc driver stalled.

And after a search, the fix patch is already sent by Ruud Commandeur and 
merge in mainline:
   "mmc write bug fix"
   commit a586c0aa211fb79ecaa06aee3299bfdd81329876
   Author: Ruud Commandeur <RCommandeur@clb.nl>
   Date:   Wed May 22 13:19:43 2013 +0200

So please forget this patch. Since it is fixed in mmc driver layer. I 
will test it in my board.
Sorry for the noise.

>
>
>
> Best regards,
>
> Wolfgang Denk
>

Best Regards,
Josh Wu

  reply	other threads:[~2013-07-19  9:43 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-18  8:07 [U-Boot] [PATCH] fs: fat: fix bug when write size is less than a sector size Josh Wu
2013-07-18  8:24 ` Wolfgang Denk
2013-07-19  9:43   ` Josh Wu [this message]
2013-07-19 11:20     ` Wolfgang Denk
2013-07-23 10:16       ` Josh Wu

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=51E90A3D.6000007@atmel.com \
    --to=josh.wu@atmel.com \
    --cc=u-boot@lists.denx.de \
    /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.