diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-03-14 03:51:58 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-03-14 03:51:58 -0800 |
| commit | eadb448cbc6d88a414728cd369cbe96d670fb762 (patch) | |
| tree | 71d81eaa7bbaed03e8af9e106fa3d17018086dec /include | |
| parent | 5eefec79f16006ff0d3fb91460e76df7f35455b9 (diff) | |
| parent | 80b228ce6c5ba2714f2e112a473218b5c2e7b2ee (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.h | 2 | ||||
| -rw-r--r-- | include/asm-sparc64/page.h | 8 | ||||
| -rw-r--r-- | include/asm-sparc64/system.h | 3 |
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", \ |
