]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
authorLinus Torvalds <torvalds@g5.osdl.org>
Wed, 28 Jun 2006 22:00:49 +0000 (15:00 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 28 Jun 2006 22:00:49 +0000 (15:00 -0700)
* '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/

arch/ia64/configs/tiger_defconfig
arch/ia64/kernel/palinfo.c
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/pci/tioca_provider.c
include/asm-ia64/sn/sn_sal.h

index 766bf495543249e44bfd69d92a31ebd3a69b47cc..9d1cffb57cde20c3f143a529b8bd5a2d6cf114a5 100644 (file)
@@ -114,7 +114,7 @@ CONFIG_IA64_CYCLONE=y
 CONFIG_IOSAPIC=y
 CONFIG_FORCE_MAX_ZONEORDER=17
 CONFIG_SMP=y
-CONFIG_NR_CPUS=4
+CONFIG_NR_CPUS=16
 CONFIG_HOTPLUG_CPU=y
 CONFIG_PERMIT_BSP_REMOVE=y
 CONFIG_FORCE_CPEI_RETARGET=y
index 303a9afcf2a1ce7b5845335c36591f23c3c3b360..8a12084191384ee55f02ed5848a95ef708206732 100644 (file)
@@ -998,7 +998,7 @@ palinfo_init(void)
        }
 
        /* Register for future delivery via notify registration */
-       register_cpu_notifier(&palinfo_cpu_notifier);
+       register_hotcpu_notifier(&palinfo_cpu_notifier);
 
        return 0;
 }
index 93577abae36da488e4e7bbe87accbf4436a26f80..3bfccf354343740e3fd811b3ff13d5c1a43a2376 100644 (file)
@@ -458,7 +458,7 @@ void __init sn_setup(char **cmdline_p)
         * support here so we don't have to listen to failed keyboard probe
         * 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 "
                       "is too old and doesn't provide FADT\n");
                acpi_kbd_controller_present = 0;
@@ -577,7 +577,8 @@ void __init sn_cpu_init(void)
        int i;
        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())
                        sn_prom_type = 2;
                else
@@ -596,6 +597,12 @@ void __init sn_cpu_init(void)
                BUG();
        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
         * complete.
@@ -607,7 +614,6 @@ void __init sn_cpu_init(void)
                if (ia64_sn_get_prom_feature_set(i, &sn_prom_features[i]) != 0)
                        break;
 
-       cpuid = smp_processor_id();
        cpuphyid = get_sapicid();
 
        if (ia64_sn_get_sapic_info(cpuphyid, &nasid, &subnode, &slice))
index 20de72791b979d64791fe119f86153b9d2a93a23..e4aa839d0189f57eaa99d673793b0de1ca3a621e 100644 (file)
@@ -595,7 +595,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
 
        /* sanity check prom rev */
 
-       if (sn_sal_rev() < 0x0406) {
+       if (is_shub1() && sn_sal_rev() < 0x0406) {
                printk
                    (KERN_ERR "%s:  SGI prom rev 4.06 or greater required "
                     "for tioca support\n", __FUNCTION__);
index cd490b20d59268cc9723b7b23dd036d1c215d078..bd4452bda357b8e58837daf43093be52d147bade 100644 (file)
@@ -85,6 +85,7 @@
 #define  SN_SAL_GET_PROM_FEATURE_SET              0x02000065
 #define  SN_SAL_SET_OS_FEATURE_SET                0x02000066
 #define  SN_SAL_INJECT_ERROR                      0x02000067
+#define  SN_SAL_SET_CPU_NUMBER                    0x02000068
 
 /*
  * Service-specific constants
@@ -1150,4 +1151,13 @@ sn_inject_error(u64 paddr, u64 *data, u64 *ecc)
        local_irq_restore(irq_flags);
        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 */