]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'tip/auto-latest'
authorThierry Reding <treding@nvidia.com>
Mon, 21 Oct 2013 11:32:12 +0000 (13:32 +0200)
committerThierry Reding <treding@nvidia.com>
Mon, 21 Oct 2013 11:32:12 +0000 (13:32 +0200)
Conflicts:
arch/h8300/include/asm/Kbuild
include/linux/wait.h
mm/mprotect.c

20 files changed:
1  2 
MAINTAINERS
arch/arm/Kconfig
arch/arm/include/asm/Kbuild
arch/arm/kernel/setup.c
arch/arm64/kernel/setup.c
arch/powerpc/Kconfig
arch/x86/Kconfig
arch/x86/kernel/apic/x2apic_uv_x.c
arch/x86/kernel/smpboot.c
drivers/acpi/processor_idle.c
drivers/idle/intel_idle.c
include/linux/mm.h
include/linux/sched.h
include/linux/wait.h
init/Kconfig
init/main.c
mm/huge_memory.c
mm/memory.c
mm/migrate.c
mm/mprotect.c

diff --cc MAINTAINERS
Simple merge
Simple merge
index a6395c0277152f74645b8fceb572abc9b1c5a2db,4e6838d4ddf6d6b30278e3d1feb255339b7ecb33..c38b58c8020215f54af8140e97de8467ad3c3c16
@@@ -32,4 -31,6 +32,5 @@@ generic-y += termbits.
  generic-y += termios.h
  generic-y += timex.h
  generic-y += trace_clock.h
 -generic-y += types.h
  generic-y += unaligned.h
+ generic-y += preempt.h
Simple merge
Simple merge
index 875d815a8e7ffa966843ba93d9111a9b1458f833,b365d5cbb722ce9ef712a6066695a409f9e0c627..4b50d24175722ac4de26855c4ef2788bdc52ee98
@@@ -138,10 -138,8 +138,11 @@@ config PP
        select OLD_SIGSUSPEND
        select OLD_SIGACTION if PPC32
        select HAVE_DEBUG_STACKOVERFLOW
+       select HAVE_IRQ_EXIT_ON_IRQ_STACK
  
 +config GENERIC_CSUM
 +      def_bool CPU_LITTLE_ENDIAN
 +
  config EARLY_PRINTK
        bool
        default y
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index d9eff54c69cfc1ba5696e205e8122e072019eb1c,a2726c7dd2442314fba89dae8305fc3fff9de505..039598504d3a7b827a1b488d9d5b385ba59c1605
@@@ -253,59 -275,9 +275,45 @@@ do {                                                                     
        __ret;                                                          \
  })
  
- #define __wait_event_interruptible(wq, condition, ret)                        \
- do {                                                                  \
-       DEFINE_WAIT(__wait);                                            \
-                                                                       \
-       for (;;) {                                                      \
-               prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE);      \
-               if (condition)                                          \
-                       break;                                          \
-               if (!signal_pending(current)) {                         \
-                       schedule();                                     \
-                       continue;                                       \
-               }                                                       \
-               ret = -ERESTARTSYS;                                     \
-               break;                                                  \
-       }                                                               \
-       finish_wait(&wq, &__wait);                                      \
- } while (0)
 +#define __wait_event_cmd(wq, condition, cmd1, cmd2)                   \
 +do {                                                                  \
 +      DEFINE_WAIT(__wait);                                            \
 +                                                                      \
 +      for (;;) {                                                      \
 +              prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE);    \
 +              if (condition)                                          \
 +                      break;                                          \
 +              cmd1;                                                   \
 +              schedule();                                             \
 +              cmd2;                                                   \
 +      }                                                               \
 +      finish_wait(&wq, &__wait);                                      \
 +} while (0)
 +
 +/**
 + * wait_event_cmd - sleep until a condition gets true
 + * @wq: the waitqueue to wait on
 + * @condition: a C expression for the event to wait for
 + * cmd1: the command will be executed before sleep
 + * cmd2: the command will be executed after sleep
 + *
 + * The process is put to sleep (TASK_UNINTERRUPTIBLE) until the
 + * @condition evaluates to true. The @condition is checked each time
 + * the waitqueue @wq is woken up.
 + *
 + * wake_up() has to be called after changing any variable that could
 + * change the result of the wait condition.
 + */
 +#define wait_event_cmd(wq, condition, cmd1, cmd2)                     \
 +do {                                                                  \
 +      if (condition)                                                  \
 +              break;                                                  \
 +      __wait_event_cmd(wq, condition, cmd1, cmd2);                    \
 +} while (0)
 +
+ #define __wait_event_interruptible(wq, condition)                     \
+       ___wait_event(wq, condition, TASK_INTERRUPTIBLE, 0, 0,          \
+                     schedule())
  
  /**
   * wait_event_interruptible - sleep until a condition gets true
diff --cc init/Kconfig
Simple merge
diff --cc init/main.c
Simple merge
Simple merge
diff --cc mm/memory.c
Simple merge
diff --cc mm/migrate.c
Simple merge
diff --cc mm/mprotect.c
index a3af058f68e4d9f434337d0dcd6127d5d8c6d039,a0302ac0be985393256a99070becec949f92ae46..a597f2ffcd6fc873a5f5b9779e4e79ac022bb2fe
@@@ -100,12 -89,11 +90,13 @@@ static unsigned long change_pte_range(s
                                 * just be safe and disable write
                                 */
                                make_migration_entry_read(&entry);
 -                              set_pte_at(mm, addr, pte,
 -                                      swp_entry_to_pte(entry));
 +                              newpte = swp_entry_to_pte(entry);
 +                              if (pte_swp_soft_dirty(oldpte))
 +                                      newpte = pte_swp_mksoft_dirty(newpte);
 +                              set_pte_at(mm, addr, pte, newpte);
+                               pages++;
                        }
-                       pages++;
                }
        } while (pte++, addr += PAGE_SIZE, addr != end);
        arch_leave_lazy_mmu_mode();