aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2007-05-09 05:35:17 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-09 15:30:56 -0400
commitf7e4217b007d1f73e7e3cf10ba4fea4a608c603f (patch)
tree9c3932bb871d4b6727dc588e4d6c9987637aaee5 /arch
parentc9f4f06d3191bd91c1a081b54a6c8e913e7b8a83 (diff)
rename thread_info to stack
This finally renames the thread_info field in task structure to stack, so that the assumptions about this field are gone and archs have more freedom about placing the thread_info structure. Nonbroken archs which have a proper thread pointer can do the access to both current thread and task structure via a single pointer. It'll allow for a few more cleanups of the fork code, from which e.g. ia64 could benefit. Signed-off-by: Roman Zippel <zippel@linux-m68k.org> [akpm@linux-foundation.org: build fix] Cc: Richard Henderson <rth@twiddle.net> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Ian Molton <spyro@f2s.com> Cc: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Mikael Starvik <starvik@axis.com> Cc: David Howells <dhowells@redhat.com> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Hirokazu Takata <takata@linux-m32r.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Roman Zippel <zippel@linux-m68k.org> Cc: Greg Ungerer <gerg@uclinux.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp> Cc: Richard Curnow <rc@rc0.org.uk> Cc: William Lee Irwin III <wli@holomorphy.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp> Cc: Andi Kleen <ak@muc.de> Cc: Chris Zankel <chris@zankel.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/blackfin/kernel/ptrace.c6
-rw-r--r--arch/h8300/kernel/asm-offsets.c2
-rw-r--r--arch/ia64/kernel/mca.c2
-rw-r--r--arch/mips/kernel/asm-offsets.c2
-rw-r--r--arch/parisc/kernel/asm-offsets.c2
-rw-r--r--arch/powerpc/kernel/asm-offsets.c2
-rw-r--r--arch/ppc/kernel/asm-offsets.c2
-rw-r--r--arch/s390/kernel/asm-offsets.c2
-rw-r--r--arch/sparc/kernel/asm-offsets.c2
-rw-r--r--arch/v850/kernel/asm-offsets.c2
-rw-r--r--arch/xtensa/kernel/asm-offsets.c2
11 files changed, 13 insertions, 13 deletions
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c
index d7c8e514cb92..e718bb4a1ef0 100644
--- a/arch/blackfin/kernel/ptrace.c
+++ b/arch/blackfin/kernel/ptrace.c
@@ -73,7 +73,7 @@
73static inline struct pt_regs *get_user_regs(struct task_struct *task) 73static inline struct pt_regs *get_user_regs(struct task_struct *task)
74{ 74{
75 return (struct pt_regs *) 75 return (struct pt_regs *)
76 ((unsigned long)task->thread_info + 76 ((unsigned long)task_stack_page(task) +
77 (THREAD_SIZE - sizeof(struct pt_regs))); 77 (THREAD_SIZE - sizeof(struct pt_regs)));
78} 78}
79 79
@@ -99,7 +99,7 @@ static inline long get_reg(struct task_struct *task, int regno)
99 unsigned char *reg_ptr; 99 unsigned char *reg_ptr;
100 100
101 struct pt_regs *regs = 101 struct pt_regs *regs =
102 (struct pt_regs *)((unsigned long)task->thread_info + 102 (struct pt_regs *)((unsigned long)task_stack_page(task) +
103 (THREAD_SIZE - sizeof(struct pt_regs))); 103 (THREAD_SIZE - sizeof(struct pt_regs)));
104 reg_ptr = (char *)regs; 104 reg_ptr = (char *)regs;
105 105
@@ -125,7 +125,7 @@ put_reg(struct task_struct *task, int regno, unsigned long data)
125 char * reg_ptr; 125 char * reg_ptr;
126 126
127 struct pt_regs *regs = 127 struct pt_regs *regs =
128 (struct pt_regs *)((unsigned long)task->thread_info + 128 (struct pt_regs *)((unsigned long)task_stack_page(task) +
129 (THREAD_SIZE - sizeof(struct pt_regs))); 129 (THREAD_SIZE - sizeof(struct pt_regs)));
130 reg_ptr = (char *)regs; 130 reg_ptr = (char *)regs;
131 131
diff --git a/arch/h8300/kernel/asm-offsets.c b/arch/h8300/kernel/asm-offsets.c
index b78b82ad28a3..fc30b4fd0914 100644
--- a/arch/h8300/kernel/asm-offsets.c
+++ b/arch/h8300/kernel/asm-offsets.c
@@ -30,7 +30,7 @@ int main(void)
30 DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace)); 30 DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
31 DEFINE(TASK_BLOCKED, offsetof(struct task_struct, blocked)); 31 DEFINE(TASK_BLOCKED, offsetof(struct task_struct, blocked));
32 DEFINE(TASK_THREAD, offsetof(struct task_struct, thread)); 32 DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
33 DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, thread_info)); 33 DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, stack));
34 DEFINE(TASK_MM, offsetof(struct task_struct, mm)); 34 DEFINE(TASK_MM, offsetof(struct task_struct, mm));
35 DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm)); 35 DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
36 36
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 1d7cc7e2ce32..f8ae709de0b5 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -1689,7 +1689,7 @@ format_mca_init_stack(void *mca_data, unsigned long offset,
1689 ti->preempt_count = 1; 1689 ti->preempt_count = 1;
1690 ti->task = p; 1690 ti->task = p;
1691 ti->cpu = cpu; 1691 ti->cpu = cpu;
1692 p->thread_info = ti; 1692 p->stack = ti;
1693 p->state = TASK_UNINTERRUPTIBLE; 1693 p->state = TASK_UNINTERRUPTIBLE;
1694 cpu_set(cpu, p->cpus_allowed); 1694 cpu_set(cpu, p->cpus_allowed);
1695 INIT_LIST_HEAD(&p->tasks); 1695 INIT_LIST_HEAD(&p->tasks);
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c
index 761a779d5c4f..3b27309d54b1 100644
--- a/arch/mips/kernel/asm-offsets.c
+++ b/arch/mips/kernel/asm-offsets.c
@@ -82,7 +82,7 @@ void output_task_defines(void)
82{ 82{
83 text("/* MIPS task_struct offsets. */"); 83 text("/* MIPS task_struct offsets. */");
84 offset("#define TASK_STATE ", struct task_struct, state); 84 offset("#define TASK_STATE ", struct task_struct, state);
85 offset("#define TASK_THREAD_INFO ", struct task_struct, thread_info); 85 offset("#define TASK_THREAD_INFO ", struct task_struct, stack);
86 offset("#define TASK_FLAGS ", struct task_struct, flags); 86 offset("#define TASK_FLAGS ", struct task_struct, flags);
87 offset("#define TASK_MM ", struct task_struct, mm); 87 offset("#define TASK_MM ", struct task_struct, mm);
88 offset("#define TASK_PID ", struct task_struct, pid); 88 offset("#define TASK_PID ", struct task_struct, pid);
diff --git a/arch/parisc/kernel/asm-offsets.c b/arch/parisc/kernel/asm-offsets.c
index 54fdb959149c..d3b7917a87cb 100644
--- a/arch/parisc/kernel/asm-offsets.c
+++ b/arch/parisc/kernel/asm-offsets.c
@@ -54,7 +54,7 @@
54 54
55int main(void) 55int main(void)
56{ 56{
57 DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, thread_info)); 57 DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, stack));
58 DEFINE(TASK_STATE, offsetof(struct task_struct, state)); 58 DEFINE(TASK_STATE, offsetof(struct task_struct, state));
59 DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags)); 59 DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
60 DEFINE(TASK_SIGPENDING, offsetof(struct task_struct, pending)); 60 DEFINE(TASK_SIGPENDING, offsetof(struct task_struct, pending));
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 8f48560b7ee2..37bc35e69dbe 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -58,7 +58,7 @@ int main(void)
58#ifdef CONFIG_PPC64 58#ifdef CONFIG_PPC64
59 DEFINE(AUDITCONTEXT, offsetof(struct task_struct, audit_context)); 59 DEFINE(AUDITCONTEXT, offsetof(struct task_struct, audit_context));
60#else 60#else
61 DEFINE(THREAD_INFO, offsetof(struct task_struct, thread_info)); 61 DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
62 DEFINE(PTRACE, offsetof(struct task_struct, ptrace)); 62 DEFINE(PTRACE, offsetof(struct task_struct, ptrace));
63#endif /* CONFIG_PPC64 */ 63#endif /* CONFIG_PPC64 */
64 64
diff --git a/arch/ppc/kernel/asm-offsets.c b/arch/ppc/kernel/asm-offsets.c
index c5850a272650..e8e94321b59e 100644
--- a/arch/ppc/kernel/asm-offsets.c
+++ b/arch/ppc/kernel/asm-offsets.c
@@ -35,7 +35,7 @@ int
35main(void) 35main(void)
36{ 36{
37 DEFINE(THREAD, offsetof(struct task_struct, thread)); 37 DEFINE(THREAD, offsetof(struct task_struct, thread));
38 DEFINE(THREAD_INFO, offsetof(struct task_struct, thread_info)); 38 DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
39 DEFINE(MM, offsetof(struct task_struct, mm)); 39 DEFINE(MM, offsetof(struct task_struct, mm));
40 DEFINE(PTRACE, offsetof(struct task_struct, ptrace)); 40 DEFINE(PTRACE, offsetof(struct task_struct, ptrace));
41 DEFINE(KSP, offsetof(struct thread_struct, ksp)); 41 DEFINE(KSP, offsetof(struct thread_struct, ksp));
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index ec514fe5ccd0..1375f8a4469e 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -15,7 +15,7 @@
15 15
16int main(void) 16int main(void)
17{ 17{
18 DEFINE(__THREAD_info, offsetof(struct task_struct, thread_info),); 18 DEFINE(__THREAD_info, offsetof(struct task_struct, stack),);
19 DEFINE(__THREAD_ksp, offsetof(struct task_struct, thread.ksp),); 19 DEFINE(__THREAD_ksp, offsetof(struct task_struct, thread.ksp),);
20 DEFINE(__THREAD_per, offsetof(struct task_struct, thread.per_info),); 20 DEFINE(__THREAD_per, offsetof(struct task_struct, thread.per_info),);
21 DEFINE(__THREAD_mm_segment, 21 DEFINE(__THREAD_mm_segment,
diff --git a/arch/sparc/kernel/asm-offsets.c b/arch/sparc/kernel/asm-offsets.c
index 29d7cfd1c970..6773ed76e414 100644
--- a/arch/sparc/kernel/asm-offsets.c
+++ b/arch/sparc/kernel/asm-offsets.c
@@ -28,7 +28,7 @@ int foo(void)
28 DEFINE(AOFF_task_gid, offsetof(struct task_struct, gid)); 28 DEFINE(AOFF_task_gid, offsetof(struct task_struct, gid));
29 DEFINE(AOFF_task_euid, offsetof(struct task_struct, euid)); 29 DEFINE(AOFF_task_euid, offsetof(struct task_struct, euid));
30 DEFINE(AOFF_task_egid, offsetof(struct task_struct, egid)); 30 DEFINE(AOFF_task_egid, offsetof(struct task_struct, egid));
31 /* DEFINE(THREAD_INFO, offsetof(struct task_struct, thread_info)); */ 31 /* DEFINE(THREAD_INFO, offsetof(struct task_struct, stack)); */
32 DEFINE(ASIZ_task_uid, sizeof(current->uid)); 32 DEFINE(ASIZ_task_uid, sizeof(current->uid));
33 DEFINE(ASIZ_task_gid, sizeof(current->gid)); 33 DEFINE(ASIZ_task_gid, sizeof(current->gid));
34 DEFINE(ASIZ_task_euid, sizeof(current->euid)); 34 DEFINE(ASIZ_task_euid, sizeof(current->euid));
diff --git a/arch/v850/kernel/asm-offsets.c b/arch/v850/kernel/asm-offsets.c
index 24f291369070..cee5c3142d41 100644
--- a/arch/v850/kernel/asm-offsets.c
+++ b/arch/v850/kernel/asm-offsets.c
@@ -29,7 +29,7 @@ int main (void)
29 DEFINE (TASK_PTRACE, offsetof (struct task_struct, ptrace)); 29 DEFINE (TASK_PTRACE, offsetof (struct task_struct, ptrace));
30 DEFINE (TASK_BLOCKED, offsetof (struct task_struct, blocked)); 30 DEFINE (TASK_BLOCKED, offsetof (struct task_struct, blocked));
31 DEFINE (TASK_THREAD, offsetof (struct task_struct, thread)); 31 DEFINE (TASK_THREAD, offsetof (struct task_struct, thread));
32 DEFINE (TASK_THREAD_INFO, offsetof (struct task_struct, thread_info)); 32 DEFINE (TASK_THREAD_INFO, offsetof (struct task_struct, stack));
33 DEFINE (TASK_MM, offsetof (struct task_struct, mm)); 33 DEFINE (TASK_MM, offsetof (struct task_struct, mm));
34 DEFINE (TASK_ACTIVE_MM, offsetof (struct task_struct, active_mm)); 34 DEFINE (TASK_ACTIVE_MM, offsetof (struct task_struct, active_mm));
35 DEFINE (TASK_PID, offsetof (struct task_struct, pid)); 35 DEFINE (TASK_PID, offsetof (struct task_struct, pid));
diff --git a/arch/xtensa/kernel/asm-offsets.c b/arch/xtensa/kernel/asm-offsets.c
index b256cfbef344..698079b3a336 100644
--- a/arch/xtensa/kernel/asm-offsets.c
+++ b/arch/xtensa/kernel/asm-offsets.c
@@ -70,7 +70,7 @@ int main(void)
70 DEFINE(TASK_ACTIVE_MM, offsetof (struct task_struct, active_mm)); 70 DEFINE(TASK_ACTIVE_MM, offsetof (struct task_struct, active_mm));
71 DEFINE(TASK_PID, offsetof (struct task_struct, pid)); 71 DEFINE(TASK_PID, offsetof (struct task_struct, pid));
72 DEFINE(TASK_THREAD, offsetof (struct task_struct, thread)); 72 DEFINE(TASK_THREAD, offsetof (struct task_struct, thread));
73 DEFINE(TASK_THREAD_INFO, offsetof (struct task_struct, thread_info)); 73 DEFINE(TASK_THREAD_INFO, offsetof (struct task_struct, stack));
74 DEFINE(TASK_STRUCT_SIZE, sizeof (struct task_struct)); 74 DEFINE(TASK_STRUCT_SIZE, sizeof (struct task_struct));
75 BLANK(); 75 BLANK();
76 76