ARM: actions: remove boot_lock and pen_release
authorRussell King <rmk+kernel@armlinux.org.uk>
Thu, 13 Dec 2018 12:54:26 +0000 (12:54 +0000)
committerRussell King <rmk+kernel@armlinux.org.uk>
Fri, 1 Feb 2019 21:59:15 +0000 (21:59 +0000)
The actions SMP implementation has several issues:

1. pen_release is only ever read and compared to -1, and is defined in
   arch/arm/kernel/smp.c to be -1.  This test will always succeed.

2. we are already guaranteed to be single threaded while bringing up a
   CPU, so the spinlock makes no sense, remove it.

3. owl_secondary_startup() is not referenced nor defined, the prototype
   is redundant, remove it.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/mach-actions/platsmp.c

index 3efaa10..4fd479c 100644 (file)
@@ -39,10 +39,6 @@ static void __iomem *sps_base_addr;
 static void __iomem *timer_base_addr;
 static int ncores;
 
-static DEFINE_SPINLOCK(boot_lock);
-
-void owl_secondary_startup(void);
-
 static int s500_wakeup_secondary(unsigned int cpu)
 {
        int ret;
@@ -84,7 +80,6 @@ static int s500_wakeup_secondary(unsigned int cpu)
 
 static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle)
 {
-       unsigned long timeout;
        int ret;
 
        ret = s500_wakeup_secondary(cpu);
@@ -93,21 +88,11 @@ static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle)
 
        udelay(10);
 
-       spin_lock(&boot_lock);
-
        smp_send_reschedule(cpu);
 
-       timeout = jiffies + (1 * HZ);
-       while (time_before(jiffies, timeout)) {
-               if (pen_release == -1)
-                       break;
-       }
-
        writel(0, timer_base_addr + OWL_CPU1_ADDR + (cpu - 1) * 4);
        writel(0, timer_base_addr + OWL_CPU1_FLAG + (cpu - 1) * 4);
 
-       spin_unlock(&boot_lock);
-
        return 0;
 }