VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / include / asm-i386 / mach-visws / mach_apic.h
index 3ec402a..c367d82 100644 (file)
@@ -19,7 +19,6 @@
  #define TARGET_CPUS cpumask_of_cpu(0)
 #endif
 
-#define APIC_BROADCAST_ID      0x0F
 #define check_apicid_used(bitmap, apicid)      physid_isset(apicid, bitmap)
 #define check_apicid_present(bit)              physid_isset(bit, phys_cpu_present_map)
 
@@ -61,7 +60,10 @@ static inline int cpu_to_logical_apicid(int cpu)
 
 static inline int cpu_present_to_apicid(int mps_cpu)
 {
-       return mps_cpu;
+       if (mps_cpu < get_physical_broadcast())
+               return mps_cpu;
+       else
+               return BAD_APICID;
 }
 
 static inline physid_mask_t apicid_to_cpu_present(int apicid)
@@ -84,9 +86,9 @@ static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
        return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map);
 }
 
-static inline unsigned int cpu_mask_to_apicid(cpumask_const_t cpumask)
+static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
 {
-       return cpus_coerce_const(cpumask);
+       return cpus_addr(cpumask)[0];
 }
 
 static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)