diff options
| -rw-r--r-- | arch/x86/include/asm/bigsmp/ipi.h | 14 | ||||
| -rw-r--r-- | arch/x86/include/asm/es7000/ipi.h | 13 | ||||
| -rw-r--r-- | arch/x86/include/asm/genapic_32.h | 11 | ||||
| -rw-r--r-- | arch/x86/include/asm/genapic_64.h | 11 | ||||
| -rw-r--r-- | arch/x86/include/asm/ipi.h | 10 | ||||
| -rw-r--r-- | arch/x86/include/asm/mach-default/mach_apic.h | 12 | ||||
| -rw-r--r-- | arch/x86/include/asm/mach-default/mach_ipi.h | 12 | ||||
| -rw-r--r-- | arch/x86/include/asm/numaq/ipi.h | 14 | ||||
| -rw-r--r-- | arch/x86/include/asm/smp.h | 4 | ||||
| -rw-r--r-- | arch/x86/kernel/genapic_flat_64.c | 50 | ||||
| -rw-r--r-- | arch/x86/kernel/genx2apic_cluster.c | 25 | ||||
| -rw-r--r-- | arch/x86/kernel/genx2apic_phys.c | 25 | ||||
| -rw-r--r-- | arch/x86/kernel/genx2apic_uv_x.c | 24 | ||||
| -rw-r--r-- | arch/x86/kernel/ipi.c | 14 | ||||
| -rw-r--r-- | arch/x86/kernel/smp.c | 6 | ||||
| -rw-r--r-- | arch/x86/xen/smp.c | 11 |
16 files changed, 127 insertions, 129 deletions
diff --git a/arch/x86/include/asm/bigsmp/ipi.h b/arch/x86/include/asm/bigsmp/ipi.h index 63553e9f22b2..27fcd01b3ae6 100644 --- a/arch/x86/include/asm/bigsmp/ipi.h +++ b/arch/x86/include/asm/bigsmp/ipi.h | |||
| @@ -1,26 +1,22 @@ | |||
| 1 | #ifndef __ASM_MACH_IPI_H | 1 | #ifndef __ASM_MACH_IPI_H |
| 2 | #define __ASM_MACH_IPI_H | 2 | #define __ASM_MACH_IPI_H |
| 3 | 3 | ||
| 4 | void send_IPI_mask_sequence(const cpumask_t *mask, int vector); | 4 | void send_IPI_mask_sequence(const struct cpumask *mask, int vector); |
| 5 | void send_IPI_mask_allbutself(const cpumask_t *mask, int vector); | 5 | void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); |
| 6 | 6 | ||
| 7 | static inline void send_IPI_mask(const cpumask_t *mask, int vector) | 7 | static inline void send_IPI_mask(const struct cpumask *mask, int vector) |
| 8 | { | 8 | { |
| 9 | send_IPI_mask_sequence(mask, vector); | 9 | send_IPI_mask_sequence(mask, vector); |
| 10 | } | 10 | } |
| 11 | 11 | ||
| 12 | static inline void send_IPI_allbutself(int vector) | 12 | static inline void send_IPI_allbutself(int vector) |
| 13 | { | 13 | { |
| 14 | cpumask_t mask = cpu_online_map; | 14 | send_IPI_mask_allbutself(cpu_online_mask, vector); |
| 15 | cpu_clear(smp_processor_id(), mask); | ||
| 16 | |||
| 17 | if (!cpus_empty(mask)) | ||
| 18 | send_IPI_mask(&mask, vector); | ||
| 19 | } | 15 | } |
| 20 | 16 | ||
| 21 | static inline void send_IPI_all(int vector) | 17 | static inline void send_IPI_all(int vector) |
| 22 | { | 18 | { |
| 23 | send_IPI_mask(&cpu_online_map, vector); | 19 | send_IPI_mask(cpu_online_mask, vector); |
| 24 | } | 20 | } |
| 25 | 21 | ||
| 26 | #endif /* __ASM_MACH_IPI_H */ | 22 | #endif /* __ASM_MACH_IPI_H */ |
diff --git a/arch/x86/include/asm/es7000/ipi.h b/arch/x86/include/asm/es7000/ipi.h index 1a8507265f91..7e8ed24d4b8a 100644 --- a/arch/x86/include/asm/es7000/ipi.h +++ b/arch/x86/include/asm/es7000/ipi.h | |||
| @@ -1,25 +1,22 @@ | |||
| 1 | #ifndef __ASM_ES7000_IPI_H | 1 | #ifndef __ASM_ES7000_IPI_H |
| 2 | #define __ASM_ES7000_IPI_H | 2 | #define __ASM_ES7000_IPI_H |
| 3 | 3 | ||
| 4 | void send_IPI_mask_sequence(const cpumask_t *mask, int vector); | 4 | void send_IPI_mask_sequence(const struct cpumask *mask, int vector); |
| 5 | void send_IPI_mask_allbutself(const cpumask_t *mask, int vector); | 5 | void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); |
| 6 | 6 | ||
| 7 | static inline void send_IPI_mask(const cpumask_t *mask, int vector) | 7 | static inline void send_IPI_mask(const struct cpumask *mask, int vector) |
| 8 | { | 8 | { |
| 9 | send_IPI_mask_sequence(mask, vector); | 9 | send_IPI_mask_sequence(mask, vector); |
| 10 | } | 10 | } |
| 11 | 11 | ||
| 12 | static inline void send_IPI_allbutself(int vector) | 12 | static inline void send_IPI_allbutself(int vector) |
| 13 | { | 13 | { |
| 14 | cpumask_t mask = cpu_online_map; | 14 | send_IPI_mask_allbutself(cpu_online_mask, vector); |
| 15 | cpu_clear(smp_processor_id(), mask); | ||
| 16 | if (!cpus_empty(mask)) | ||
| 17 | send_IPI_mask(&mask, vector); | ||
| 18 | } | 15 | } |
| 19 | 16 | ||
| 20 | static inline void send_IPI_all(int vector) | 17 | static inline void send_IPI_all(int vector) |
| 21 | { | 18 | { |
| 22 | send_IPI_mask(&cpu_online_map, vector); | 19 | send_IPI_mask(cpu_online_mask, vector); |
| 23 | } | 20 | } |
| 24 | 21 | ||
| 25 | #endif /* __ASM_ES7000_IPI_H */ | 22 | #endif /* __ASM_ES7000_IPI_H */ |
diff --git a/arch/x86/include/asm/genapic_32.h b/arch/x86/include/asm/genapic_32.h index eed6e305291f..746f37a7963a 100644 --- a/arch/x86/include/asm/genapic_32.h +++ b/arch/x86/include/asm/genapic_32.h | |||
| @@ -24,7 +24,7 @@ struct genapic { | |||
| 24 | int (*probe)(void); | 24 | int (*probe)(void); |
| 25 | 25 | ||
| 26 | int (*apic_id_registered)(void); | 26 | int (*apic_id_registered)(void); |
| 27 | const cpumask_t *(*target_cpus)(void); | 27 | const struct cpumask *(*target_cpus)(void); |
| 28 | int int_delivery_mode; | 28 | int int_delivery_mode; |
| 29 | int int_dest_mode; | 29 | int int_dest_mode; |
| 30 | int ESR_DISABLE; | 30 | int ESR_DISABLE; |
| @@ -57,15 +57,16 @@ struct genapic { | |||
| 57 | 57 | ||
| 58 | unsigned (*get_apic_id)(unsigned long x); | 58 | unsigned (*get_apic_id)(unsigned long x); |
| 59 | unsigned long apic_id_mask; | 59 | unsigned long apic_id_mask; |
| 60 | unsigned int (*cpu_mask_to_apicid)(const cpumask_t *cpumask); | 60 | unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask); |
| 61 | unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask, | 61 | unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask, |
| 62 | const struct cpumask *andmask); | 62 | const struct cpumask *andmask); |
| 63 | void (*vector_allocation_domain)(int cpu, cpumask_t *retmask); | 63 | void (*vector_allocation_domain)(int cpu, struct cpumask *retmask); |
| 64 | 64 | ||
| 65 | #ifdef CONFIG_SMP | 65 | #ifdef CONFIG_SMP |
| 66 | /* ipi */ | 66 | /* ipi */ |
| 67 | void (*send_IPI_mask)(const cpumask_t *mask, int vector); | 67 | void (*send_IPI_mask)(const struct cpumask *mask, int vector); |
| 68 | void (*send_IPI_mask_allbutself)(const cpumask_t *mask, int vector); | 68 | void (*send_IPI_mask_allbutself)(const struct cpumask *mask, |
| 69 | int vector); | ||
| 69 | void (*send_IPI_allbutself)(int vector); | 70 | void (*send_IPI_allbutself)(int vector); |
| 70 | void (*send_IPI_all)(int vector); | 71 | void (*send_IPI_all)(int vector); |
| 71 | #endif | 72 | #endif |
diff --git a/arch/x86/include/asm/genapic_64.h b/arch/x86/include/asm/genapic_64.h index 244b71729ecb..adf32fb56aa6 100644 --- a/arch/x86/include/asm/genapic_64.h +++ b/arch/x86/include/asm/genapic_64.h | |||
| @@ -20,17 +20,18 @@ struct genapic { | |||
| 20 | u32 int_delivery_mode; | 20 | u32 int_delivery_mode; |
| 21 | u32 int_dest_mode; | 21 | u32 int_dest_mode; |
| 22 | int (*apic_id_registered)(void); | 22 | int (*apic_id_registered)(void); |
| 23 | const cpumask_t *(*target_cpus)(void); | 23 | const struct cpumask *(*target_cpus)(void); |
| 24 | void (*vector_allocation_domain)(int cpu, cpumask_t *retmask); | 24 | void (*vector_allocation_domain)(int cpu, struct cpumask *retmask); |
| 25 | void (*init_apic_ldr)(void); | 25 | void (*init_apic_ldr)(void); |
| 26 | /* ipi */ | 26 | /* ipi */ |
| 27 | void (*send_IPI_mask)(const cpumask_t *mask, int vector); | 27 | void (*send_IPI_mask)(const struct cpumask *mask, int vector); |
| 28 | void (*send_IPI_mask_allbutself)(const cpumask_t *mask, int vector); | 28 | void (*send_IPI_mask_allbutself)(const struct cpumask *mask, |
| 29 | int vector); | ||
| 29 | void (*send_IPI_allbutself)(int vector); | 30 | void (*send_IPI_allbutself)(int vector); |
| 30 | void (*send_IPI_all)(int vector); | 31 | void (*send_IPI_all)(int vector); |
| 31 | void (*send_IPI_self)(int vector); | 32 | void (*send_IPI_self)(int vector); |
| 32 | /* */ | 33 | /* */ |
| 33 | unsigned int (*cpu_mask_to_apicid)(const cpumask_t *cpumask); | 34 | unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask); |
| 34 | unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask, | 35 | unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask, |
| 35 | const struct cpumask *andmask); | 36 | const struct cpumask *andmask); |
| 36 | unsigned int (*phys_pkg_id)(int index_msb); | 37 | unsigned int (*phys_pkg_id)(int index_msb); |
diff --git a/arch/x86/include/asm/ipi.h b/arch/x86/include/asm/ipi.h index 24b6e613edfa..c745a306f7d3 100644 --- a/arch/x86/include/asm/ipi.h +++ b/arch/x86/include/asm/ipi.h | |||
| @@ -117,7 +117,8 @@ static inline void __send_IPI_dest_field(unsigned int mask, int vector, | |||
| 117 | native_apic_mem_write(APIC_ICR, cfg); | 117 | native_apic_mem_write(APIC_ICR, cfg); |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | static inline void send_IPI_mask_sequence(const cpumask_t *mask, int vector) | 120 | static inline void send_IPI_mask_sequence(const struct cpumask *mask, |
| 121 | int vector) | ||
| 121 | { | 122 | { |
| 122 | unsigned long flags; | 123 | unsigned long flags; |
| 123 | unsigned long query_cpu; | 124 | unsigned long query_cpu; |
| @@ -128,14 +129,15 @@ static inline void send_IPI_mask_sequence(const cpumask_t *mask, int vector) | |||
| 128 | * - mbligh | 129 | * - mbligh |
| 129 | */ | 130 | */ |
| 130 | local_irq_save(flags); | 131 | local_irq_save(flags); |
| 131 | for_each_cpu_mask_nr(query_cpu, *mask) { | 132 | for_each_cpu(query_cpu, mask) { |
| 132 | __send_IPI_dest_field(per_cpu(x86_cpu_to_apicid, query_cpu), | 133 | __send_IPI_dest_field(per_cpu(x86_cpu_to_apicid, query_cpu), |
| 133 | vector, APIC_DEST_PHYSICAL); | 134 | vector, APIC_DEST_PHYSICAL); |
| 134 | } | 135 | } |
| 135 | local_irq_restore(flags); | 136 | local_irq_restore(flags); |
| 136 | } | 137 | } |
| 137 | 138 | ||
| 138 | static inline void send_IPI_mask_allbutself(const cpumask_t *mask, int vector) | 139 | static inline void send_IPI_mask_allbutself(const struct cpumask *mask, |
| 140 | int vector) | ||
| 139 | { | 141 | { |
| 140 | unsigned long flags; | 142 | unsigned long flags; |
| 141 | unsigned int query_cpu; | 143 | unsigned int query_cpu; |
| @@ -144,7 +146,7 @@ static inline void send_IPI_mask_allbutself(const cpumask_t *mask, int vector) | |||
| 144 | /* See Hack comment above */ | 146 | /* See Hack comment above */ |
| 145 | 147 | ||
| 146 | local_irq_save(flags); | 148 | local_irq_save(flags); |
| 147 | for_each_cpu_mask_nr(query_cpu, *mask) | 149 | for_each_cpu(query_cpu, mask) |
| 148 | if (query_cpu != this_cpu) | 150 | if (query_cpu != this_cpu) |
| 149 | __send_IPI_dest_field( | 151 | __send_IPI_dest_field( |
| 150 | per_cpu(x86_cpu_to_apicid, query_cpu), | 152 | per_cpu(x86_cpu_to_apicid, query_cpu), |
diff --git a/arch/x86/include/asm/mach-default/mach_apic.h b/arch/x86/include/asm/mach-default/mach_apic.h index df8e024c43c5..8863d978cb96 100644 --- a/arch/x86/include/asm/mach-default/mach_apic.h +++ b/arch/x86/include/asm/mach-default/mach_apic.h | |||
| @@ -8,12 +8,12 @@ | |||
| 8 | 8 | ||
| 9 | #define APIC_DFR_VALUE (APIC_DFR_FLAT) | 9 | #define APIC_DFR_VALUE (APIC_DFR_FLAT) |
| 10 | 10 | ||
| 11 | static inline const cpumask_t *target_cpus(void) | 11 | static inline const struct cpumask *target_cpus(void) |
| 12 | { | 12 | { |
| 13 | #ifdef CONFIG_SMP | 13 | #ifdef CONFIG_SMP |
| 14 | return &cpu_online_map; | 14 | return cpu_online_mask; |
| 15 | #else | 15 | #else |
| 16 | return &cpumask_of_cpu(0); | 16 | return cpumask_of(0); |
| 17 | #endif | 17 | #endif |
| 18 | } | 18 | } |
| 19 | 19 | ||
| @@ -62,9 +62,9 @@ static inline int apic_id_registered(void) | |||
| 62 | return physid_isset(read_apic_id(), phys_cpu_present_map); | 62 | return physid_isset(read_apic_id(), phys_cpu_present_map); |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask) | 65 | static inline unsigned int cpu_mask_to_apicid(const struct cpumask *cpumask) |
| 66 | { | 66 | { |
| 67 | return cpus_addr(*cpumask)[0]; | 67 | return cpumask_bits(cpumask)[0]; |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask, | 70 | static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask, |
| @@ -98,7 +98,7 @@ static inline int apicid_to_node(int logical_apicid) | |||
| 98 | #endif | 98 | #endif |
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | static inline void vector_allocation_domain(int cpu, cpumask_t *retmask) | 101 | static inline void vector_allocation_domain(int cpu, struct cpumask *retmask) |
| 102 | { | 102 | { |
| 103 | /* Careful. Some cpus do not strictly honor the set of cpus | 103 | /* Careful. Some cpus do not strictly honor the set of cpus |
| 104 | * specified in the interrupt destination when using lowest | 104 | * specified in the interrupt destination when using lowest |
diff --git a/arch/x86/include/asm/mach-default/mach_ipi.h b/arch/x86/include/asm/mach-default/mach_ipi.h index 9353ab854a10..191312d155da 100644 --- a/arch/x86/include/asm/mach-default/mach_ipi.h +++ b/arch/x86/include/asm/mach-default/mach_ipi.h | |||
| @@ -4,8 +4,8 @@ | |||
| 4 | /* Avoid include hell */ | 4 | /* Avoid include hell */ |
| 5 | #define NMI_VECTOR 0x02 | 5 | #define NMI_VECTOR 0x02 |
| 6 | 6 | ||
| 7 | void send_IPI_mask_bitmask(const cpumask_t *mask, int vector); | 7 | void send_IPI_mask_bitmask(const struct cpumask *mask, int vector); |
| 8 | void send_IPI_mask_allbutself(const cpumask_t *mask, int vector); | 8 | void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); |
| 9 | void __send_IPI_shortcut(unsigned int shortcut, int vector); | 9 | void __send_IPI_shortcut(unsigned int shortcut, int vector); |
| 10 | 10 | ||
| 11 | extern int no_broadcast; | 11 | extern int no_broadcast; |
| @@ -15,17 +15,17 @@ extern int no_broadcast; | |||
| 15 | #define send_IPI_mask (genapic->send_IPI_mask) | 15 | #define send_IPI_mask (genapic->send_IPI_mask) |
| 16 | #define send_IPI_mask_allbutself (genapic->send_IPI_mask_allbutself) | 16 | #define send_IPI_mask_allbutself (genapic->send_IPI_mask_allbutself) |
| 17 | #else | 17 | #else |
| 18 | static inline void send_IPI_mask(const cpumask_t *mask, int vector) | 18 | static inline void send_IPI_mask(const struct cpumask *mask, int vector) |
| 19 | { | 19 | { |
| 20 | send_IPI_mask_bitmask(mask, vector); | 20 | send_IPI_mask_bitmask(mask, vector); |
| 21 | } | 21 | } |
| 22 | void send_IPI_mask_allbutself(const cpumask_t *mask, int vector); | 22 | void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); |
| 23 | #endif | 23 | #endif |
| 24 | 24 | ||
| 25 | static inline void __local_send_IPI_allbutself(int vector) | 25 | static inline void __local_send_IPI_allbutself(int vector) |
| 26 | { | 26 | { |
| 27 | if (no_broadcast || vector == NMI_VECTOR) | 27 | if (no_broadcast || vector == NMI_VECTOR) |
| 28 | send_IPI_mask_allbutself(&cpu_online_map, vector); | 28 | send_IPI_mask_allbutself(cpu_online_mask, vector); |
| 29 | else | 29 | else |
| 30 | __send_IPI_shortcut(APIC_DEST_ALLBUT, vector); | 30 | __send_IPI_shortcut(APIC_DEST_ALLBUT, vector); |
| 31 | } | 31 | } |
| @@ -33,7 +33,7 @@ static inline void __local_send_IPI_allbutself(int vector) | |||
| 33 | static inline void __local_send_IPI_all(int vector) | 33 | static inline void __local_send_IPI_all(int vector) |
| 34 | { | 34 | { |
| 35 | if (no_broadcast || vector == NMI_VECTOR) | 35 | if (no_broadcast || vector == NMI_VECTOR) |
| 36 | send_IPI_mask(&cpu_online_map, vector); | 36 | send_IPI_mask(cpu_online_mask, vector); |
| 37 | else | 37 | else |
| 38 | __send_IPI_shortcut(APIC_DEST_ALLINC, vector); | 38 | __send_IPI_shortcut(APIC_DEST_ALLINC, vector); |
| 39 | } | 39 | } |
diff --git a/arch/x86/include/asm/numaq/ipi.h b/arch/x86/include/asm/numaq/ipi.h index c734d7acc430..a8374c652778 100644 --- a/arch/x86/include/asm/numaq/ipi.h +++ b/arch/x86/include/asm/numaq/ipi.h | |||
| @@ -1,26 +1,22 @@ | |||
| 1 | #ifndef __ASM_NUMAQ_IPI_H | 1 | #ifndef __ASM_NUMAQ_IPI_H |
| 2 | #define __ASM_NUMAQ_IPI_H | 2 | #define __ASM_NUMAQ_IPI_H |
| 3 | 3 | ||
| 4 | void send_IPI_mask_sequence(const cpumask_t *mask, int vector); | 4 | void send_IPI_mask_sequence(const struct cpumask *mask, int vector); |
| 5 | void send_IPI_mask_allbutself(const cpumask_t *mask, int vector); | 5 | void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); |
| 6 | 6 | ||
| 7 | static inline void send_IPI_mask(const cpumask_t *mask, int vector) | 7 | static inline void send_IPI_mask(const struct cpumask *mask, int vector) |
| 8 | { | 8 | { |
| 9 | send_IPI_mask_sequence(mask, vector); | 9 | send_IPI_mask_sequence(mask, vector); |
| 10 | } | 10 | } |
| 11 | 11 | ||
| 12 | static inline void send_IPI_allbutself(int vector) | 12 | static inline void send_IPI_allbutself(int vector) |
| 13 | { | 13 | { |
| 14 | cpumask_t mask = cpu_online_map; | 14 | send_IPI_mask_allbutself(cpu_online_mask, vector); |
| 15 | cpu_clear(smp_processor_id(), mask); | ||
| 16 | |||
| 17 | if (!cpus_empty(mask)) | ||
| 18 | send_IPI_mask(&mask, vector); | ||
| 19 | } | 15 | } |
| 20 | 16 | ||
| 21 | static inline void send_IPI_all(int vector) | 17 | static inline void send_IPI_all(int vector) |
| 22 | { | 18 | { |
| 23 | send_IPI_mask(&cpu_online_map, vector); | 19 | send_IPI_mask(cpu_online_mask, vector); |
| 24 | } | 20 | } |
| 25 | 21 | ||
| 26 | #endif /* __ASM_NUMAQ_IPI_H */ | 22 | #endif /* __ASM_NUMAQ_IPI_H */ |
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h index c4a9aa52df6e..830b9fcb6427 100644 --- a/arch/x86/include/asm/smp.h +++ b/arch/x86/include/asm/smp.h | |||
| @@ -60,7 +60,7 @@ struct smp_ops { | |||
| 60 | void (*cpu_die)(unsigned int cpu); | 60 | void (*cpu_die)(unsigned int cpu); |
| 61 | void (*play_dead)(void); | 61 | void (*play_dead)(void); |
| 62 | 62 | ||
| 63 | void (*send_call_func_ipi)(const cpumask_t *mask); | 63 | void (*send_call_func_ipi)(const struct cpumask *mask); |
| 64 | void (*send_call_func_single_ipi)(int cpu); | 64 | void (*send_call_func_single_ipi)(int cpu); |
| 65 | }; | 65 | }; |
| 66 | 66 | ||
| @@ -138,7 +138,7 @@ void native_cpu_die(unsigned int cpu); | |||
| 138 | void native_play_dead(void); | 138 | void native_play_dead(void); |
| 139 | void play_dead_common(void); | 139 | void play_dead_common(void); |
| 140 | 140 | ||
| 141 | void native_send_call_func_ipi(const cpumask_t *mask); | 141 | void native_send_call_func_ipi(const struct cpumask *mask); |
| 142 | void native_send_call_func_single_ipi(int cpu); | 142 | void native_send_call_func_single_ipi(int cpu); |
| 143 | 143 | ||
| 144 | extern void prefill_possible_map(void); | 144 | extern void prefill_possible_map(void); |
diff --git a/arch/x86/kernel/genapic_flat_64.c b/arch/x86/kernel/genapic_flat_64.c index c772bb10b173..7fa5f49c2dda 100644 --- a/arch/x86/kernel/genapic_flat_64.c +++ b/arch/x86/kernel/genapic_flat_64.c | |||
| @@ -30,12 +30,12 @@ static int flat_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
| 30 | return 1; | 30 | return 1; |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | static const cpumask_t *flat_target_cpus(void) | 33 | static const struct cpumask *flat_target_cpus(void) |
| 34 | { | 34 | { |
| 35 | return &cpu_online_map; | 35 | return cpu_online_mask; |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | static void flat_vector_allocation_domain(int cpu, cpumask_t *retmask) | 38 | static void flat_vector_allocation_domain(int cpu, struct cpumask *retmask) |
| 39 | { | 39 | { |
| 40 | /* Careful. Some cpus do not strictly honor the set of cpus | 40 | /* Careful. Some cpus do not strictly honor the set of cpus |
| 41 | * specified in the interrupt destination when using lowest | 41 | * specified in the interrupt destination when using lowest |
| @@ -45,7 +45,8 @@ static void flat_vector_allocation_domain(int cpu, cpumask_t *retmask) | |||
| 45 | * deliver interrupts to the wrong hyperthread when only one | 45 | * deliver interrupts to the wrong hyperthread when only one |
| 46 | * hyperthread was specified in the interrupt desitination. | 46 | * hyperthread was specified in the interrupt desitination. |
| 47 | */ | 47 | */ |
| 48 | *retmask = (cpumask_t) { {[0] = APIC_ALL_CPUS, } }; | 48 | cpumask_clear(retmask); |
| 49 | cpumask_bits(retmask)[0] = APIC_ALL_CPUS; | ||
| 49 | } | 50 | } |
| 50 | 51 | ||
| 51 | /* | 52 | /* |
| @@ -77,16 +78,17 @@ static inline void _flat_send_IPI_mask(unsigned long mask, int vector) | |||
| 77 | local_irq_restore(flags); | 78 | local_irq_restore(flags); |
| 78 | } | 79 | } |
| 79 | 80 | ||
| 80 | static void flat_send_IPI_mask(const cpumask_t *cpumask, int vector) | 81 | static void flat_send_IPI_mask(const struct cpumask *cpumask, int vector) |
| 81 | { | 82 | { |
| 82 | unsigned long mask = cpus_addr(*cpumask)[0]; | 83 | unsigned long mask = cpumask_bits(cpumask)[0]; |
| 83 | 84 | ||
| 84 | _flat_send_IPI_mask(mask, vector); | 85 | _flat_send_IPI_mask(mask, vector); |
| 85 | } | 86 | } |
| 86 | 87 | ||
| 87 | static void flat_send_IPI_mask_allbutself(const cpumask_t *cpumask, int vector) | 88 | static void flat_send_IPI_mask_allbutself(const struct cpumask *cpumask, |
| 89 | int vector) | ||
| 88 | { | 90 | { |
| 89 | unsigned long mask = cpus_addr(*cpumask)[0]; | 91 | unsigned long mask = cpumask_bits(cpumask)[0]; |
| 90 | int cpu = smp_processor_id(); | 92 | int cpu = smp_processor_id(); |
| 91 | 93 | ||
| 92 | if (cpu < BITS_PER_LONG) | 94 | if (cpu < BITS_PER_LONG) |
| @@ -103,8 +105,8 @@ static void flat_send_IPI_allbutself(int vector) | |||
| 103 | int hotplug = 0; | 105 | int hotplug = 0; |
| 104 | #endif | 106 | #endif |
| 105 | if (hotplug || vector == NMI_VECTOR) { | 107 | if (hotplug || vector == NMI_VECTOR) { |
| 106 | if (!cpus_equal(cpu_online_map, cpumask_of_cpu(cpu))) { | 108 | if (!cpumask_equal(cpu_online_mask, cpumask_of(cpu))) { |
| 107 | unsigned long mask = cpus_addr(cpu_online_map)[0]; | 109 | unsigned long mask = cpumask_bits(cpu_online_mask)[0]; |
| 108 | 110 | ||
| 109 | if (cpu < BITS_PER_LONG) | 111 | if (cpu < BITS_PER_LONG) |
| 110 | clear_bit(cpu, &mask); | 112 | clear_bit(cpu, &mask); |
| @@ -119,7 +121,7 @@ static void flat_send_IPI_allbutself(int vector) | |||
| 119 | static void flat_send_IPI_all(int vector) | 121 | static void flat_send_IPI_all(int vector) |
| 120 | { | 122 | { |
| 121 | if (vector == NMI_VECTOR) | 123 | if (vector == NMI_VECTOR) |
| 122 | flat_send_IPI_mask(&cpu_online_map, vector); | 124 | flat_send_IPI_mask(cpu_online_mask, vector); |
| 123 | else | 125 | else |
| 124 | __send_IPI_shortcut(APIC_DEST_ALLINC, vector, APIC_DEST_LOGICAL); | 126 | __send_IPI_shortcut(APIC_DEST_ALLINC, vector, APIC_DEST_LOGICAL); |
| 125 | } | 127 | } |
| @@ -153,9 +155,9 @@ static int flat_apic_id_registered(void) | |||
| 153 | return physid_isset(read_xapic_id(), phys_cpu_present_map); | 155 | return physid_isset(read_xapic_id(), phys_cpu_present_map); |
| 154 | } | 156 | } |
| 155 | 157 | ||
| 156 | static unsigned int flat_cpu_mask_to_apicid(const cpumask_t *cpumask) | 158 | static unsigned int flat_cpu_mask_to_apicid(const struct cpumask *cpumask) |
| 157 | { | 159 | { |
| 158 | return cpus_addr(*cpumask)[0] & APIC_ALL_CPUS; | 160 | return cpumask_bits(cpumask)[0] & APIC_ALL_CPUS; |
| 159 | } | 161 | } |
| 160 | 162 | ||
| 161 | static unsigned int flat_cpu_mask_to_apicid_and(const struct cpumask *cpumask, | 163 | static unsigned int flat_cpu_mask_to_apicid_and(const struct cpumask *cpumask, |
| @@ -217,23 +219,23 @@ static int physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
| 217 | return 0; | 219 | return 0; |
| 218 | } | 220 | } |
| 219 | 221 | ||
| 220 | static const cpumask_t *physflat_target_cpus(void) | 222 | static const struct cpumask *physflat_target_cpus(void) |
| 221 | { | 223 | { |
| 222 | return &cpu_online_map; | 224 | return cpu_online_mask; |
| 223 | } | 225 | } |
| 224 | 226 | ||
| 225 | static void physflat_vector_allocation_domain(int cpu, cpumask_t *retmask) | 227 | static void physflat_vector_allocation_domain(int cpu, struct cpumask *retmask) |
| 226 | { | 228 | { |
| 227 | cpus_clear(*retmask); | 229 | cpumask_clear(retmask); |
| 228 | cpu_set(cpu, *retmask); | 230 | cpumask_set_cpu(cpu, retmask); |
| 229 | } | 231 | } |
| 230 | 232 | ||
| 231 | static void physflat_send_IPI_mask(const cpumask_t *cpumask, int vector) | 233 | static void physflat_send_IPI_mask(const struct cpumask *cpumask, int vector) |
| 232 | { | 234 | { |
| 233 | send_IPI_mask_sequence(cpumask, vector); | 235 | send_IPI_mask_sequence(cpumask, vector); |
| 234 | } | 236 | } |
| 235 | 237 | ||
| 236 | static void physflat_send_IPI_mask_allbutself(const cpumask_t *cpumask, | 238 | static void physflat_send_IPI_mask_allbutself(const struct cpumask *cpumask, |
| 237 | int vector) | 239 | int vector) |
| 238 | { | 240 | { |
| 239 | send_IPI_mask_allbutself(cpumask, vector); | 241 | send_IPI_mask_allbutself(cpumask, vector); |
| @@ -241,15 +243,15 @@ static void physflat_send_IPI_mask_allbutself(const cpumask_t *cpumask, | |||
| 241 | 243 | ||
| 242 | static void physflat_send_IPI_allbutself(int vector) | 244 | static void physflat_send_IPI_allbutself(int vector) |
| 243 | { | 245 | { |
| 244 | send_IPI_mask_allbutself(&cpu_online_map, vector); | 246 | send_IPI_mask_allbutself(cpu_online_mask, vector); |
| 245 | } | 247 | } |
| 246 | 248 | ||
| 247 | static void physflat_send_IPI_all(int vector) | 249 | static void physflat_send_IPI_all(int vector) |
| 248 | { | 250 | { |
| 249 | physflat_send_IPI_mask(&cpu_online_map, vector); | 251 | physflat_send_IPI_mask(cpu_online_mask, vector); |
| 250 | } | 252 | } |
| 251 | 253 | ||
| 252 | static unsigned int physflat_cpu_mask_to_apicid(const cpumask_t *cpumask) | 254 | static unsigned int physflat_cpu_mask_to_apicid(const struct cpumask *cpumask) |
| 253 | { | 255 | { |
| 254 | int cpu; | 256 | int cpu; |
| 255 | 257 | ||
| @@ -257,7 +259,7 @@ static unsigned int physflat_cpu_mask_to_apicid(const cpumask_t *cpumask) | |||
| 257 | * We're using fixed IRQ delivery, can only return one phys APIC ID. | 259 | * We're using fixed IRQ delivery, can only return one phys APIC ID. |
| 258 | * May as well be the first. | 260 | * May as well be the first. |
| 259 | */ | 261 | */ |
| 260 | cpu = first_cpu(*cpumask); | 262 | cpu = cpumask_first(cpumask); |
| 261 | if ((unsigned)cpu < nr_cpu_ids) | 263 | if ((unsigned)cpu < nr_cpu_ids) |
| 262 | return per_cpu(x86_cpu_to_apicid, cpu); | 264 | return per_cpu(x86_cpu_to_apicid, cpu); |
| 263 | else | 265 | else |
diff --git a/arch/x86/kernel/genx2apic_cluster.c b/arch/x86/kernel/genx2apic_cluster.c index e7d16f53b9cd..4716a0c9f936 100644 --- a/arch/x86/kernel/genx2apic_cluster.c +++ b/arch/x86/kernel/genx2apic_cluster.c | |||
| @@ -22,18 +22,18 @@ static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
| 22 | 22 | ||
| 23 | /* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ | 23 | /* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ |
| 24 | 24 | ||
| 25 | static const cpumask_t *x2apic_target_cpus(void) | 25 | static const struct cpumask *x2apic_target_cpus(void) |
| 26 | { | 26 | { |
| 27 | return &cpumask_of_cpu(0); | 27 | return cpumask_of(0); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | /* | 30 | /* |
| 31 | * for now each logical cpu is in its own vector allocation domain. | 31 | * for now each logical cpu is in its own vector allocation domain. |
| 32 | */ | 32 | */ |
| 33 | static void x2apic_vector_allocation_domain(int cpu, cpumask_t *retmask) | 33 | static void x2apic_vector_allocation_domain(int cpu, struct cpumask *retmask) |
| 34 | { | 34 | { |
| 35 | cpus_clear(*retmask); | 35 | cpumask_clear(retmask); |
| 36 | cpu_set(cpu, *retmask); | 36 | cpumask_set_cpu(cpu, retmask); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | static void __x2apic_send_IPI_dest(unsigned int apicid, int vector, | 39 | static void __x2apic_send_IPI_dest(unsigned int apicid, int vector, |
| @@ -55,27 +55,28 @@ static void __x2apic_send_IPI_dest(unsigned int apicid, int vector, | |||
| 55 | * at once. We have 16 cpu's in a cluster. This will minimize IPI register | 55 | * at once. We have 16 cpu's in a cluster. This will minimize IPI register |
| 56 | * writes. | 56 | * writes. |
| 57 | */ | 57 | */ |
| 58 | static void x2apic_send_IPI_mask(const cpumask_t *mask, int vector) | 58 | static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector) |
| 59 | { | 59 | { |
| 60 | unsigned long flags; | 60 | unsigned long flags; |
| 61 | unsigned long query_cpu; | 61 | unsigned long query_cpu; |
| 62 | 62 | ||
| 63 | local_irq_save(flags); | 63 | local_irq_save(flags); |
| 64 | for_each_cpu_mask_nr(query_cpu, *mask) | 64 | for_each_cpu(query_cpu, mask) |
| 65 | __x2apic_send_IPI_dest( | 65 | __x2apic_send_IPI_dest( |
| 66 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), | 66 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), |
| 67 | vector, APIC_DEST_LOGICAL); | 67 | vector, APIC_DEST_LOGICAL); |
| 68 | local_irq_restore(flags); | 68 | local_irq_restore(flags); |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | static void x2apic_send_IPI_mask_allbutself(const cpumask_t *mask, int vector) | 71 | static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, |
| 72 | int vector) | ||
| 72 | { | 73 | { |
| 73 | unsigned long flags; | 74 | unsigned long flags; |
| 74 | unsigned long query_cpu; | 75 | unsigned long query_cpu; |
| 75 | unsigned long this_cpu = smp_processor_id(); | 76 | unsigned long this_cpu = smp_processor_id(); |
| 76 | 77 | ||
| 77 | local_irq_save(flags); | 78 | local_irq_save(flags); |
| 78 | for_each_cpu_mask_nr(query_cpu, *mask) | 79 | for_each_cpu(query_cpu, mask) |
| 79 | if (query_cpu != this_cpu) | 80 | if (query_cpu != this_cpu) |
| 80 | __x2apic_send_IPI_dest( | 81 | __x2apic_send_IPI_dest( |
| 81 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), | 82 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), |
| @@ -100,7 +101,7 @@ static void x2apic_send_IPI_allbutself(int vector) | |||
| 100 | 101 | ||
| 101 | static void x2apic_send_IPI_all(int vector) | 102 | static void x2apic_send_IPI_all(int vector) |
| 102 | { | 103 | { |
| 103 | x2apic_send_IPI_mask(&cpu_online_map, vector); | 104 | x2apic_send_IPI_mask(cpu_online_mask, vector); |
| 104 | } | 105 | } |
| 105 | 106 | ||
| 106 | static int x2apic_apic_id_registered(void) | 107 | static int x2apic_apic_id_registered(void) |
| @@ -108,7 +109,7 @@ static int x2apic_apic_id_registered(void) | |||
| 108 | return 1; | 109 | return 1; |
| 109 | } | 110 | } |
| 110 | 111 | ||
| 111 | static unsigned int x2apic_cpu_mask_to_apicid(const cpumask_t *cpumask) | 112 | static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask) |
| 112 | { | 113 | { |
| 113 | int cpu; | 114 | int cpu; |
| 114 | 115 | ||
| @@ -116,7 +117,7 @@ static unsigned int x2apic_cpu_mask_to_apicid(const cpumask_t *cpumask) | |||
| 116 | * We're using fixed IRQ delivery, can only return one phys APIC ID. | 117 | * We're using fixed IRQ delivery, can only return one phys APIC ID. |
| 117 | * May as well be the first. | 118 | * May as well be the first. |
| 118 | */ | 119 | */ |
| 119 | cpu = first_cpu(*cpumask); | 120 | cpu = cpumask_first(cpumask); |
| 120 | if ((unsigned)cpu < nr_cpu_ids) | 121 | if ((unsigned)cpu < nr_cpu_ids) |
| 121 | return per_cpu(x86_cpu_to_logical_apicid, cpu); | 122 | return per_cpu(x86_cpu_to_logical_apicid, cpu); |
| 122 | else | 123 | else |
diff --git a/arch/x86/kernel/genx2apic_phys.c b/arch/x86/kernel/genx2apic_phys.c index 9d0386c7e798..b255507884f2 100644 --- a/arch/x86/kernel/genx2apic_phys.c +++ b/arch/x86/kernel/genx2apic_phys.c | |||
| @@ -29,15 +29,15 @@ static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
| 29 | 29 | ||
| 30 | /* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ | 30 | /* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ |
| 31 | 31 | ||
| 32 | static const cpumask_t *x2apic_target_cpus(void) | 32 | static const struct cpumask *x2apic_target_cpus(void) |
| 33 | { | 33 | { |
| 34 | return &cpumask_of_cpu(0); | 34 | return cpumask_of(0); |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | static void x2apic_vector_allocation_domain(int cpu, cpumask_t *retmask) | 37 | static void x2apic_vector_allocation_domain(int cpu, struct cpumask *retmask) |
| 38 | { | 38 | { |
| 39 | cpus_clear(*retmask); | 39 | cpumask_clear(retmask); |
| 40 | cpu_set(cpu, *retmask); | 40 | cpumask_set_cpu(cpu, retmask); |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | static void __x2apic_send_IPI_dest(unsigned int apicid, int vector, | 43 | static void __x2apic_send_IPI_dest(unsigned int apicid, int vector, |
| @@ -53,27 +53,28 @@ static void __x2apic_send_IPI_dest(unsigned int apicid, int vector, | |||
| 53 | x2apic_icr_write(cfg, apicid); | 53 | x2apic_icr_write(cfg, apicid); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | static void x2apic_send_IPI_mask(const cpumask_t *mask, int vector) | 56 | static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector) |
| 57 | { | 57 | { |
| 58 | unsigned long flags; | 58 | unsigned long flags; |
| 59 | unsigned long query_cpu; | 59 | unsigned long query_cpu; |
| 60 | 60 | ||
| 61 | local_irq_save(flags); | 61 | local_irq_save(flags); |
| 62 | for_each_cpu_mask_nr(query_cpu, *mask) { | 62 | for_each_cpu(query_cpu, mask) { |
| 63 | __x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu), | 63 | __x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu), |
| 64 | vector, APIC_DEST_PHYSICAL); | 64 | vector, APIC_DEST_PHYSICAL); |
| 65 | } | 65 | } |
| 66 | local_irq_restore(flags); | 66 | local_irq_restore(flags); |
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | static void x2apic_send_IPI_mask_allbutself(const cpumask_t *mask, int vector) | 69 | static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, |
| 70 | int vector) | ||
| 70 | { | 71 | { |
| 71 | unsigned long flags; | 72 | unsigned long flags; |
| 72 | unsigned long query_cpu; | 73 | unsigned long query_cpu; |
| 73 | unsigned long this_cpu = smp_processor_id(); | 74 | unsigned long this_cpu = smp_processor_id(); |
| 74 | 75 | ||
| 75 | local_irq_save(flags); | 76 | local_irq_save(flags); |
| 76 | for_each_cpu_mask_nr(query_cpu, *mask) { | 77 | for_each_cpu(query_cpu, mask) { |
| 77 | if (query_cpu != this_cpu) | 78 | if (query_cpu != this_cpu) |
| 78 | __x2apic_send_IPI_dest( | 79 | __x2apic_send_IPI_dest( |
| 79 | per_cpu(x86_cpu_to_apicid, query_cpu), | 80 | per_cpu(x86_cpu_to_apicid, query_cpu), |
| @@ -99,7 +100,7 @@ static void x2apic_send_IPI_allbutself(int vector) | |||
| 99 | 100 | ||
| 100 | static void x2apic_send_IPI_all(int vector) | 101 | static void x2apic_send_IPI_all(int vector) |
| 101 | { | 102 | { |
| 102 | x2apic_send_IPI_mask(&cpu_online_map, vector); | 103 | x2apic_send_IPI_mask(cpu_online_mask, vector); |
| 103 | } | 104 | } |
| 104 | 105 | ||
| 105 | static int x2apic_apic_id_registered(void) | 106 | static int x2apic_apic_id_registered(void) |
| @@ -107,7 +108,7 @@ static int x2apic_apic_id_registered(void) | |||
| 107 | return 1; | 108 | return 1; |
| 108 | } | 109 | } |
| 109 | 110 | ||
| 110 | static unsigned int x2apic_cpu_mask_to_apicid(const cpumask_t *cpumask) | 111 | static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask) |
| 111 | { | 112 | { |
| 112 | int cpu; | 113 | int cpu; |
| 113 | 114 | ||
| @@ -115,7 +116,7 @@ static unsigned int x2apic_cpu_mask_to_apicid(const cpumask_t *cpumask) | |||
| 115 | * We're using fixed IRQ delivery, can only return one phys APIC ID. | 116 | * We're using fixed IRQ delivery, can only return one phys APIC ID. |
| 116 | * May as well be the first. | 117 | * May as well be the first. |
| 117 | */ | 118 | */ |
| 118 | cpu = first_cpu(*cpumask); | 119 | cpu = cpumask_first(cpumask); |
| 119 | if ((unsigned)cpu < nr_cpu_ids) | 120 | if ((unsigned)cpu < nr_cpu_ids) |
| 120 | return per_cpu(x86_cpu_to_apicid, cpu); | 121 | return per_cpu(x86_cpu_to_apicid, cpu); |
| 121 | else | 122 | else |
diff --git a/arch/x86/kernel/genx2apic_uv_x.c b/arch/x86/kernel/genx2apic_uv_x.c index 22596ec94c82..3984682cd849 100644 --- a/arch/x86/kernel/genx2apic_uv_x.c +++ b/arch/x86/kernel/genx2apic_uv_x.c | |||
| @@ -75,15 +75,15 @@ EXPORT_SYMBOL(sn_rtc_cycles_per_second); | |||
| 75 | 75 | ||
| 76 | /* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ | 76 | /* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ |
| 77 | 77 | ||
| 78 | static const cpumask_t *uv_target_cpus(void) | 78 | static const struct cpumask *uv_target_cpus(void) |
| 79 | { | 79 | { |
| 80 | return &cpumask_of_cpu(0); | 80 | return cpumask_of(0); |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | static void uv_vector_allocation_domain(int cpu, cpumask_t *retmask) | 83 | static void uv_vector_allocation_domain(int cpu, struct cpumask *retmask) |
| 84 | { | 84 | { |
| 85 | cpus_clear(*retmask); | 85 | cpumask_clear(retmask); |
| 86 | cpu_set(cpu, *retmask); | 86 | cpumask_set_cpu(cpu, retmask); |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip) | 89 | int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip) |
| @@ -122,20 +122,20 @@ static void uv_send_IPI_one(int cpu, int vector) | |||
| 122 | uv_write_global_mmr64(pnode, UVH_IPI_INT, val); | 122 | uv_write_global_mmr64(pnode, UVH_IPI_INT, val); |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | static void uv_send_IPI_mask(const cpumask_t *mask, int vector) | 125 | static void uv_send_IPI_mask(const struct cpumask *mask, int vector) |
| 126 | { | 126 | { |
| 127 | unsigned int cpu; | 127 | unsigned int cpu; |
| 128 | 128 | ||
| 129 | for_each_cpu_mask_nr(cpu, *mask) | 129 | for_each_cpu(cpu, mask) |
| 130 | uv_send_IPI_one(cpu, vector); | 130 | uv_send_IPI_one(cpu, vector); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | static void uv_send_IPI_mask_allbutself(const cpumask_t *mask, int vector) | 133 | static void uv_send_IPI_mask_allbutself(const struct cpumask *mask, int vector) |
| 134 | { | 134 | { |
| 135 | unsigned int cpu; | 135 | unsigned int cpu; |
| 136 | unsigned int this_cpu = smp_processor_id(); | 136 | unsigned int this_cpu = smp_processor_id(); |
| 137 | 137 | ||
| 138 | for_each_cpu_mask_nr(cpu, *mask) | 138 | for_each_cpu(cpu, mask) |
| 139 | if (cpu != this_cpu) | 139 | if (cpu != this_cpu) |
| 140 | uv_send_IPI_one(cpu, vector); | 140 | uv_send_IPI_one(cpu, vector); |
| 141 | } | 141 | } |
| @@ -152,7 +152,7 @@ static void uv_send_IPI_allbutself(int vector) | |||
| 152 | 152 | ||
| 153 | static void uv_send_IPI_all(int vector) | 153 | static void uv_send_IPI_all(int vector) |
| 154 | { | 154 | { |
| 155 | uv_send_IPI_mask(&cpu_online_map, vector); | 155 | uv_send_IPI_mask(cpu_online_mask, vector); |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | static int uv_apic_id_registered(void) | 158 | static int uv_apic_id_registered(void) |
| @@ -164,7 +164,7 @@ static void uv_init_apic_ldr(void) | |||
| 164 | { | 164 | { |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | static unsigned int uv_cpu_mask_to_apicid(const cpumask_t *cpumask) | 167 | static unsigned int uv_cpu_mask_to_apicid(const struct cpumask *cpumask) |
| 168 | { | 168 | { |
| 169 | int cpu; | 169 | int cpu; |
| 170 | 170 | ||
| @@ -172,7 +172,7 @@ static unsigned int uv_cpu_mask_to_apicid(const cpumask_t *cpumask) | |||
| 172 | * We're using fixed IRQ delivery, can only return one phys APIC ID. | 172 | * We're using fixed IRQ delivery, can only return one phys APIC ID. |
| 173 | * May as well be the first. | 173 | * May as well be the first. |
| 174 | */ | 174 | */ |
| 175 | cpu = first_cpu(*cpumask); | 175 | cpu = cpumask_first(cpumask); |
| 176 | if ((unsigned)cpu < nr_cpu_ids) | 176 | if ((unsigned)cpu < nr_cpu_ids) |
| 177 | return per_cpu(x86_cpu_to_apicid, cpu); | 177 | return per_cpu(x86_cpu_to_apicid, cpu); |
| 178 | else | 178 | else |
diff --git a/arch/x86/kernel/ipi.c b/arch/x86/kernel/ipi.c index 86aa50fc65a1..285bbf8831fa 100644 --- a/arch/x86/kernel/ipi.c +++ b/arch/x86/kernel/ipi.c | |||
| @@ -116,18 +116,18 @@ static inline void __send_IPI_dest_field(unsigned long mask, int vector) | |||
| 116 | /* | 116 | /* |
| 117 | * This is only used on smaller machines. | 117 | * This is only used on smaller machines. |
| 118 | */ | 118 | */ |
| 119 | void send_IPI_mask_bitmask(const cpumask_t *cpumask, int vector) | 119 | void send_IPI_mask_bitmask(const struct cpumask *cpumask, int vector) |
| 120 | { | 120 | { |
| 121 | unsigned long mask = cpus_addr(*cpumask)[0]; | 121 | unsigned long mask = cpumask_bits(cpumask)[0]; |
| 122 | unsigned long flags; | 122 | unsigned long flags; |
| 123 | 123 | ||
| 124 | local_irq_save(flags); | 124 | local_irq_save(flags); |
| 125 | WARN_ON(mask & ~cpus_addr(cpu_online_map)[0]); | 125 | WARN_ON(mask & ~cpumask_bits(cpu_online_mask)[0]); |
| 126 | __send_IPI_dest_field(mask, vector); | 126 | __send_IPI_dest_field(mask, vector); |
| 127 | local_irq_restore(flags); | 127 | local_irq_restore(flags); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | void send_IPI_mask_sequence(const cpumask_t *mask, int vector) | 130 | void send_IPI_mask_sequence(const struct cpumask *mask, int vector) |
| 131 | { | 131 | { |
| 132 | unsigned long flags; | 132 | unsigned long flags; |
| 133 | unsigned int query_cpu; | 133 | unsigned int query_cpu; |
| @@ -139,12 +139,12 @@ void send_IPI_mask_sequence(const cpumask_t *mask, int vector) | |||
| 139 | */ | 139 | */ |
| 140 | 140 | ||
| 141 | local_irq_save(flags); | 141 | local_irq_save(flags); |
| 142 | for_each_cpu_mask_nr(query_cpu, *mask) | 142 | for_each_cpu(query_cpu, mask) |
| 143 | __send_IPI_dest_field(cpu_to_logical_apicid(query_cpu), vector); | 143 | __send_IPI_dest_field(cpu_to_logical_apicid(query_cpu), vector); |
| 144 | local_irq_restore(flags); | 144 | local_irq_restore(flags); |
| 145 | } | 145 | } |
| 146 | 146 | ||
| 147 | void send_IPI_mask_allbutself(const cpumask_t *mask, int vector) | 147 | void send_IPI_mask_allbutself(const struct cpumask *mask, int vector) |
| 148 | { | 148 | { |
| 149 | unsigned long flags; | 149 | unsigned long flags; |
| 150 | unsigned int query_cpu; | 150 | unsigned int query_cpu; |
| @@ -153,7 +153,7 @@ void send_IPI_mask_allbutself(const cpumask_t *mask, int vector) | |||
| 153 | /* See Hack comment above */ | 153 | /* See Hack comment above */ |
| 154 | 154 | ||
| 155 | local_irq_save(flags); | 155 | local_irq_save(flags); |
| 156 | for_each_cpu_mask_nr(query_cpu, *mask) | 156 | for_each_cpu(query_cpu, mask) |
| 157 | if (query_cpu != this_cpu) | 157 | if (query_cpu != this_cpu) |
| 158 | __send_IPI_dest_field(cpu_to_logical_apicid(query_cpu), | 158 | __send_IPI_dest_field(cpu_to_logical_apicid(query_cpu), |
| 159 | vector); | 159 | vector); |
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c index 341df946f9a9..49ed667b06f3 100644 --- a/arch/x86/kernel/smp.c +++ b/arch/x86/kernel/smp.c | |||
| @@ -118,15 +118,15 @@ static void native_smp_send_reschedule(int cpu) | |||
| 118 | WARN_ON(1); | 118 | WARN_ON(1); |
| 119 | return; | 119 | return; |
| 120 | } | 120 | } |
| 121 | send_IPI_mask(&cpumask_of_cpu(cpu), RESCHEDULE_VECTOR); | 121 | send_IPI_mask(cpumask_of(cpu), RESCHEDULE_VECTOR); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | void native_send_call_func_single_ipi(int cpu) | 124 | void native_send_call_func_single_ipi(int cpu) |
| 125 | { | 125 | { |
| 126 | send_IPI_mask(&cpumask_of_cpu(cpu), CALL_FUNCTION_SINGLE_VECTOR); | 126 | send_IPI_mask(cpumask_of(cpu), CALL_FUNCTION_SINGLE_VECTOR); |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | void native_send_call_func_ipi(const cpumask_t *mask) | 129 | void native_send_call_func_ipi(const struct cpumask *mask) |
| 130 | { | 130 | { |
| 131 | cpumask_t allbutself; | 131 | cpumask_t allbutself; |
| 132 | 132 | ||
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index b3a95868839b..c44e2069c7c7 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c | |||
| @@ -411,22 +411,23 @@ static void xen_smp_send_reschedule(int cpu) | |||
| 411 | xen_send_IPI_one(cpu, XEN_RESCHEDULE_VECTOR); | 411 | xen_send_IPI_one(cpu, XEN_RESCHEDULE_VECTOR); |
| 412 | } | 412 | } |
| 413 | 413 | ||
| 414 | static void xen_send_IPI_mask(const cpumask_t *mask, enum ipi_vector vector) | 414 | static void xen_send_IPI_mask(const struct cpumask *mask, |
| 415 | enum ipi_vector vector) | ||
| 415 | { | 416 | { |
| 416 | unsigned cpu; | 417 | unsigned cpu; |
| 417 | 418 | ||
| 418 | for_each_cpu_and(cpu, mask, &cpu_online_map) | 419 | for_each_cpu_and(cpu, mask, cpu_online_mask) |
| 419 | xen_send_IPI_one(cpu, vector); | 420 | xen_send_IPI_one(cpu, vector); |
| 420 | } | 421 | } |
| 421 | 422 | ||
| 422 | static void xen_smp_send_call_function_ipi(const cpumask_t *mask) | 423 | static void xen_smp_send_call_function_ipi(const struct cpumask *mask) |
| 423 | { | 424 | { |
| 424 | int cpu; | 425 | int cpu; |
| 425 | 426 | ||
| 426 | xen_send_IPI_mask(mask, XEN_CALL_FUNCTION_VECTOR); | 427 | xen_send_IPI_mask(mask, XEN_CALL_FUNCTION_VECTOR); |
| 427 | 428 | ||
| 428 | /* Make sure other vcpus get a chance to run if they need to. */ | 429 | /* Make sure other vcpus get a chance to run if they need to. */ |
| 429 | for_each_cpu_mask_nr(cpu, *mask) { | 430 | for_each_cpu(cpu, mask) { |
| 430 | if (xen_vcpu_stolen(cpu)) { | 431 | if (xen_vcpu_stolen(cpu)) { |
| 431 | HYPERVISOR_sched_op(SCHEDOP_yield, 0); | 432 | HYPERVISOR_sched_op(SCHEDOP_yield, 0); |
| 432 | break; | 433 | break; |
| @@ -436,7 +437,7 @@ static void xen_smp_send_call_function_ipi(const cpumask_t *mask) | |||
| 436 | 437 | ||
| 437 | static void xen_smp_send_call_function_single_ipi(int cpu) | 438 | static void xen_smp_send_call_function_single_ipi(int cpu) |
| 438 | { | 439 | { |
| 439 | xen_send_IPI_mask(&cpumask_of_cpu(cpu), | 440 | xen_send_IPI_mask(cpumask_of(cpu), |
| 440 | XEN_CALL_FUNCTION_SINGLE_VECTOR); | 441 | XEN_CALL_FUNCTION_SINGLE_VECTOR); |
| 441 | } | 442 | } |
| 442 | 443 | ||
