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:
parent
0eb037998a
commit
70678554c4
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue