]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/mach-voyager/voyager_smp.c
x86: remove duplicate get_bios_ebda() from rio.h
[linux-2.6-omap-h63xx.git] / arch / x86 / mach-voyager / voyager_smp.c
index be7235bf105d8ac7f2e77838e36988710fd51048..8acbf0cdf1a5fb8eb4d75e1d57905104b23cce14 100644 (file)
@@ -4,8 +4,6 @@
  *
  * Author: J.E.J.Bottomley@HansenPartnership.com
  *
- * linux/arch/i386/kernel/voyager_smp.c
- *
  * This file provides all the same external entries as smp.c but uses
  * the voyager hal to provide the functionality
  */
@@ -115,7 +113,7 @@ static inline void send_QIC_CPI(__u32 cpuset, __u8 cpi)
        for_each_online_cpu(cpu) {
                if (cpuset & (1 << cpu)) {
 #ifdef VOYAGER_DEBUG
-                       if (!cpu_isset(cpu, cpu_online_map))
+                       if (!cpu_online(cpu))
                                VDEBUG(("CPU%d sending cpi %d to CPU%d not in "
                                        "cpu_online_map\n",
                                        hard_smp_processor_id(), cpi, cpu));
@@ -208,11 +206,6 @@ static struct irq_chip vic_chip = {
 /* used to count up as CPUs are brought on line (starts at 0) */
 static int cpucount = 0;
 
-/* steal a page from the bottom of memory for the trampoline and
- * squirrel its address away here.  This will be in kernel virtual
- * space */
-unsigned char *trampoline_base;
-
 /* The per cpu profile stuff - used in smp_local_timer_interrupt */
 static DEFINE_PER_CPU(int, prof_multiplier) = 1;
 static DEFINE_PER_CPU(int, prof_old_multiplier) = 1;
@@ -429,18 +422,6 @@ void __init smp_store_cpu_info(int id)
        identify_secondary_cpu(c);
 }
 
-/* set up the trampoline and return the physical address of the code */
-unsigned long __init setup_trampoline(void)
-{
-       /* these two are global symbols in trampoline.S */
-       extern const __u8 trampoline_end[];
-       extern const __u8 trampoline_data[];
-
-       memcpy(trampoline_base, trampoline_data,
-              trampoline_end - trampoline_data);
-       return virt_to_phys(trampoline_base);
-}
-
 /* Routine initially called when a non-boot CPU is brought online */
 static void __init start_secondary(void *unused)
 {
@@ -562,8 +543,8 @@ static void __init do_boot_cpu(__u8 cpu)
                hijack_source.idt.Offset, stack_start.sp));
 
        /* init lowmem identity mapping */
-       clone_pgd_range(swapper_pg_dir, swapper_pg_dir + USER_PGD_PTRS,
-                       min_t(unsigned long, KERNEL_PGD_PTRS, USER_PGD_PTRS));
+       clone_pgd_range(swapper_pg_dir, swapper_pg_dir + KERNEL_PGD_BOUNDARY,
+                       min_t(unsigned long, KERNEL_PGD_PTRS, KERNEL_PGD_BOUNDARY));
        flush_tlb_all();
 
        if (quad_boot) {
@@ -702,9 +683,9 @@ void __init smp_boot_cpus(void)
         * Code added from smpboot.c */
        {
                unsigned long bogosum = 0;
-               for (i = 0; i < NR_CPUS; i++)
-                       if (cpu_isset(i, cpu_online_map))
-                               bogosum += cpu_data(i).loops_per_jiffy;
+
+               for_each_online_cpu(i)
+                       bogosum += cpu_data(i).loops_per_jiffy;
                printk(KERN_INFO "Total of %d processors activated "
                       "(%lu.%02lu BogoMIPS).\n",
                       cpucount + 1, bogosum / (500000 / HZ),
@@ -1857,7 +1838,7 @@ static int __cpuinit voyager_cpu_up(unsigned int cpu)
                return -EIO;
        /* Unleash the CPU! */
        cpu_set(cpu, smp_commenced_mask);
-       while (!cpu_isset(cpu, cpu_online_map))
+       while (!cpu_online(cpu))
                mb();
        return 0;
 }