Re: 2.6.23-rc4-mm1 compile error for ppc 32

From: Andrew Morton
Date: Thu Sep 13 2007 - 18:18:01 EST


On Sat, 08 Sep 2007 18:42:10 +0200
Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> wrote:

>
> > > If so, the finger points at this:
> > >
> > > static __inline__ void __clear_bit_unlock(int nr, volatile unsigned long
> > > *addr) {
> > > __asm__ __volatile__(LWSYNC_ON_SMP ::: "memory");
> > > __clear_bit(nr, addr);
> > > }
> > >
> > > which was added by Nick's powerpc-lock-bitops.patch. I am suspecting that
> > > this isn't pp32 code?
> >
> > Hmm, when LWSYNC_ON_SMP is a noop, it seems like it should probably
> > be an empty string instead of nothing? ("") That should make behaviour
> > more consistent I think.
>
> The wormhole is arch/ppc's hack to get to include/asm-powerpc...
>
> As for having LWSYNC_ON_SMP be "" ... that might be the best way but I'd
> rather not take chances right now and go for the quick fix of making
> __clear_bit_unlock() do
>
> LWSYNC_ON_SMP ""
>
> instead.
>

Like this?

--- a/include/asm-powerpc/bitops.h~powerpc-lock-bitops-fix
+++ a/include/asm-powerpc/bitops.h
@@ -226,7 +226,7 @@ static __inline__ void set_bits(unsigned

static __inline__ void __clear_bit_unlock(int nr, volatile unsigned long *addr)
{
- __asm__ __volatile__(LWSYNC_ON_SMP ::: "memory");
+ __asm__ __volatile__(LWSYNC_ON_SMP "" ::: "memory");
__clear_bit(nr, addr);
}

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/