]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'signal/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Thu, 27 Sep 2012 06:28:30 +0000 (16:28 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 27 Sep 2012 06:28:30 +0000 (16:28 +1000)
Conflicts:
arch/alpha/Kconfig
arch/arm/Kconfig
arch/arm/include/asm/thread_info.h
arch/c6x/Kconfig
arch/cris/include/asm/Kbuild
arch/h8300/include/asm/Kbuild
arch/m32r/include/asm/Kbuild
arch/m68k/Kconfig
arch/mn10300/Kconfig
arch/powerpc/Kconfig
arch/s390/Kconfig
arch/x86/Kconfig
arch/x86/kernel/process_32.c

53 files changed:
1  2 
arch/Kconfig
arch/alpha/Kconfig
arch/alpha/kernel/process.c
arch/arm/Kconfig
arch/arm/include/asm/thread_info.h
arch/arm/include/asm/unistd.h
arch/arm/kernel/calls.S
arch/arm/kernel/entry-common.S
arch/arm/kernel/process.c
arch/c6x/Kconfig
arch/c6x/include/asm/Kbuild
arch/cris/include/asm/Kbuild
arch/frv/kernel/process.c
arch/h8300/include/asm/Kbuild
arch/ia64/kernel/signal.c
arch/m32r/include/asm/Kbuild
arch/m68k/Kconfig
arch/m68k/kernel/process.c
arch/mn10300/Kconfig
arch/mn10300/kernel/process.c
arch/powerpc/Kconfig
arch/powerpc/include/asm/processor.h
arch/powerpc/include/asm/thread_info.h
arch/powerpc/kernel/entry_32.S
arch/powerpc/kernel/entry_64.S
arch/powerpc/kernel/ppc_ksyms.c
arch/powerpc/kernel/process.c
arch/s390/Kconfig
arch/s390/include/asm/processor.h
arch/s390/include/asm/unistd.h
arch/s390/kernel/compat_linux.c
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/entry64.S
arch/s390/kernel/process.c
arch/sparc/include/asm/Kbuild
arch/x86/Kconfig
arch/x86/ia32/ia32entry.S
arch/x86/ia32/sys_ia32.c
arch/x86/include/asm/processor.h
arch/x86/include/asm/sys_ia32.h
arch/x86/kernel/Makefile
arch/x86/kernel/entry_32.S
arch/x86/kernel/entry_64.S
arch/x86/kernel/process.c
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c
arch/x86/kernel/signal.c
arch/x86/um/Kconfig
fs/exec.c
include/linux/ptrace.h
include/linux/sched.h
kernel/fork.c
kernel/sched/core.c

diff --cc arch/Kconfig
Simple merge
index 7e3710c0cce5a4c2ef51b8a889a061979a0b9b24,7da91246e2793c6d8ecf5556ca65530c6c7275c0..6ac8f6e512f6f6a49949bd0378a6d848b8da8ecc
@@@ -20,8 -20,7 +20,9 @@@ config ALPH
        select GENERIC_CMOS_UPDATE
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
 +      select HAVE_MOD_ARCH_SPECIFIC
 +      select MODULES_USE_ELF_RELA
+       select GENERIC_KERNEL_THREAD
        help
          The Alpha is a 64-bit general-purpose processor designed and
          marketed by the Digital Equipment Corporation of blessed memory,
Simple merge
index e38065d7e026441191df79c523501de0b8522d67,a949eec2286190c8739e60017165f2e50381b917..3e186c0cf93c1e29f50282eb76ee9b4fcba13240
@@@ -50,8 -49,7 +50,9 @@@ config AR
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN
 +      select HAVE_MOD_ARCH_SPECIFIC if ARM_UNWIND
 +      select MODULES_USE_ELF_REL
