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