> #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? _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev