patches for current -mm kernels

Andrew Morton akpm at osdl.org
Sun Aug 3 07:21:25 EST 2003


I had to hack some fixes together to get a working ppc64 kernel with
current Linus plus current me.

I'll do 2.6.0-test2-mm3 today.  It works on ppc64.



Implement local.h for ppc64.  It's only 32-bit at present.  ppc64 doesn't
seem to support atomic64_t.



 include/asm-ppc64/local.h |   40 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+)

diff -puN /dev/null include/asm-ppc64/local.h
--- /dev/null	2002-08-30 16:31:37.000000000 -0700
+++ 25-power4-akpm/include/asm-ppc64/local.h	2003-08-02 13:28:41.000000000 -0700
@@ -0,0 +1,40 @@
+#ifndef _ARCH_PPC6464_LOCAL_H
+#define _ARCH_PPC6464_LOCAL_H
+
+#include <linux/percpu.h>
+#include <asm/atomic.h>
+
+typedef atomic_t local_t;
+
+#define LOCAL_INIT(i)	ATOMIC64_INIT(i)
+#define local_read(v)	atomic_read(v)
+#define local_set(v,i)	atomic_set(v,i)
+
+#define local_inc(v)	atomic_inc(v)
+#define local_dec(v)	atomic_inc(v)
+#define local_add(i, v)	atomic_add(i, v)
+#define local_sub(i, v)	atomic_sub(i, v)
+
+#define __local_inc(v)		((v)->counter++)
+#define __local_dec(v)		((v)->counter++)
+#define __local_add(i,v)	((v)->counter+=(i))
+#define __local_sub(i,v)	((v)->counter-=(i))
+
+/* Use these for per-cpu local_t variables: on some archs they are
+ * much more efficient than these naive implementations.  Note they take
+ * a variable, not an address.
+ */
+#define cpu_local_read(v)	local_read(&__get_cpu_var(v))
+#define cpu_local_set(v, i)	local_set(&__get_cpu_var(v), (i))
+
+#define cpu_local_inc(v)	local_inc(&__get_cpu_var(v))
+#define cpu_local_dec(v)	local_dec(&__get_cpu_var(v))
+#define cpu_local_add(i, v)	local_add((i), &__get_cpu_var(v))
+#define cpu_local_sub(i, v)	local_sub((i), &__get_cpu_var(v))
+
+#define __cpu_local_inc(v)	__local_inc(&__get_cpu_var(v))
+#define __cpu_local_dec(v)	__local_dec(&__get_cpu_var(v))
+#define __cpu_local_add(i, v)	__local_add((i), &__get_cpu_var(v))
+#define __cpu_local_sub(i, v)	__local_sub((i), &__get_cpu_var(v))
+
+#endif /* _ARCH_PPC6464_LOCAL_H */

_


** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list