diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2006-01-12 04:06:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-12 12:08:58 -0500 |
commit | ab03591db110e8d195d381a68692eb37da981cdf (patch) | |
tree | 2ebf699572844388ee9a12407e31d2915a399cb5 /arch | |
parent | 718d6114fcd894bf4d3527b9e206a1cbcaaae35d (diff) |
[PATCH] ia64: task_thread_info()
on ia64 thread_info is at the constant offset from task_struct and stack
is embedded into the same beast. Set __HAVE_THREAD_FUNCTIONS, made
task_thread_info() just add a constant.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/kernel/mca.c | 4 | ||||
-rw-r--r-- | arch/ia64/kernel/signal.c | 10 |
2 files changed, 7 insertions, 7 deletions
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 355af15287c7..ee7eec9ee576 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -766,7 +766,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs, | |||
766 | l = strlen(previous_current->comm); | 766 | l = strlen(previous_current->comm); |
767 | snprintf(comm, sizeof(comm), "%s %*s %d", | 767 | snprintf(comm, sizeof(comm), "%s %*s %d", |
768 | current->comm, l, previous_current->comm, | 768 | current->comm, l, previous_current->comm, |
769 | previous_current->thread_info->cpu); | 769 | task_thread_info(previous_current)->cpu); |
770 | } | 770 | } |
771 | memcpy(current->comm, comm, sizeof(current->comm)); | 771 | memcpy(current->comm, comm, sizeof(current->comm)); |
772 | 772 | ||
@@ -1423,7 +1423,7 @@ format_mca_init_stack(void *mca_data, unsigned long offset, | |||
1423 | struct task_struct *p = (struct task_struct *)((char *)mca_data + offset); | 1423 | struct task_struct *p = (struct task_struct *)((char *)mca_data + offset); |
1424 | struct thread_info *ti; | 1424 | struct thread_info *ti; |
1425 | memset(p, 0, KERNEL_STACK_SIZE); | 1425 | memset(p, 0, KERNEL_STACK_SIZE); |
1426 | ti = (struct thread_info *)((char *)p + IA64_TASK_SIZE); | 1426 | ti = task_thread_info(p); |
1427 | ti->flags = _TIF_MCA_INIT; | 1427 | ti->flags = _TIF_MCA_INIT; |
1428 | ti->preempt_count = 1; | 1428 | ti->preempt_count = 1; |
1429 | ti->task = p; | 1429 | ti->task = p; |
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c index 58ce07efc56e..463f6bb44d07 100644 --- a/arch/ia64/kernel/signal.c +++ b/arch/ia64/kernel/signal.c | |||
@@ -655,11 +655,11 @@ set_sigdelayed(pid_t pid, int signo, int code, void __user *addr) | |||
655 | 655 | ||
656 | if (!t) | 656 | if (!t) |
657 | return; | 657 | return; |
658 | t->thread_info->sigdelayed.signo = signo; | 658 | task_thread_info(t)->sigdelayed.signo = signo; |
659 | t->thread_info->sigdelayed.code = code; | 659 | task_thread_info(t)->sigdelayed.code = code; |
660 | t->thread_info->sigdelayed.addr = addr; | 660 | task_thread_info(t)->sigdelayed.addr = addr; |
661 | t->thread_info->sigdelayed.start_time = start_time; | 661 | task_thread_info(t)->sigdelayed.start_time = start_time; |
662 | t->thread_info->sigdelayed.pid = pid; | 662 | task_thread_info(t)->sigdelayed.pid = pid; |
663 | wmb(); | 663 | wmb(); |
664 | set_tsk_thread_flag(t, TIF_SIGDELAYED); | 664 | set_tsk_thread_flag(t, TIF_SIGDELAYED); |
665 | } | 665 | } |