Merge tag 'v3.7-rc5' into execve
Linux 3.7-rc5 Conflicts: arch/arm64/kernel/process.c
This commit is contained in:
@@ -43,6 +43,8 @@
|
||||
#else
|
||||
#define STACK_TOP STACK_TOP_MAX
|
||||
#endif /* CONFIG_COMPAT */
|
||||
|
||||
#define ARCH_LOW_ADDRESS_LIMIT PHYS_MASK
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
struct debug_info {
|
||||
@@ -92,30 +94,20 @@ static inline void start_thread_common(struct pt_regs *regs, unsigned long pc)
|
||||
static inline void start_thread(struct pt_regs *regs, unsigned long pc,
|
||||
unsigned long sp)
|
||||
{
|
||||
unsigned long *stack = (unsigned long *)sp;
|
||||
|
||||
start_thread_common(regs, pc);
|
||||
regs->pstate = PSR_MODE_EL0t;
|
||||
regs->sp = sp;
|
||||
regs->regs[2] = stack[2]; /* x2 (envp) */
|
||||
regs->regs[1] = stack[1]; /* x1 (argv) */
|
||||
regs->regs[0] = stack[0]; /* x0 (argc) */
|
||||
}
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
static inline void compat_start_thread(struct pt_regs *regs, unsigned long pc,
|
||||
unsigned long sp)
|
||||
{
|
||||
unsigned int *stack = (unsigned int *)sp;
|
||||
|
||||
start_thread_common(regs, pc);
|
||||
regs->pstate = COMPAT_PSR_MODE_USR;
|
||||
if (pc & 1)
|
||||
regs->pstate |= COMPAT_PSR_T_BIT;
|
||||
regs->compat_sp = sp;
|
||||
regs->regs[2] = stack[2]; /* x2 (envp) */
|
||||
regs->regs[1] = stack[1]; /* x1 (argv) */
|
||||
regs->regs[0] = stack[0]; /* x0 (argc) */
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user