提交 873d8898 编写于 作者: L Linus Torvalds

Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64-SGI] fix prom revision checks in SN kernel
  [IA64] tiger_defconfig s/NR_CPUS=4/NR_CPUS=16/
  [IA64-SGI] - Pass OS logical cpu number to the SN prom (bios)
  [IA64] palinfo.c: s/register_cpu_notifier/register_hotcpu_notifier/
...@@ -114,7 +114,7 @@ CONFIG_IA64_CYCLONE=y ...@@ -114,7 +114,7 @@ CONFIG_IA64_CYCLONE=y
CONFIG_IOSAPIC=y CONFIG_IOSAPIC=y
CONFIG_FORCE_MAX_ZONEORDER=17 CONFIG_FORCE_MAX_ZONEORDER=17
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_NR_CPUS=4 CONFIG_NR_CPUS=16
CONFIG_HOTPLUG_CPU=y CONFIG_HOTPLUG_CPU=y
CONFIG_PERMIT_BSP_REMOVE=y CONFIG_PERMIT_BSP_REMOVE=y
CONFIG_FORCE_CPEI_RETARGET=y CONFIG_FORCE_CPEI_RETARGET=y
......
...@@ -998,7 +998,7 @@ palinfo_init(void) ...@@ -998,7 +998,7 @@ palinfo_init(void)
} }
/* Register for future delivery via notify registration */ /* Register for future delivery via notify registration */
register_cpu_notifier(&palinfo_cpu_notifier); register_hotcpu_notifier(&palinfo_cpu_notifier);
return 0; return 0;
} }
......
...@@ -458,7 +458,7 @@ void __init sn_setup(char **cmdline_p) ...@@ -458,7 +458,7 @@ void __init sn_setup(char **cmdline_p)
* support here so we don't have to listen to failed keyboard probe * support here so we don't have to listen to failed keyboard probe
* messages. * messages.
*/ */
if (version <= 0x0209 && acpi_kbd_controller_present) { if (is_shub1() && version <= 0x0209 && acpi_kbd_controller_present) {
printk(KERN_INFO "Disabling legacy keyboard support as prom " printk(KERN_INFO "Disabling legacy keyboard support as prom "
"is too old and doesn't provide FADT\n"); "is too old and doesn't provide FADT\n");
acpi_kbd_controller_present = 0; acpi_kbd_controller_present = 0;
...@@ -577,7 +577,8 @@ void __init sn_cpu_init(void) ...@@ -577,7 +577,8 @@ void __init sn_cpu_init(void)
int i; int i;
static int wars_have_been_checked; static int wars_have_been_checked;
if (smp_processor_id() == 0 && IS_MEDUSA()) { cpuid = smp_processor_id();
if (cpuid == 0 && IS_MEDUSA()) {
if (ia64_sn_is_fake_prom()) if (ia64_sn_is_fake_prom())
sn_prom_type = 2; sn_prom_type = 2;
else else
...@@ -596,6 +597,12 @@ void __init sn_cpu_init(void) ...@@ -596,6 +597,12 @@ void __init sn_cpu_init(void)
BUG(); BUG();
sn_hub_info->as_shift = sn_hub_info->nasid_shift - 2; sn_hub_info->as_shift = sn_hub_info->nasid_shift - 2;
/*
* Don't check status. The SAL call is not supported on all PROMs
* but a failure is harmless.
*/
(void) ia64_sn_set_cpu_number(cpuid);
/* /*
* The boot cpu makes this call again after platform initialization is * The boot cpu makes this call again after platform initialization is
* complete. * complete.
...@@ -607,7 +614,6 @@ void __init sn_cpu_init(void) ...@@ -607,7 +614,6 @@ void __init sn_cpu_init(void)
if (ia64_sn_get_prom_feature_set(i, &sn_prom_features[i]) != 0) if (ia64_sn_get_prom_feature_set(i, &sn_prom_features[i]) != 0)
break; break;
cpuid = smp_processor_id();
cpuphyid = get_sapicid(); cpuphyid = get_sapicid();
if (ia64_sn_get_sapic_info(cpuphyid, &nasid, &subnode, &slice)) if (ia64_sn_get_sapic_info(cpuphyid, &nasid, &subnode, &slice))
......
...@@ -595,7 +595,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont ...@@ -595,7 +595,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
/* sanity check prom rev */ /* sanity check prom rev */
if (sn_sal_rev() < 0x0406) { if (is_shub1() && sn_sal_rev() < 0x0406) {
printk printk
(KERN_ERR "%s: SGI prom rev 4.06 or greater required " (KERN_ERR "%s: SGI prom rev 4.06 or greater required "
"for tioca support\n", __FUNCTION__); "for tioca support\n", __FUNCTION__);
......
...@@ -85,6 +85,7 @@ ...@@ -85,6 +85,7 @@
#define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065
#define SN_SAL_SET_OS_FEATURE_SET 0x02000066 #define SN_SAL_SET_OS_FEATURE_SET 0x02000066
#define SN_SAL_INJECT_ERROR 0x02000067 #define SN_SAL_INJECT_ERROR 0x02000067
#define SN_SAL_SET_CPU_NUMBER 0x02000068
/* /*
* Service-specific constants * Service-specific constants
...@@ -1150,4 +1151,13 @@ sn_inject_error(u64 paddr, u64 *data, u64 *ecc) ...@@ -1150,4 +1151,13 @@ sn_inject_error(u64 paddr, u64 *data, u64 *ecc)
local_irq_restore(irq_flags); local_irq_restore(irq_flags);
return ret_stuff.status; return ret_stuff.status;
} }
static inline int
ia64_sn_set_cpu_number(int cpu)
{
struct ia64_sal_retval rv;
SAL_CALL_NOLOCK(rv, SN_SAL_SET_CPU_NUMBER, cpu, 0, 0, 0, 0, 0, 0);
return rv.status;
}
#endif /* _ASM_IA64_SN_SN_SAL_H */ #endif /* _ASM_IA64_SN_SN_SAL_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册