Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, uv: Remove recursion in uv_heartbeat_enable() x86, uv: uv_global_gru_mmr_address() macro fix x86, uv: Add serial number parameter to uv_bios_get_sn_info()
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
*
|
||||
* SGI UV APIC functions (note: not an Intel compatible APIC)
|
||||
*
|
||||
* Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved.
|
||||
* Copyright (C) 2007-2009 Silicon Graphics, Inc. All rights reserved.
|
||||
*/
|
||||
#include <linux/cpumask.h>
|
||||
#include <linux/hardirq.h>
|
||||
@@ -488,7 +488,7 @@ static void uv_heartbeat(unsigned long ignored)
|
||||
|
||||
static void __cpuinit uv_heartbeat_enable(int cpu)
|
||||
{
|
||||
if (!uv_cpu_hub_info(cpu)->scir.enabled) {
|
||||
while (!uv_cpu_hub_info(cpu)->scir.enabled) {
|
||||
struct timer_list *timer = &uv_cpu_hub_info(cpu)->scir.timer;
|
||||
|
||||
uv_set_cpu_scir_bits(cpu, SCIR_CPU_HEARTBEAT|SCIR_CPU_ACTIVITY);
|
||||
@@ -496,11 +496,10 @@ static void __cpuinit uv_heartbeat_enable(int cpu)
|
||||
timer->expires = jiffies + SCIR_CPU_HB_INTERVAL;
|
||||
add_timer_on(timer, cpu);
|
||||
uv_cpu_hub_info(cpu)->scir.enabled = 1;
|
||||
}
|
||||
|
||||
/* check boot cpu */
|
||||
if (!uv_cpu_hub_info(0)->scir.enabled)
|
||||
uv_heartbeat_enable(0);
|
||||
/* also ensure that boot cpu is enabled */
|
||||
cpu = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
@@ -704,8 +703,8 @@ void __init uv_system_init(void)
|
||||
}
|
||||
|
||||
uv_bios_init();
|
||||
uv_bios_get_sn_info(0, &uv_type, &sn_partition_id,
|
||||
&sn_coherency_id, &sn_region_size);
|
||||
uv_bios_get_sn_info(0, &uv_type, &sn_partition_id, &sn_coherency_id,
|
||||
&sn_region_size, &system_serial_number);
|
||||
uv_rtc_init();
|
||||
|
||||
for_each_present_cpu(cpu) {
|
||||
|
Reference in New Issue
Block a user