Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
[pandora-kernel.git] / include / asm-powerpc / current.h
index 82cd4a9..e2c7f06 100644 (file)
@@ -1,5 +1,6 @@
 #ifndef _ASM_POWERPC_CURRENT_H
 #define _ASM_POWERPC_CURRENT_H
+#ifdef __KERNEL__
 
 /*
  * This program is free software; you can redistribute it and/or
 struct task_struct;
 
 #ifdef __powerpc64__
+#include <linux/stddef.h>
 #include <asm/paca.h>
 
-#define current                (get_paca()->__current)
+static inline struct task_struct *get_current(void)
+{
+       struct task_struct *task;
+
+       __asm__ __volatile__("ld %0,%1(13)"
+       : "=r" (task)
+       : "i" (offsetof(struct paca_struct, __current)));
+
+       return task;
+}
+#define current        get_current()
 
 #else
 
@@ -24,4 +36,5 @@ register struct task_struct *current asm ("r2");
 
 #endif
 
+#endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_CURRENT_H */