ARM: actions: remove boot_lock and pen_release

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>
This commit is contained in:
Russell King 2018-12-13 12:54:26 +00:00
parent 0eb037998a
commit 70678554c4
1 changed files with 0 additions and 15 deletions

View File

@ -39,10 +39,6 @@ static void __iomem *sps_base_addr;
static void __iomem *timer_base_addr; static void __iomem *timer_base_addr;
static int ncores; static int ncores;
static DEFINE_SPINLOCK(boot_lock);
void owl_secondary_startup(void);
static int s500_wakeup_secondary(unsigned int cpu) static int s500_wakeup_secondary(unsigned int cpu)
{ {
int ret; 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) static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle)
{ {
unsigned long timeout;
int ret; int ret;
ret = s500_wakeup_secondary(cpu); ret = s500_wakeup_secondary(cpu);
@ -93,21 +88,11 @@ static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle)
udelay(10); udelay(10);
spin_lock(&boot_lock);
smp_send_reschedule(cpu); 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_ADDR + (cpu - 1) * 4);
writel(0, timer_base_addr + OWL_CPU1_FLAG + (cpu - 1) * 4); writel(0, timer_base_addr + OWL_CPU1_FLAG + (cpu - 1) * 4);
spin_unlock(&boot_lock);
return 0; return 0;
} }