Hello Nicholas, Just a small comment about syntax. I'm afraid I can't comment much about the substance of the patch.
Nicholas Piggin <npig...@gmail.com> writes: > diff --git a/arch/powerpc/include/asm/spinlock.h > b/arch/powerpc/include/asm/spinlock.h > index b9ebc3085fb7..182bb9304c79 100644 > --- a/arch/powerpc/include/asm/spinlock.h > +++ b/arch/powerpc/include/asm/spinlock.h > @@ -40,16 +40,9 @@ > #endif > > #if defined(CONFIG_PPC64) && defined(CONFIG_SMP) > -#define CLEAR_IO_SYNC (get_paca()->io_sync = 0) > -#define SYNC_IO do { > \ > - if (unlikely(get_paca()->io_sync)) { \ > - mb(); \ > - get_paca()->io_sync = 0; \ > - } \ > - } while (0) > +#define CLEAR_IO_SYNC do { r14_clear_bits(R14_BIT_IO_SYNC); } while(0) Is there a reason for the do { } while(0) idiom here? If r14_clear_bits() is an inline function, isn't it a single statement already? -- Thiago Jung Bauermann IBM Linux Technology Center