lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070913151738.4462fdf2.akpm@linux-foundation.org>
Date:	Thu, 13 Sep 2007 15:17:38 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	Benjamin Herrenschmidt <benh@...nel.crashing.org>
Cc:	Nick Piggin <nickpiggin@...oo.com.au>,
	Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca>,
	linux-kernel@...r.kernel.org
Subject: Re: 2.6.23-rc4-mm1 compile error for ppc 32

On Sat, 08 Sep 2007 18:42:10 +0200
Benjamin Herrenschmidt <benh@...nel.crashing.org> 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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