[PATCH] ia64: task_pt_regs()
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:
@@ -192,7 +192,7 @@ compat_ptr (compat_uptr_t uptr)
|
||||
static __inline__ void __user *
|
||||
compat_alloc_user_space (long len)
|
||||
{
|
||||
struct pt_regs *regs = ia64_task_regs(current);
|
||||
struct pt_regs *regs = task_pt_regs(current);
|
||||
return (void __user *) (((regs->r12 & 0xffffffff) & -16) - len);
|
||||
}
|
||||
|
||||
|
||||
@@ -352,7 +352,7 @@ extern unsigned long get_wchan (struct task_struct *p);
|
||||
/* Return instruction pointer of blocked task TSK. */
|
||||
#define KSTK_EIP(tsk) \
|
||||
({ \
|
||||
struct pt_regs *_regs = ia64_task_regs(tsk); \
|
||||
struct pt_regs *_regs = task_pt_regs(tsk); \
|
||||
_regs->cr_iip + ia64_psr(_regs)->ri; \
|
||||
})
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ struct switch_stack {
|
||||
})
|
||||
|
||||
/* given a pointer to a task_struct, return the user's pt_regs */
|
||||
# define ia64_task_regs(t) (((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
|
||||
# define task_pt_regs(t) (((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
|
||||
# define ia64_psr(regs) ((struct ia64_psr *) &(regs)->cr_ipsr)
|
||||
# define user_mode(regs) (((struct ia64_psr *) &(regs)->cr_ipsr)->cpl != 0)
|
||||
# define user_stack(task,regs) ((long) regs - (long) task == IA64_STK_OFFSET - sizeof(*regs))
|
||||
@@ -271,7 +271,7 @@ struct switch_stack {
|
||||
*
|
||||
* On ia64, we can clear the user's pt_regs->r8 to force a successful syscall.
|
||||
*/
|
||||
# define force_successful_syscall_return() (ia64_task_regs(current)->r8 = 0)
|
||||
# define force_successful_syscall_return() (task_pt_regs(current)->r8 = 0)
|
||||
|
||||
struct task_struct; /* forward decl */
|
||||
struct unw_frame_info; /* forward decl */
|
||||
|
||||
@@ -219,14 +219,14 @@ extern void ia64_load_extra (struct task_struct *task);
|
||||
|
||||
#define IA64_HAS_EXTRA_STATE(t) \
|
||||
((t)->thread.flags & (IA64_THREAD_DBG_VALID|IA64_THREAD_PM_VALID) \
|
||||
|| IS_IA32_PROCESS(ia64_task_regs(t)) || PERFMON_IS_SYSWIDE())
|
||||
|| IS_IA32_PROCESS(task_pt_regs(t)) || PERFMON_IS_SYSWIDE())
|
||||
|
||||
#define __switch_to(prev,next,last) do { \
|
||||
if (IA64_HAS_EXTRA_STATE(prev)) \
|
||||
ia64_save_extra(prev); \
|
||||
if (IA64_HAS_EXTRA_STATE(next)) \
|
||||
ia64_load_extra(next); \
|
||||
ia64_psr(ia64_task_regs(next))->dfh = !ia64_is_local_fpu_owner(next); \
|
||||
ia64_psr(task_pt_regs(next))->dfh = !ia64_is_local_fpu_owner(next); \
|
||||
(last) = ia64_switch_to((next)); \
|
||||
} while (0)
|
||||
|
||||
@@ -238,8 +238,8 @@ extern void ia64_load_extra (struct task_struct *task);
|
||||
* the latest fph state from another CPU. In other words: eager save, lazy restore.
|
||||
*/
|
||||
# define switch_to(prev,next,last) do { \
|
||||
if (ia64_psr(ia64_task_regs(prev))->mfh && ia64_is_local_fpu_owner(prev)) { \
|
||||
ia64_psr(ia64_task_regs(prev))->mfh = 0; \
|
||||
if (ia64_psr(task_pt_regs(prev))->mfh && ia64_is_local_fpu_owner(prev)) { \
|
||||
ia64_psr(task_pt_regs(prev))->mfh = 0; \
|
||||
(prev)->thread.flags |= IA64_THREAD_FPH_VALID; \
|
||||
__ia64_save_fpu((prev)->thread.fph); \
|
||||
} \
|
||||
|
||||
Reference in New Issue
Block a user