mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
[PATCH] alpha: task_thread_info()
use task_thread_info() for accesses to thread_info of task in arch/alpha and include/asm-alpha 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>
This commit is contained in:
@@ -493,7 +493,7 @@ unsigned long
|
||||
thread_saved_pc(task_t *t)
|
||||
{
|
||||
unsigned long base = (unsigned long)t->thread_info;
|
||||
unsigned long fp, sp = t->thread_info->pcb.ksp;
|
||||
unsigned long fp, sp = task_thread_info(t)->pcb.ksp;
|
||||
|
||||
if (sp > base && sp+6*8 < base + 16*1024) {
|
||||
fp = ((unsigned long*)sp)[6];
|
||||
@@ -523,7 +523,7 @@ get_wchan(struct task_struct *p)
|
||||
|
||||
pc = thread_saved_pc(p);
|
||||
if (in_sched_functions(pc)) {
|
||||
schedule_frame = ((unsigned long *)p->thread_info->pcb.ksp)[6];
|
||||
schedule_frame = ((unsigned long *)task_thread_info(p)->pcb.ksp)[6];
|
||||
return ((unsigned long *)schedule_frame)[12];
|
||||
}
|
||||
return pc;
|
||||
|
||||
+19
-19
@@ -103,9 +103,9 @@ get_reg_addr(struct task_struct * task, unsigned long regno)
|
||||
unsigned long *addr;
|
||||
|
||||
if (regno == 30) {
|
||||
addr = &task->thread_info->pcb.usp;
|
||||
addr = &task_thread_info(task)->pcb.usp;
|
||||
} else if (regno == 65) {
|
||||
addr = &task->thread_info->pcb.unique;
|
||||
addr = &task_thread_info(task)->pcb.unique;
|
||||
} else if (regno == 31 || regno > 65) {
|
||||
zero = 0;
|
||||
addr = &zero;
|
||||
@@ -125,7 +125,7 @@ get_reg(struct task_struct * task, unsigned long regno)
|
||||
if (regno == 63) {
|
||||
unsigned long fpcr = *get_reg_addr(task, regno);
|
||||
unsigned long swcr
|
||||
= task->thread_info->ieee_state & IEEE_SW_MASK;
|
||||
= task_thread_info(task)->ieee_state & IEEE_SW_MASK;
|
||||
swcr = swcr_update_status(swcr, fpcr);
|
||||
return fpcr | swcr;
|
||||
}
|
||||
@@ -139,8 +139,8 @@ static int
|
||||
put_reg(struct task_struct *task, unsigned long regno, unsigned long data)
|
||||
{
|
||||
if (regno == 63) {
|
||||
task->thread_info->ieee_state
|
||||
= ((task->thread_info->ieee_state & ~IEEE_SW_MASK)
|
||||
task_thread_info(task)->ieee_state
|
||||
= ((task_thread_info(task)->ieee_state & ~IEEE_SW_MASK)
|
||||
| (data & IEEE_SW_MASK));
|
||||
data = (data & FPCR_DYN_MASK) | ieee_swcr_to_fpcr(data);
|
||||
}
|
||||
@@ -188,35 +188,35 @@ ptrace_set_bpt(struct task_struct * child)
|
||||
* branch (emulation can be tricky for fp branches).
|
||||
*/
|
||||
displ = ((s32)(insn << 11)) >> 9;
|
||||
child->thread_info->bpt_addr[nsaved++] = pc + 4;
|
||||
task_thread_info(child)->bpt_addr[nsaved++] = pc + 4;
|
||||
if (displ) /* guard against unoptimized code */
|
||||
child->thread_info->bpt_addr[nsaved++]
|
||||
task_thread_info(child)->bpt_addr[nsaved++]
|
||||
= pc + 4 + displ;
|
||||
DBG(DBG_BPT, ("execing branch\n"));
|
||||
} else if (op_code == 0x1a) {
|
||||
reg_b = (insn >> 16) & 0x1f;
|
||||
child->thread_info->bpt_addr[nsaved++] = get_reg(child, reg_b);
|
||||
task_thread_info(child)->bpt_addr[nsaved++] = get_reg(child, reg_b);
|
||||
DBG(DBG_BPT, ("execing jump\n"));
|
||||
} else {
|
||||
child->thread_info->bpt_addr[nsaved++] = pc + 4;
|
||||
task_thread_info(child)->bpt_addr[nsaved++] = pc + 4;
|
||||
DBG(DBG_BPT, ("execing normal insn\n"));
|
||||
}
|
||||
|
||||
/* install breakpoints: */
|
||||
for (i = 0; i < nsaved; ++i) {
|
||||
res = read_int(child, child->thread_info->bpt_addr[i],
|
||||
res = read_int(child, task_thread_info(child)->bpt_addr[i],
|
||||
(int *) &insn);
|
||||
if (res < 0)
|
||||
return res;
|
||||
child->thread_info->bpt_insn[i] = insn;
|
||||
task_thread_info(child)->bpt_insn[i] = insn;
|
||||
DBG(DBG_BPT, (" -> next_pc=%lx\n",
|
||||
child->thread_info->bpt_addr[i]));
|
||||
res = write_int(child, child->thread_info->bpt_addr[i],
|
||||
task_thread_info(child)->bpt_addr[i]));
|
||||
res = write_int(child, task_thread_info(child)->bpt_addr[i],
|
||||
BREAKINST);
|
||||
if (res < 0)
|
||||
return res;
|
||||
}
|
||||
child->thread_info->bpt_nsaved = nsaved;
|
||||
task_thread_info(child)->bpt_nsaved = nsaved;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -227,9 +227,9 @@ ptrace_set_bpt(struct task_struct * child)
|
||||
int
|
||||
ptrace_cancel_bpt(struct task_struct * child)
|
||||
{
|
||||
int i, nsaved = child->thread_info->bpt_nsaved;
|
||||
int i, nsaved = task_thread_info(child)->bpt_nsaved;
|
||||
|
||||
child->thread_info->bpt_nsaved = 0;
|
||||
task_thread_info(child)->bpt_nsaved = 0;
|
||||
|
||||
if (nsaved > 2) {
|
||||
printk("ptrace_cancel_bpt: bogus nsaved: %d!\n", nsaved);
|
||||
@@ -237,8 +237,8 @@ ptrace_cancel_bpt(struct task_struct * child)
|
||||
}
|
||||
|
||||
for (i = 0; i < nsaved; ++i) {
|
||||
write_int(child, child->thread_info->bpt_addr[i],
|
||||
child->thread_info->bpt_insn[i]);
|
||||
write_int(child, task_thread_info(child)->bpt_addr[i],
|
||||
task_thread_info(child)->bpt_insn[i]);
|
||||
}
|
||||
return (nsaved != 0);
|
||||
}
|
||||
@@ -355,7 +355,7 @@ do_sys_ptrace(long request, long pid, long addr, long data,
|
||||
if (!valid_signal(data))
|
||||
break;
|
||||
/* Mark single stepping. */
|
||||
child->thread_info->bpt_nsaved = -1;
|
||||
task_thread_info(child)->bpt_nsaved = -1;
|
||||
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
|
||||
child->exit_code = data;
|
||||
wake_up_process(child);
|
||||
|
||||
@@ -302,7 +302,7 @@ secondary_cpu_start(int cpuid, struct task_struct *idle)
|
||||
+ hwrpb->processor_offset
|
||||
+ cpuid * hwrpb->processor_size);
|
||||
hwpcb = (struct pcb_struct *) cpu->hwpcb;
|
||||
ipcb = &idle->thread_info->pcb;
|
||||
ipcb = &task_thread_info(idle)->pcb;
|
||||
|
||||
/* Initialize the CPU's HWPCB to something just good enough for
|
||||
us to get started. Immediately after starting, we'll swpctx
|
||||
|
||||
Reference in New Issue
Block a user