[patch 1/2] powerpc: rmb fix
Joel Schopp
jschopp at austin.ibm.com
Wed Aug 22 05:07:00 EST 2007
> #define mb() __asm__ __volatile__ ("sync" : : : "memory")
> -#define rmb() __asm__ __volatile__ (__stringify(LWSYNC) : : : "memory")
> +#define rmb() __asm__ __volatile__ ("sync" : : : "memory")
> #define wmb() __asm__ __volatile__ ("sync" : : : "memory")
> #define read_barrier_depends() do { } while(0)
>
> @@ -42,7 +42,7 @@
> #ifdef __KERNEL__
> #ifdef CONFIG_SMP
> #define smp_mb() mb()
> -#define smp_rmb() rmb()
> +#define smp_rmb() __asm__ __volatile__ (__stringify(LWSYNC) : : : "memory")
> #define smp_wmb() eieio()
> #define smp_read_barrier_depends() read_barrier_depends()
> #else
I had to think about this one for awhile. It looks at first glance to be the right
thing to do. But I do wonder how long rmb() has been lwsync and if as a practical
matter that has caused any problems? If this isn't causing any problems maybe there
is some loigic we are overlooking?
More information about the Linuxppc-dev
mailing list