On Tue, Apr 6, 2010 at 10:29 AM, Michael Zaidman
<michael.zaid...@gmail.com> wrote:

> I thought that is what I actually do in this patch...

Not quite.  You're missing the memory barrier that the sync() function
includes.  You're doing this:

      __asm__ __volatile__("sync");

But the sync() macros does this:

static inline void sync(void)
{
        __asm__ __volatile__ ("sync" : : : "memory");
}

The "memory" tells the compiler that this function is a memory
barrier, which means it won't try to reorder any reads/writes *after*
the "sync".

-- 
Timur Tabi
Linux kernel developer at Freescale
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to