]> Pileus Git - ~andy/linux/commitdiff
Merge branch 'security-fixes' into fixes
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 3 Aug 2013 09:49:38 +0000 (10:49 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 3 Aug 2013 09:49:38 +0000 (10:49 +0100)
1  2 
arch/arm/kernel/process.c

index 16ed3f7c4980a8a3d2255780b57b9477638b0115,d03b5bd889c5d0c3101ea82fde6cbd6f06d76f0a..536c85fe72a838aafe3371e0280175b8cda2b452
@@@ -197,7 -197,6 +197,7 @@@ void machine_shutdown(void
   */
  void machine_halt(void)
  {
 +      local_irq_disable();
        smp_send_stop();
  
        local_irq_disable();
   */
  void machine_power_off(void)
  {
 +      local_irq_disable();
        smp_send_stop();
  
        if (pm_power_off)
   */
  void machine_restart(char *cmd)
  {
 +      local_irq_disable();
        smp_send_stop();
  
        arm_pm_restart(reboot_mode, cmd);
@@@ -474,17 -471,18 +474,18 @@@ const char *arch_vma_name(struct vm_are
                 "[sigpage]" : NULL;
  }
  
+ static struct page *signal_page;
  extern struct page *get_signal_page(void);
  
  int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
  {
        struct mm_struct *mm = current->mm;
-       struct page *page;
        unsigned long addr;
        int ret;
  
-       page = get_signal_page();
-       if (!page)
+       if (!signal_page)
+               signal_page = get_signal_page();
+       if (!signal_page)
                return -ENOMEM;
  
        down_write(&mm->mmap_sem);
  
        ret = install_special_mapping(mm, addr, PAGE_SIZE,
                VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
-               &page);
+               &signal_page);
  
        if (ret == 0)
                mm->context.sigpage = addr;