summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2002-03-14 03:51:58 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2002-03-14 03:51:58 -0800
commiteadb448cbc6d88a414728cd369cbe96d670fb762 (patch)
tree71d81eaa7bbaed03e8af9e106fa3d17018086dec /include
parent5eefec79f16006ff0d3fb91460e76df7f35455b9 (diff)
parent80b228ce6c5ba2714f2e112a473218b5c2e7b2ee (diff)
Merge master.kernel.org:/home/davem/BK/sparc-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
Diffstat (limited to 'include')
-rw-r--r--include/asm-sparc64/current.h2
-rw-r--r--include/asm-sparc64/page.h8
-rw-r--r--include/asm-sparc64/system.h3
3 files changed, 6 insertions, 7 deletions
diff --git a/include/asm-sparc64/current.h b/include/asm-sparc64/current.h
index 7683c6bdcd10..88ee12e65cad 100644
--- a/include/asm-sparc64/current.h
+++ b/include/asm-sparc64/current.h
@@ -3,6 +3,6 @@
#include <asm/thread_info.h>
-#define current (current_thread_info()->task)
+register struct task_struct *current asm("g4");
#endif /* !(_SPARC64_CURRENT_H) */
diff --git a/include/asm-sparc64/page.h b/include/asm-sparc64/page.h
index 15ad83cb4097..48b29c9c1370 100644
--- a/include/asm-sparc64/page.h
+++ b/include/asm-sparc64/page.h
@@ -106,12 +106,10 @@ typedef unsigned long iopgprot_t;
/* to align the pointer to the (next) page boundary */
#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
-#ifndef __ASSEMBLY__
-/* Do prdele, look what happens to be in %g4... */
-register unsigned long PAGE_OFFSET asm("g4");
-#else
+/* We used to stick this into a hard-coded global register (%g4)
+ * but that does not make sense anymore.
+ */
#define PAGE_OFFSET 0xFFFFF80000000000
-#endif
#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h
index 9a372ff45958..e0b0f5401866 100644
--- a/include/asm-sparc64/system.h
+++ b/include/asm-sparc64/system.h
@@ -209,6 +209,7 @@ do { CHECK_LOCKS(prev); \
"ldx [%%sp + 2047 + 0x78], %%i7\n\t" \
"wrpr %%g0, 0x94, %%pstate\n\t" \
"mov %%l2, %%g6\n\t" \
+ "ldx [%%g6 + %6], %%g4\n\t" \
"wrpr %%g0, 0x96, %%pstate\n\t" \
"andcc %%o7, %5, %%g0\n\t" \
"bne,pn %%icc, ret_from_syscall\n\t" \
@@ -216,7 +217,7 @@ do { CHECK_LOCKS(prev); \
: /* no outputs */ \
: "r" (next->thread_info), \
"i" (TI_WSTATE), "i" (TI_KSP), "i" (TI_FLAGS), "i" (TI_CWP), \
- "i" (_TIF_NEWCHILD) \
+ "i" (_TIF_NEWCHILD), "i" (TI_TASK) \
: "cc", "g1", "g2", "g3", "g5", "g7", \
"l2", "l3", "l4", "l5", "l6", "l7", \
"i0", "i1", "i2", "i3", "i4", "i5", \