Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f7e4217b007d1f73e7e3cf10ba4fea4a608c603f
Commit:     f7e4217b007d1f73e7e3cf10ba4fea4a608c603f
Parent:     c9f4f06d3191bd91c1a081b54a6c8e913e7b8a83
Author:     Roman Zippel <[EMAIL PROTECTED]>
AuthorDate: Wed May 9 02:35:17 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Wed May 9 12:30:56 2007 -0700

    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 <[EMAIL PROTECTED]>
    [EMAIL PROTECTED]: build fix]
    Cc: Richard Henderson <[EMAIL PROTECTED]>
    Cc: Ivan Kokshaysky <[EMAIL PROTECTED]>
    Cc: Russell King <[EMAIL PROTECTED]>
    Cc: Ian Molton <[EMAIL PROTECTED]>
    Cc: Haavard Skinnemoen <[EMAIL PROTECTED]>
    Cc: Mikael Starvik <[EMAIL PROTECTED]>
    Cc: David Howells <[EMAIL PROTECTED]>
    Cc: Yoshinori Sato <[EMAIL PROTECTED]>
    Cc: "Luck, Tony" <[EMAIL PROTECTED]>
    Cc: Hirokazu Takata <[EMAIL PROTECTED]>
    Cc: Geert Uytterhoeven <[EMAIL PROTECTED]>
    Cc: Roman Zippel <[EMAIL PROTECTED]>
    Cc: Greg Ungerer <[EMAIL PROTECTED]>
    Cc: Ralf Baechle <[EMAIL PROTECTED]>
    Cc: Ralf Baechle <[EMAIL PROTECTED]>
    Cc: Paul Mackerras <[EMAIL PROTECTED]>
    Cc: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
    Cc: Heiko Carstens <[EMAIL PROTECTED]>
    Cc: Martin Schwidefsky <[EMAIL PROTECTED]>
    Cc: Paul Mundt <[EMAIL PROTECTED]>
    Cc: Kazumoto Kojima <[EMAIL PROTECTED]>
    Cc: Richard Curnow <[EMAIL PROTECTED]>
    Cc: William Lee Irwin III <[EMAIL PROTECTED]>
    Cc: "David S. Miller" <[EMAIL PROTECTED]>
    Cc: Jeff Dike <[EMAIL PROTECTED]>
    Cc: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
    Cc: Miles Bader <[EMAIL PROTECTED]>
    Cc: Andi Kleen <[EMAIL PROTECTED]>
    Cc: Chris Zankel <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 arch/blackfin/kernel/ptrace.c     |    6 +++---
 arch/h8300/kernel/asm-offsets.c   |    2 +-
 arch/ia64/kernel/mca.c            |    2 +-
 arch/mips/kernel/asm-offsets.c    |    2 +-
 arch/parisc/kernel/asm-offsets.c  |    2 +-
 arch/powerpc/kernel/asm-offsets.c |    2 +-
 arch/ppc/kernel/asm-offsets.c     |    2 +-
 arch/s390/kernel/asm-offsets.c    |    2 +-
 arch/sparc/kernel/asm-offsets.c   |    2 +-
 arch/v850/kernel/asm-offsets.c    |    2 +-
 arch/xtensa/kernel/asm-offsets.c  |    2 +-
 include/asm-alpha/thread_info.h   |    8 ++++----
 include/asm-blackfin/processor.h  |    6 +++---
 include/asm-blackfin/system.h     |    4 ++--
 include/asm-m68k/thread_info.h    |    6 +++---
 include/asm-x86_64/system.h       |    2 +-
 include/linux/init_task.h         |    2 +-
 include/linux/sched.h             |    8 ++++----
 kernel/fork.c                     |    4 ++--
 19 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c
