Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / asm-i386 / mach-summit / mach_apic.h
index accca8f..3d6d129 100644 (file)
@@ -7,8 +7,6 @@
 #define esr_disable (1)
 #define NO_BALANCE_IRQ (0)
 
-#define NO_IOAPIC_CHECK (1)    /* Don't check I/O APIC ID for xAPIC */
-
 /* In clustered mode, the high nibble of APIC ID is a cluster number.
  * The low nibble is a 4-bit bitmap. */
 #define XAPIC_DEST_CPUS_SHIFT  4
 
 static inline cpumask_t target_cpus(void)
 {
-       cpumask_t tmp = CPU_MASK_ALL;
-       return tmp;
+       /* CPU_MASK_ALL (0xff) has undefined behaviour with
+        * dest_LowestPrio mode logical clustered apic interrupt routing
+        * Just start on cpu 0.  IRQ balancing will spread load
+        */
+       return cpumask_of_cpu(0);
 } 
 #define TARGET_CPUS    (target_cpus())
 
-#define INT_DELIVERY_MODE (dest_Fixed)
+#define INT_DELIVERY_MODE (dest_LowestPrio)
 #define INT_DEST_MODE 1     /* logical delivery broadcast to all procs */
 
-#define APIC_BROADCAST_ID     (0xFF)
 static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
 {
        return 0;
@@ -140,14 +140,14 @@ static inline void enable_apic_mode(void)
 {
 }
 
-static inline unsigned int cpu_mask_to_apicid(cpumask_const_t cpumask)
+static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
 {
        int num_bits_set;
        int cpus_found = 0;
        int cpu;
        int apicid;     
 
-       num_bits_set = cpus_weight_const(cpumask);
+       num_bits_set = cpus_weight(cpumask);
        /* Return id to all */
        if (num_bits_set == NR_CPUS)
                return (int) 0xFF;
@@ -155,10 +155,10 @@ static inline unsigned int cpu_mask_to_apicid(cpumask_const_t cpumask)
         * The cpus in the mask must all be on the apic cluster.  If are not 
         * on the same apicid cluster return default value of TARGET_CPUS. 
         */
-       cpu = first_cpu_const(cpumask);
+       cpu = first_cpu(cpumask);
        apicid = cpu_to_logical_apicid(cpu);
        while (cpus_found < num_bits_set) {
-               if (cpu_isset_const(cpu, cpumask)) {
+               if (cpu_isset(cpu, cpumask)) {
                        int new_apicid = cpu_to_logical_apicid(cpu);
                        if (apicid_cluster(apicid) != 
                                        apicid_cluster(new_apicid)){