Adrian Filipi <[EMAIL PROTECTED]> wrote:
> diff -u -r1.1.1.2.2.2 cfi_flash.c
> --- cfi_flash.c       23 Apr 2008 17:02:47 -0000      1.1.1.2.2.2
> +++ cfi_flash.c       29 Apr 2008 18:55:47 -0000
> @@ -464,7 +464,7 @@
>                            uint offset, uchar cmd)
>   {
> 
> -     void *addr;
> +     void *volatile addr;

That looks bogus. It makes the pointer itself volatile, not whatever it
points to. All accesses through addr is performed by appropriate I/O
accessors, so no volatile should be needed, and certainly not one that
affects the pointer itself.

I suspect the change adds a few extra memory accesses (probably to the
stack) so that any memory ordering problems just happen to go away.

flash_write_cmd() calls sync() after writing the command to the flash,
so any memory ordering issues should have been taken care of. However,
sync() does nothing on ARM. Maybe it should do something?

Haavard

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
U-Boot-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to