index d7c8e51..e718bb4 100644
--- a/arch/blackfin/kernel/ptrace.c
+++ b/arch/blackfin/kernel/ptrace.c
@@ -73,7 +73,7 @@
 static inline struct pt_regs *get_user_regs(struct task_struct *task)
 {
        return (struct pt_regs *)
-           ((unsigned long)task->thread_info +
+           ((unsigned long)task_stack_page(task) +
             (THREAD_SIZE - sizeof(struct pt_regs)));
 }
 
@@ -99,7 +99,7 @@ static inline long get_reg(struct task_struct *task, int 
regno)
        unsigned char *reg_ptr;
 
        struct pt_regs *regs =
-           (struct pt_regs *)((unsigned long)task->thread_info +
+           (struct pt_regs *)((unsigned long)task_stack_page(task) +
                               (THREAD_SIZE - sizeof(struct pt_regs)));
        reg_ptr = (char *)regs;
 
@@ -125,7 +125,7 @@ put_reg(struct task_struct *task, int regno, unsigned long 
data)
        char * reg_ptr;
 
        struct pt_regs *regs =
-           (struct pt_regs *)((unsigned long)task->thread_info +
+           (struct pt_regs *)((unsigned long)task_stack_page(task) +
                               (THREAD_SIZE - sizeof(struct pt_regs)));
        reg_ptr = (char *)regs;
 
diff --git a/arch/h8300/kernel/asm-offsets.c b/arch/h8300/kernel/asm-offsets.c
index b78b82a..fc30b4f 100644
--- a/arch/h8300/kernel/asm-offsets.c
+++ b/arch/h8300/kernel/asm-offsets.c
@@ -30,7 +30,7 @@ int main(void)
        DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
        DEFINE(TASK_BLOCKED, offsetof(struct task_struct, blocked));
        DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
-       DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, thread_info));
+       DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, stack));
        DEFINE(TASK_MM, offsetof(struct task_struct, mm));
        DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
 
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 1d7cc7e..f8ae709 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,
        ti->preempt_count = 1;
        ti->task = p;
        ti->cpu = cpu;
-       p->thread_info = ti;
+       p->stack = ti;
        p->state = TASK_UNINTERRUPTIBLE;
        cpu_set(cpu, p->cpus_allowed);
        INIT_LIST_HEAD(&p->tasks);
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c
index 761a779..3b27309 100644
--- a/arch/mips/kernel/asm-offsets.c
+++ b/arch/mips/kernel/asm-offsets.c
@@ -82,7 +82,7 @@ void output_task_defines(void)
 {
        text("/* MIPS task_struct offsets. */");
        offset("#define TASK_STATE         ", struct task_struct, state);
-       offset("#define TASK_THREAD_INFO   ", struct task_struct, thread_info);
+       offset("#define TASK_THREAD_INFO   ", struct task_struct, stack);
        offset("#define TASK_FLAGS         ", struct task_struct, flags);
        offset("#define TASK_MM            ", struct task_struct, mm);
        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 54fdb95..d3b7917 100644
--- a/arch/parisc/kernel/asm-offsets.c
+++ b/arch/parisc/kernel/asm-offsets.c
@@ -54,7 +54,7 @@
 
 int main(void)
 {
-       DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, thread_info));
+       DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, stack));
        DEFINE(TASK_STATE, offsetof(struct task_struct, state));
        DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
        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 8f48560..37bc35e 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -58,7 +58,7 @@ int main(void)
 #ifdef CONFIG_PPC64
        DEFINE(AUDITCONTEXT, offsetof(struct task_struct, audit_context));
 #else
-       DEFINE(THREAD_INFO, offsetof(struct task_struct, thread_info));
+       DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
        DEFINE(PTRACE, offsetof(struct task_struct, ptrace));
 #endif /* CONFIG_PPC64 */
 
