diff mbox

[U-Boot] fs: fat: Fix cache align error message in fatwrite to use USB media

Message ID 1396500259-6374-1-git-send-email-nobuhiro.iwamatsu.yj@renesas.com
State Superseded
Delegated to: Tom Rini
Headers show

Commit Message

Nobuhiro Iwamatsu April 3, 2014, 4:44 a.m. UTC
Use of malloc of do_fat_write() from USB media causes cache error on
ARM v7 platforms. Perhaps, the same problem will occur at any other CPUs.
This replaces malloc with memalign to fix cache buffer alignment.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: Yoshiyuki Ito <yoshiyuki.ito.ub@renesas.com>
---
 fs/fat/fat_write.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Hector Palacios April 7, 2014, 2:19 p.m. UTC | #1
Hello,

On 04/03/2014 06:44 AM, Nobuhiro Iwamatsu wrote:
> Use of malloc of do_fat_write() from USB media causes cache error on

I would remove 'from USB media' from the commit log as it doesn't really matter where 
you read from.

> ARM v7 platforms. Perhaps, the same problem will occur at any other CPUs.
> This replaces malloc with memalign to fix cache buffer alignment.
>
> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
> Signed-off-by: Yoshiyuki Ito <yoshiyuki.ito.ub@renesas.com>
> ---
>   fs/fat/fat_write.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
> index 9f5e911..cef138e 100644
> --- a/fs/fat/fat_write.c
> +++ b/fs/fat/fat_write.c
> @@ -952,7 +952,7 @@ static int do_fat_write(const char *filename, void *buffer,
>   	}
>
>   	mydata->fatbufnum = -1;
> -	mydata->fatbuf = malloc(FATBUFSIZE);
> +	mydata->fatbuf = memalign(ARCH_DMA_MINALIGN, FATBUFSIZE);
>   	if (mydata->fatbuf == NULL) {
>   		debug("Error: allocating memory\n");
>   		return -1;
>

Tested on an i.MX6 custom platform.

Tested-by: Hector Palacios <hector.palacios@digi.com>

Thanks,
Nobuhiro Iwamatsu April 8, 2014, 2:02 a.m. UTC | #2
Hi!

2014-04-07 23:19 GMT+09:00 Hector Palacios <hector.palacios@digi.com>:
> Hello,
>
>
> On 04/03/2014 06:44 AM, Nobuhiro Iwamatsu wrote:
>>
>> Use of malloc of do_fat_write() from USB media causes cache error on
>
>
> I would remove 'from USB media' from the commit log as it doesn't really
> matter where you read from.

I see. I will remove and re-send.

>
>
>> ARM v7 platforms. Perhaps, the same problem will occur at any other CPUs.
>> This replaces malloc with memalign to fix cache buffer alignment.
>>
>> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
>> Signed-off-by: Yoshiyuki Ito <yoshiyuki.ito.ub@renesas.com>
>> ---
>>   fs/fat/fat_write.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
>> index 9f5e911..cef138e 100644
>> --- a/fs/fat/fat_write.c
>> +++ b/fs/fat/fat_write.c
>> @@ -952,7 +952,7 @@ static int do_fat_write(const char *filename, void
>> *buffer,
>>         }
>>
>>         mydata->fatbufnum = -1;
>> -       mydata->fatbuf = malloc(FATBUFSIZE);
>> +       mydata->fatbuf = memalign(ARCH_DMA_MINALIGN, FATBUFSIZE);
>>         if (mydata->fatbuf == NULL) {
>>                 debug("Error: allocating memory\n");
>>                 return -1;
>>
>
> Tested on an i.MX6 custom platform.
>
> Tested-by: Hector Palacios <hector.palacios@digi.com>
>

Thanks for your test!

> Thanks,

Best regards,
  Nobuhiro
diff mbox

Patch

diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
index 9f5e911..cef138e 100644
--- a/fs/fat/fat_write.c
+++ b/fs/fat/fat_write.c
@@ -952,7 +952,7 @@  static int do_fat_write(const char *filename, void *buffer,
 	}
 
 	mydata->fatbufnum = -1;
-	mydata->fatbuf = malloc(FATBUFSIZE);
+	mydata->fatbuf = memalign(ARCH_DMA_MINALIGN, FATBUFSIZE);
 	if (mydata->fatbuf == NULL) {
 		debug("Error: allocating memory\n");
 		return -1;