Re: [PATCH] atomic.h : standardizing atomic primitives

Peter Zijlstra
2007-01-31T16:36:11Z

On Wed, 2007-01-31 at 11:25 -0500, Mathieu Desnoyers wrote:
> Hi Peter,
>
> Thanks for testing Andrew's fixes.

I haven't actually taken any from him. I just started afresh.

> I am wondering about what happened to
> the Powerpc recursive include problems Andrew experienced. Quoting him :
>
> "OK, I fixed eight separate compile errors in this patch series and
> now powerpc is being very ugly with a twisty maze of include
> dependencies.
>
> I'm giving up. Someone should publish a suite of cross-compilers for us
> so stuff like this doesn't need to happen."
>
> I see that you have removed the include <asm/atomic.h> from bitops.h and
> system.h in powerpc. If it compiles on every architectures, then it's a
> good approach.

Yeah, I fiddled around with those powerpc headers a bit until it stopped
whining. Maybe the powerpc folks ought to eyeball it a bit, but it build
a kernel image here.

> I planned to post a new patch which uses macros for cmpxchg and xchg in
> asm-generic/atomic.h instead of inline functions. It would remove the
> dependency on system.h. However, if your modifications work well on
> every architecture, my fix might not be needed. Anyone has a preferred
> solution ? I have not been able to setup my cross-compiler test bench
> yet due to some hardware issues and waited for it before I released
> further fixes, but if you want to try my macro-based fix, I could post
> it.

Whatever people want; inlines are generally preferred due to the extra
type checking.

I just needed atomic_long_cmpxchg to work so I kicked your patches about
till they compiled.

> And about the alpha build, Does the assembler errors also happen without
> this patch ?

Yes. Something fishy going on there... gcc-4.1.1 + binutils-2.17
Compiler seems to build fine, but kernel code makes it go belly up.