diff --git a/arch/ppc/kernel/asm-offsets.c b/arch/ppc/kernel/asm-offsets.c
index c5850a2..e8e9432 100644
--- a/arch/ppc/kernel/asm-offsets.c
+++ b/arch/ppc/kernel/asm-offsets.c
@@ -35,7 +35,7 @@ int
 main(void)
 {
        DEFINE(THREAD, offsetof(struct task_struct, thread));
-       DEFINE(THREAD_INFO, offsetof(struct task_struct, thread_info));
+       DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
        DEFINE(MM, offsetof(struct task_struct, mm));
        DEFINE(PTRACE, offsetof(struct task_struct, ptrace));
        DEFINE(KSP, offsetof(struct thread_struct, ksp));
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index ec514fe..1375f8a 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -15,7 +15,7 @@
 
 int main(void)
 {
-       DEFINE(__THREAD_info, offsetof(struct task_struct, thread_info),);
+       DEFINE(__THREAD_info, offsetof(struct task_struct, stack),);
        DEFINE(__THREAD_ksp, offsetof(struct task_struct, thread.ksp),);
        DEFINE(__THREAD_per, offsetof(struct task_struct, thread.per_info),);
        DEFINE(__THREAD_mm_segment,
diff --git a/arch/sparc/kernel/asm-offsets.c b/arch/sparc/kernel/asm-offsets.c
index 29d7cfd..6773ed7 100644
--- a/arch/sparc/kernel/asm-offsets.c
+++ b/arch/sparc/kernel/asm-offsets.c
@@ -28,7 +28,7 @@ int foo(void)
        DEFINE(AOFF_task_gid, offsetof(struct task_struct, gid));
        DEFINE(AOFF_task_euid, offsetof(struct task_struct, euid));
        DEFINE(AOFF_task_egid, offsetof(struct task_struct, egid));
-       /* DEFINE(THREAD_INFO, offsetof(struct task_struct, thread_info)); */
+       /* DEFINE(THREAD_INFO, offsetof(struct task_struct, stack)); */
        DEFINE(ASIZ_task_uid,   sizeof(current->uid));
        DEFINE(ASIZ_task_gid,   sizeof(current->gid));
        DEFINE(ASIZ_task_euid,  sizeof(current->euid));
diff --git a/arch/v850/kernel/asm-offsets.c b/arch/v850/kernel/asm-offsets.c
index 24f2913..cee5c31 100644
--- a/arch/v850/kernel/asm-offsets.c
+++ b/arch/v850/kernel/asm-offsets.c
@@ -29,7 +29,7 @@ int main (void)
        DEFINE (TASK_PTRACE, offsetof (struct task_struct, ptrace));
        DEFINE (TASK_BLOCKED, offsetof (struct task_struct, blocked));
        DEFINE (TASK_THREAD, offsetof (struct task_struct, thread));
-       DEFINE (TASK_THREAD_INFO, offsetof (struct task_struct, thread_info));
+       DEFINE (TASK_THREAD_INFO, offsetof (struct task_struct, stack));
        DEFINE (TASK_MM, offsetof (struct task_struct, mm));
        DEFINE (TASK_ACTIVE_MM, offsetof (struct task_struct, active_mm));
        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 b256cfb..698079b 100644
--- a/arch/xtensa/kernel/asm-offsets.c
+++ b/arch/xtensa/kernel/asm-offsets.c
@@ -70,7 +70,7 @@ int main(void)
        DEFINE(TASK_ACTIVE_MM, offsetof (struct task_struct, active_mm));
        DEFINE(TASK_PID, offsetof (struct task_struct, pid));
        DEFINE(TASK_THREAD, offsetof (struct task_struct, thread));
-       DEFINE(TASK_THREAD_INFO, offsetof (struct task_struct, thread_info));
+       DEFINE(TASK_THREAD_INFO, offsetof (struct task_struct, stack));
        DEFINE(TASK_STRUCT_SIZE, sizeof (struct task_struct));
        BLANK();
 
diff --git a/include/asm-alpha/thread_info.h b/include/asm-alpha/thread_info.h
index eeb3bef..f4defc2 100644
--- a/include/asm-alpha/thread_info.h
+++ b/include/asm-alpha/thread_info.h
@@ -97,7 +97,7 @@ register struct thread_info *__current_thread_info 
__asm__("$8");
                                 1 << TIF_UAC_SIGBUS)
 
 #define SET_UNALIGN_CTL(task,value)    ({                                   \
-       (task)->thread_info->flags = (((task)->thread_info->flags &          \
+       task_thread_info(task)->flags = ((task_thread_info(task)->flags &    \
                ~ALPHA_UAC_MASK)                                             \
                | (((value) << ALPHA_UAC_SHIFT)       & (1<<TIF_UAC_NOPRINT))\
                | (((value) << (ALPHA_UAC_SHIFT + 1)) & (1<<TIF_UAC_SIGBUS)) \
@@ -105,11 +105,11 @@ register struct thread_info *__current_thread_info 
__asm__("$8");
        0; })
 
 #define GET_UNALIGN_CTL(task,value)    ({                              \
-       put_user(((task)->thread_info->flags & (1 << TIF_UAC_NOPRINT))  \
+       put_user((task_thread_info(task)->flags & (1 << TIF_UAC_NOPRINT))\
                  >> ALPHA_UAC_SHIFT                                    \
-                | ((task)->thread_info->flags & (1 << TIF_UAC_SIGBUS)) \
+                | (task_thread_info(task)->flags & (1 << TIF_UAC_SIGBUS))\
                 >> (ALPHA_UAC_SHIFT + 1)                               \
-                | ((task)->thread_info->flags & (1 << TIF_UAC_NOFIX))  \
+                | (task_thread_info(task)->flags & (1 << TIF_UAC_NOFIX))\
                 >> (ALPHA_UAC_SHIFT - 1),                              \
                 (int __user *)(value));                                \
        })
diff --git a/include/asm-blackfin/processor.h b/include/asm-blackfin/processor.h
index 997465c..0336ff1 100644
--- a/include/asm-blackfin/processor.h
+++ b/include/asm-blackfin/processor.h
@@ -58,10 +58,10 @@ do {                                                        
                \
        (_regs)->pc = (_pc);                                            \
        if (current->mm)                                                \
                (_regs)->p5 = current->mm->start_data;                  \
-       current->thread_info->l1_task_info.stack_start                  \
+       task_thread_info(current)->l1_task_info.stack_start             \
                = (void *)current->mm->context.stack_start;             \
-       current->thread_info->l1_task_info.lowest_sp = (void *)(_usp);          
\
-       memcpy(L1_SCRATCH_TASK_INFO, &current->thread_info->l1_task_info,       
\
+       task_thread_info(current)->l1_task_info.lowest_sp = (void *)(_usp); \
+       memcpy(L1_SCRATCH_TASK_INFO, &task_thread_info(current)->l1_task_info, \
                sizeof(*L1_SCRATCH_TASK_INFO));                         \
        wrusp(_usp);                                                    \
 } while(0)
diff --git a/include/asm-blackfin/system.h b/include/asm-blackfin/system.h
index b5bf6e7..5e5f1a0 100644
--- a/include/asm-blackfin/system.h
+++ b/include/asm-blackfin/system.h
@@ -239,9 +239,9 @@ asmlinkage struct task_struct *resume(struct task_struct 
*prev, struct task_stru
 
 #define switch_to(prev,next,last) \
 do {    \
-       memcpy (&prev->thread_info->l1_task_info, L1_SCRATCH_TASK_INFO, \
+       memcpy (&task_thread_info(prev)->l1_task_info, L1_SCRATCH_TASK_INFO, \
                sizeof *L1_SCRATCH_TASK_INFO); \
-       memcpy (L1_SCRATCH_TASK_INFO, &next->thread_info->l1_task_info, \
+       memcpy (L1_SCRATCH_TASK_INFO, &task_thread_info(next)->l1_task_info, \
                sizeof *L1_SCRATCH_TASK_INFO); \
        (last) = resume (prev, next);   \
 } while (0)
diff --git a/include/asm-m68k/thread_info.h b/include/asm-m68k/thread_info.h
index c4d622a..d635a37 100644
--- a/include/asm-m68k/thread_info.h
+++ b/include/asm-m68k/thread_info.h
@@ -37,17 +37,17 @@ struct thread_info {
 #define init_stack             (init_thread_union.stack)
 
 #define task_thread_info(tsk)  (&(tsk)->thread.info)
-#define task_stack_page(tsk)   ((void *)(tsk)->thread_info)
+#define task_stack_page(tsk)   ((tsk)->stack)
 #define current_thread_info()  task_thread_info(current)
 
 #define __HAVE_THREAD_FUNCTIONS
 
 #define setup_thread_stack(p, org) ({                  \
-       *(struct task_struct **)(p)->thread_info = (p); \
+       *(struct task_struct **)(p)->stack = (p);       \
        task_thread_info(p)->task = (p);                \
 })
 
-#define end_of_stack(p) ((unsigned long *)(p)->thread_info + 1)
+#define end_of_stack(p) ((unsigned long *)(p)->stack + 1)
 
 /* entry.S relies on these definitions!
  * bits 0-7 are tested at every exception exit
diff --git a/include/asm-x86_64/system.h b/include/asm-x86_64/system.h
index b7b8021..ead9f9a 100644
--- a/include/asm-x86_64/system.h
+++ b/include/asm-x86_64/system.h
@@ -39,7 +39,7 @@
                       [threadrsp] "i" (offsetof(struct task_struct, 
thread.rsp)), \
                       [ti_flags] "i" (offsetof(struct thread_info, flags)),\
                       [tif_fork] "i" (TIF_FORK),                         \
-                      [thread_info] "i" (offsetof(struct task_struct, 
thread_info)), \
+                      [thread_info] "i" (offsetof(struct task_struct, stack)), 
\
                       [pda_pcurrent] "i" (offsetof(struct x8664_pda, 
pcurrent))   \
                     : "memory", "cc" __EXTRA_CLOBBER)
     
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 7951023..45170b2 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -95,7 +95,7 @@ extern struct group_info init_groups;
 #define INIT_TASK(tsk) \
 {                                                                      \
        .state          = 0,                                            \
-       .thread_info    = &init_thread_info,                            \
+       .stack          = &init_thread_info,                            \
        .usage          = ATOMIC_INIT(2),                               \
        .flags          = 0,                                            \
        .lock_depth     = -1,                                           \
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 28000b1..17b72d8 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -817,7 +817,7 @@ struct prio_array;
 
 struct task_struct {
        volatile long state;    /* -1 unrunnable, 0 runnable, >0 stopped */
-       struct thread_info *thread_info;
+       void *stack;
        atomic_t usage;
        unsigned int flags;     /* per process flags, defined below */
        unsigned int ptrace;
@@ -1513,8 +1513,8 @@ static inline void unlock_task_sighand(struct task_struct 
*tsk,
 
 #ifndef __HAVE_THREAD_FUNCTIONS
 
-#define task_thread_info(task) (task)->thread_info
-#define task_stack_page(task) ((void*)((task)->thread_info))
+#define task_thread_info(task) ((struct thread_info *)(task)->stack)
+#define task_stack_page(task)  ((task)->stack)
 
 static inline void setup_thread_stack(struct task_struct *p, struct 
task_struct *org)
 {
@@ -1524,7 +1524,7 @@ static inline void setup_thread_stack(struct task_struct 
*p, struct task_struct
 
 static inline unsigned long *end_of_stack(struct task_struct *p)
 {
-       return (unsigned long *)(p->thread_info + 1);
+       return (unsigned long *)(task_thread_info(p) + 1);
 }
 
 #endif
diff --git a/kernel/fork.c b/kernel/fork.c
index a8dd75d..5dd3979 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -105,7 +105,7 @@ static struct kmem_cache *mm_cachep;
 
 void free_task(struct task_struct *tsk)
 {
-       free_thread_info(tsk->thread_info);
+       free_thread_info(tsk->stack);
        rt_mutex_debug_task_free(tsk);
        free_task_struct(tsk);
 }
@@ -175,7 +175,7 @@ static struct task_struct *dup_task_struct(struct 
task_struct *orig)
        }
 
        *tsk = *orig;
-       tsk->thread_info = ti;
+       tsk->stack = ti;
        setup_thread_stack(tsk, orig);
 
 #ifdef CONFIG_CC_STACKPROTECTOR
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to