]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 Jul 2013 22:08:53 +0000 (15:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 Jul 2013 22:08:53 +0000 (15:08 -0700)
Pull arm64 fixes from Catalin Marinas:
 - Post -rc1 update to the common reboot infrastructure.
 - Fixes (user cache maintenance fault handling, !COMPAT compilation,
   CPU online and interrupt hanlding).

* tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
  arm64: use common reboot infrastructure
  arm64: mm: don't treat user cache maintenance faults as writes
  arm64: add '#ifdef CONFIG_COMPAT' for aarch32_break_handler()
  arm64: Only enable local interrupts after the CPU is marked online

1  2 
arch/arm64/kernel/smp.c

diff --combined arch/arm64/kernel/smp.c
index 4a053b3d1728a74ef72fce591786067221bcc590,9c93e126328cfaa04ffdaa8612a43e4d9d09a6aa..fee5cce834501cb9c13aaf6257b93be2b3e152e0
@@@ -71,7 -71,7 +71,7 @@@ static DEFINE_RAW_SPINLOCK(boot_lock)
   * in coherency or not.  This is necessary for the hotplug code to work
   * reliably.
   */
 -static void __cpuinit write_pen_release(u64 val)
 +static void write_pen_release(u64 val)
  {
        void *start = (void *)&secondary_holding_pen_release;
        unsigned long size = sizeof(secondary_holding_pen_release);
@@@ -84,7 -84,7 +84,7 @@@
   * Boot a secondary CPU, and assign it the specified idle task.
   * This also gives us the initial stack to use for this CPU.
   */
 -static int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
 +static int boot_secondary(unsigned int cpu, struct task_struct *idle)
  {
        unsigned long timeout;
  
  
  static DECLARE_COMPLETION(cpu_running);
  
 -int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *idle)
 +int __cpu_up(unsigned int cpu, struct task_struct *idle)
  {
        int ret;
  
   * This is the secondary CPU boot entry.  We're using this CPUs
   * idle thread stack, but a set of temporary page tables.
   */
 -asmlinkage void __cpuinit secondary_start_kernel(void)
 +asmlinkage void secondary_start_kernel(void)
  {
        struct mm_struct *mm = &init_mm;
        unsigned int cpu = smp_processor_id();
        raw_spin_lock(&boot_lock);
        raw_spin_unlock(&boot_lock);
  
-       /*
-        * Enable local interrupts.
-        */
-       notify_cpu_starting(cpu);
-       local_irq_enable();
-       local_fiq_enable();
        /*
         * OK, now it's safe to let the boot CPU continue.  Wait for
         * the CPU migration code to notice that the CPU is online
        set_cpu_online(cpu, true);
        complete(&cpu_running);
  
+       /*
+        * Enable GIC and timers.
+        */
+       notify_cpu_starting(cpu);
+       local_irq_enable();
+       local_fiq_enable();
        /*
         * OK, it's off to the idle thread for us
         */