+       select GENERIC_KERNEL_THREAD
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
index f71cdab18b87589beb5d4df33bcae80483e71536,b2d6b412172d1990cedd5d873a4fdae07bbade67..8477b4c1d39fb3fe43c21691d1ad46846a947e89
@@@ -150,8 -148,6 +150,7 @@@ extern int vfp_restore_user_hwstate(str
  #define TIF_NOTIFY_RESUME     2       /* callback before returning to user */
  #define TIF_SYSCALL_TRACE     8
  #define TIF_SYSCALL_AUDIT     9
- #define TIF_POLLING_NRFLAG    16
 +#define TIF_SYSCALL_TRACEPOINT        10
  #define TIF_USING_IWMMXT      17
  #define TIF_MEMDIE            18      /* is terminating due to OOM killer */
  #define TIF_RESTORE_SIGMASK   20
  #define _TIF_NOTIFY_RESUME    (1 << TIF_NOTIFY_RESUME)
  #define _TIF_SYSCALL_TRACE    (1 << TIF_SYSCALL_TRACE)
  #define _TIF_SYSCALL_AUDIT    (1 << TIF_SYSCALL_AUDIT)
- #define _TIF_POLLING_NRFLAG   (1 << TIF_POLLING_NRFLAG)
 +#define _TIF_SYSCALL_TRACEPOINT       (1 << TIF_SYSCALL_TRACEPOINT)
  #define _TIF_USING_IWMMXT     (1 << TIF_USING_IWMMXT)
  #define _TIF_SECCOMP          (1 << TIF_SECCOMP)
  
Simple merge
Simple merge
Simple merge
Simple merge
index f6a3648f5ec3c7030a8c4294be4e3bee54a25b6c,45268b50c0c88907e09a738a3d60f55c4ac2afe5..20ef56e467b364d930ed42749f22ebb97eeaba2f
@@@ -17,7 -17,7 +17,8 @@@ config C6
        select OF
        select OF_EARLY_FLATTREE
        select GENERIC_CLOCKEVENTS
 +      select MODULES_USE_ELF_RELA
+       select GENERIC_KERNEL_THREAD
  
  config MMU
        def_bool n
Simple merge
index 28b690de797116ca4f5deb292021b75e72924e82,b68ad4bfa088cffd5293fc4c3cfad53e6b060c45..f5ae9de736d37f460d433548108fa59ce7168759
@@@ -8,4 -8,4 +8,5 @@@ header-y += etraxgpio.
  header-y += rs485.h
  header-y += sync_serial.h
  
 +generic-y += module.h
+ generic-y += exec.h
Simple merge
index 871382d239fef60105b37f50424afe24ed6773e3,3a2af1a2974fc49e21586455c608d3b192f613f4..883a0be9f69f7921b993698a576b176460bec0cd
@@@ -1,3 -1,2 +1,4 @@@
  include include/asm-generic/Kbuild.asm
 +
 +generic-y     += module.h
+ generic-y += exec.h
Simple merge
index 871382d239fef60105b37f50424afe24ed6773e3,708340339b057e16c4accba616fd5d37ffa53838..883a0be9f69f7921b993698a576b176460bec0cd
@@@ -1,3 -1,3 +1,4 @@@
  include include/asm-generic/Kbuild.asm
  
 +generic-y     += module.h
+ generic-y += exec.h
index 0df07cee3faf5e1c0585f879a8e61e8d69a1d81b,ccda007ba40fae0e0d0fb7e8b18febabb368cc27..b4126a7dfddcd9c44da41b1c48e136cf26917066
@@@ -13,9 -13,7 +13,10 @@@ config M68
        select FPU if MMU
        select ARCH_WANT_IPC_PARSE_VERSION
        select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE
 +      select HAVE_MOD_ARCH_SPECIFIC
 +      select MODULES_USE_ELF_REL
 +      select MODULES_USE_ELF_RELA
+       select GENERIC_KERNEL_THREAD
  
  config RWSEM_GENERIC_SPINLOCK
        bool
Simple merge
index aa03f2e13385fe5083a50b17ae6f8c02e3ccb269,ddbdc33471a830b152ec1f5cb3dcf9912d805fda..549b9e50182eb26ab8d10a9eae0e9f38e63e852f
@@@ -8,7 -8,7 +8,8 @@@ config MN1030
        select HAVE_ARCH_KGDB
        select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
        select GENERIC_CLOCKEVENTS
 +      select MODULES_USE_ELF_RELA
+       select GENERIC_KERNEL_THREAD
  
  config AM33_2
        def_bool n
Simple merge
index 8d8a7c6a7066c7a160e5f172617063c687afe050,6e5a0979c085b9947e395a8a06dd7d3cae15d554..088fc76ce9f014c82ab7af20a518b771f57d61e6
@@@ -139,8 -139,7 +139,9 @@@ config PP
        select GENERIC_CLOCKEVENTS
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
 +      select HAVE_MOD_ARCH_SPECIFIC
 +      select MODULES_USE_ELF_RELA
+       select GENERIC_KERNEL_THREAD
  
  config EARLY_PRINTK
        bool
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index de7ce84eae560b455cae1ce1764bdff1db838b2c,57442393bac72783270ccce346f3972b1aa8bea5..35eaaaa62d3f62320f893cba8340cbb57f01a330
@@@ -132,8 -125,7 +132,9 @@@ config S39
        select GENERIC_CLOCKEVENTS
        select KTIME_SCALAR if 32BIT
        select HAVE_ARCH_SECCOMP_FILTER
 +      select HAVE_MOD_ARCH_SPECIFIC
 +      select MODULES_USE_ELF_RELA
+       select GENERIC_KERNEL_THREAD
  
  config SCHED_OMIT_FRAME_POINTER
        def_bool y
index 56831dfa9198c6e2192605fd5ee9d68c538d8b17,da6f5baeee5c20925d82a648690fa12c14ea8044..94e749c90230d9f824949429d505625f90f7b4e7
@@@ -142,15 -133,8 +145,14 @@@ struct task_struct
  struct mm_struct;
  struct seq_file;
  
 +#ifdef CONFIG_64BIT
 +extern void show_cacheinfo(struct seq_file *m);
 +#else
 +static inline void show_cacheinfo(struct seq_file *m) { }
 +#endif
 +
  /* Free all resources held by a thread. */
  extern void release_thread(struct task_struct *);
- extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
  
  /*
   * Return saved PC of a blocked thread.
Simple merge
Simple merge
Simple merge
Simple merge
index 5024be27df444b3dedc669f823734404fcb0fe4c,bab088de45697b4772d26e76638554b5f688420a..cd31ad457a9bdb7890a0ff7eae840a63f5f0f48f
@@@ -169,15 -146,25 +149,30 @@@ int copy_thread(unsigned long clone_fla
        /* fake return stack for resume(), don't go back to schedule */
        frame->sf.gprs[9] = (unsigned long) frame;
  
-       /* Save access registers to new thread structure. */
-       save_access_regs(&p->thread.acrs[0]);
+       /* Store access registers to kernel stack of new process. */
+       if (unlikely(!regs)) {
+               /* kernel thread */
+               memset(&frame->childregs, 0, sizeof(struct pt_regs));
+               frame->childregs.psw.mask = psw_kernel_bits | PSW_MASK_DAT |
+                               PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK;
+               frame->childregs.psw.addr = PSW_ADDR_AMODE |
+                               (unsigned long) kernel_thread_starter;
+               frame->childregs.gprs[9] = new_stackp; /* function */
+               frame->childregs.gprs[10] = arg;
+               frame->childregs.gprs[11] = (unsigned long) do_exit;
+               frame->childregs.orig_gpr2 = -1;
+               return 0;
+       }
+       frame->childregs = *regs;
+       frame->childregs.gprs[2] = 0;   /* child returns 0 on fork. */
+       frame->childregs.gprs[15] = new_stackp;
  
 +      /* Don't copy runtime instrumentation info */
 +      p->thread.ri_cb = NULL;
 +      p->thread.ri_signum = 0;
 +      frame->childregs.psw.mask &= ~PSW_MASK_RI;
 +
  #ifndef CONFIG_64BIT
        /*
         * save fprs to current->thread.fp_regs to merge them with
Simple merge
index 670c97ae00263e6a2c32b479f54f182654ccd9d9,d93eb9d1bb974bab77fb37045bf2a11f199303c0..ef595cc4411d003085b6ebeddff4c9a8d6741003
@@@ -102,12 -97,10 +102,13 @@@ config X8
        select KTIME_SCALAR if X86_32
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
 +      select MODULES_USE_ELF_REL if X86_32
 +      select MODULES_USE_ELF_RELA if X86_64
+       select GENERIC_KERNEL_THREAD
  
  config INSTRUCTION_DECODER
 -      def_bool (KPROBES || PERF_EVENTS || UPROBES)
 +      def_bool y
 +      depends on KPROBES || PERF_EVENTS || UPROBES
  
  config OUTPUT_FORMAT
        string
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index b9ff83c7135bad337d4e5d7e7554be6e833204a0,25e7e9390d26349208eabac5f19e36725682aa67..44e0bff38e724de5b9e02e5bd9581133999ad40e
@@@ -190,6 -207,16 +207,12 @@@ start_thread(struct pt_regs *regs, unsi
        regs->cs                = __USER_CS;
        regs->ip                = new_ip;
        regs->sp                = new_sp;
 -      /*
 -       * Free the old FP and other extended state
 -       */
 -      free_thread_xstate(current);
+       regs->flags             = X86_EFLAGS_IF;
+       /*
+        * force it to the iret return path by making it look as if there was
+        * some work pending.
+        */
+       set_thread_flag(TIF_NOTIFY_RESUME);
  }
  EXPORT_SYMBOL_GPL(start_thread);
  
Simple merge
Simple merge
Simple merge
diff --cc fs/exec.c
Simple merge
Simple merge
Simple merge
diff --cc kernel/fork.c
Simple merge
Simple merge