]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'signal/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Tue, 13 Nov 2012 04:37:16 +0000 (15:37 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 13 Nov 2012 04:37:16 +0000 (15:37 +1100)
Conflicts:
arch/arm/kernel/process.c
arch/sparc/kernel/sys_sparc_64.c

32 files changed:
1  2 
arch/arm/Kconfig
arch/arm/kernel/calls.S
arch/arm/kernel/entry-common.S
arch/arm/kernel/process.c
arch/arm64/kernel/process.c
arch/avr32/Kconfig
arch/blackfin/include/asm/unistd.h
arch/cris/include/asm/unistd.h
arch/microblaze/include/asm/unistd.h
arch/microblaze/kernel/entry-nommu.S
arch/microblaze/kernel/process.c
arch/mips/Kconfig
arch/mips/include/asm/processor.h
arch/mips/kernel/mips_ksyms.c
arch/mips/kernel/scall64-n32.S
arch/powerpc/include/asm/unistd.h
arch/s390/Kconfig
arch/s390/kernel/entry64.S
arch/sparc/Kconfig
arch/sparc/include/asm/processor_64.h
arch/sparc/include/asm/thread_info_64.h
arch/sparc/kernel/process_64.c
arch/sparc/kernel/sys_sparc_64.c
arch/sparc/kernel/systbls_64.S
arch/x86/Kconfig
arch/x86/kernel/process.c
arch/x86/syscalls/syscall_32.tbl
drivers/staging/gdm72xx/gdm_usb.c
include/linux/sched.h
include/linux/syscalls.h
kernel/auditsc.c
kernel/fork.c

Simple merge
Simple merge
Simple merge
index 585b9abae60649eaacd413444c99d3a60f424ad3,4ab80bbb6d9572ff7dadeb6b2669d04caee576c8..3406b5bda3b23fa494a6e2c1b189a756b33efc88
@@@ -384,14 -383,11 +384,15 @@@ copy_thread(unsigned long clone_flags, 
  
        memset(&thread->cpu_context, 0, sizeof(struct cpu_context_save));
  
-       if (likely(regs)) {
-               *childregs = *regs;
+       if (likely(!(p->flags & PF_KTHREAD))) {
+               *childregs = *current_pt_regs();
                childregs->ARM_r0 = 0;
-               childregs->ARM_sp = stack_start;
+               if (stack_start)
+                       childregs->ARM_sp = stack_start;
 +#if defined CONFIG_CPU_V7M
 +              /* Return to Thread mode with Process stack */
 +              childregs->ARM_EXC_RET = 0xfffffffdUL;
 +#endif
        } else {
                memset(childregs, 0, sizeof(struct pt_regs));
                thread->cpu_context.r4 = stk_sz;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 878ef3d5fec522d6b23d0640df962f33c2b958df,adfe60ece05f5e2c7b5fa810ed29a9041f44ad87..51b85feb8b973a0cbfaf8f8e35ae347227f0e12a
@@@ -729,30 -729,3 +729,8 @@@ SYSCALL_DEFINE5(rt_sigaction, int, sig
  
        return ret;
  }
- /*
-  * Do a system call from kernel instead of calling sys_execve so we
-  * end up with proper pt_regs.
-  */
- int kernel_execve(const char *filename,
-                 const char *const argv[],
-                 const char *const envp[])
- {
-       long __res;
-       register long __g1 __asm__ ("g1") = __NR_execve;
-       register long __o0 __asm__ ("o0") = (long)(filename);
-       register long __o1 __asm__ ("o1") = (long)(argv);
-       register long __o2 __asm__ ("o2") = (long)(envp);
-       asm volatile ("t 0x6d\n\t"
-                     "sub %%g0, %%o0, %0\n\t"
-                     "movcc %%xcc, %%o0, %0\n\t"
-                     : "=r" (__res), "=&r" (__o0)
-                     : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1)
-                     : "cc");
-       return __res;
- }
 +
 +asmlinkage long sys_kern_features(void)
 +{
 +      return KERN_FEATURE_MIXED_MODE_STACK;
 +}
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/fork.c
Simple merge