aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-01-10 09:12:18 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-10 09:12:18 -0500
commit4e9b1c184cadbece3694603de5f880b6e35bd7a7 (patch)
tree8ae2ab8a4eaab4d46b4460284fd5ee475ce9a42d /arch/ia64
parent0176260fc30842e358cf34afa7dcd9413db44822 (diff)
parent36c401a44abcc389a00f9cd14892c9cf9bf0780d (diff)
Merge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: [IA64] fix typo in cpumask_of_pcibus() x86: fix x86_32 builds for summit and es7000 arch's cpumask: use work_on_cpu in acpi-cpufreq.c for read_measured_perf_ctrs cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write cpumask: use cpumask_var_t in acpi-cpufreq.c cpumask: use work_on_cpu in acpi/cstate.c cpumask: convert struct cpufreq_policy to cpumask_var_t cpumask: replace CPUMASK_ALLOC etc with cpumask_var_t x86: cleanup remaining cpumask_t ops in smpboot code cpumask: update pci_bus_show_cpuaffinity to use new cpumask API cpumask: update local_cpus_show to use new cpumask API ia64: cpumask fix for is_affinity_mask_valid()
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/include/asm/irq.h2
-rw-r--r--arch/ia64/include/asm/topology.h2
-rw-r--r--arch/ia64/kernel/irq.c15
3 files changed, 8 insertions, 11 deletions
diff --git a/arch/ia64/include/asm/irq.h b/arch/ia64/include/asm/irq.h
index 36429a532630..5282546cdf82 100644
--- a/arch/ia64/include/asm/irq.h
+++ b/arch/ia64/include/asm/irq.h
@@ -27,7 +27,7 @@ irq_canonicalize (int irq)
27} 27}
28 28
29extern void set_irq_affinity_info (unsigned int irq, int dest, int redir); 29extern void set_irq_affinity_info (unsigned int irq, int dest, int redir);
30bool is_affinity_mask_valid(cpumask_var_t cpumask); 30bool is_affinity_mask_valid(const struct cpumask *cpumask);
31 31
32#define is_affinity_mask_valid is_affinity_mask_valid 32#define is_affinity_mask_valid is_affinity_mask_valid
33 33
diff --git a/arch/ia64/include/asm/topology.h b/arch/ia64/include/asm/topology.h
index 76a33a91ca69..32f3af1641c5 100644
--- a/arch/ia64/include/asm/topology.h
+++ b/arch/ia64/include/asm/topology.h
@@ -124,7 +124,7 @@ extern void arch_fix_phys_package_id(int num, u32 slot);
124 124
125#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \ 125#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
126 cpu_all_mask : \ 126 cpu_all_mask : \
127 cpumask_from_node(pcibus_to_node(bus))) 127 cpumask_of_node(pcibus_to_node(bus)))
128 128
129#include <asm-generic/topology.h> 129#include <asm-generic/topology.h>
130 130
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
index 95ff16cb05d8..a58f64ca9f0e 100644
--- a/arch/ia64/kernel/irq.c
+++ b/arch/ia64/kernel/irq.c
@@ -102,17 +102,14 @@ static char irq_redir [NR_IRQS]; // = { [0 ... NR_IRQS-1] = 1 };
102 102
103void set_irq_affinity_info (unsigned int irq, int hwid, int redir) 103void set_irq_affinity_info (unsigned int irq, int hwid, int redir)
104{ 104{
105 cpumask_t mask = CPU_MASK_NONE;
106
107 cpu_set(cpu_logical_id(hwid), mask);
108
109 if (irq < NR_IRQS) { 105 if (irq < NR_IRQS) {
110 irq_desc[irq].affinity = mask; 106 cpumask_copy(&irq_desc[irq].affinity,
107 cpumask_of(cpu_logical_id(hwid)));
111 irq_redir[irq] = (char) (redir & 0xff); 108 irq_redir[irq] = (char) (redir & 0xff);
112 } 109 }
113} 110}
114 111
115bool is_affinity_mask_valid(cpumask_var_t cpumask) 112bool is_affinity_mask_valid(const struct cpumask *cpumask)
116{ 113{
117 if (ia64_platform_is("sn2")) { 114 if (ia64_platform_is("sn2")) {
118 /* Only allow one CPU to be specified in the smp_affinity mask */ 115 /* Only allow one CPU to be specified in the smp_affinity mask */
@@ -128,7 +125,7 @@ bool is_affinity_mask_valid(cpumask_var_t cpumask)
128unsigned int vectors_in_migration[NR_IRQS]; 125unsigned int vectors_in_migration[NR_IRQS];
129 126
130/* 127/*
131 * Since cpu_online_map is already updated, we just need to check for 128 * Since cpu_online_mask is already updated, we just need to check for
132 * affinity that has zeros 129 * affinity that has zeros
133 */ 130 */
134static void migrate_irqs(void) 131static void migrate_irqs(void)
@@ -158,7 +155,7 @@ static void migrate_irqs(void)
158 */ 155 */
159 vectors_in_migration[irq] = irq; 156 vectors_in_migration[irq] = irq;
160 157
161 new_cpu = any_online_cpu(cpu_online_map); 158 new_cpu = cpumask_any(cpu_online_mask);
162 159
163 /* 160 /*
164 * Al three are essential, currently WARN_ON.. maybe panic? 161 * Al three are essential, currently WARN_ON.. maybe panic?
@@ -191,7 +188,7 @@ void fixup_irqs(void)
191 * Find a new timesync master 188 * Find a new timesync master
192 */ 189 */
193 if (smp_processor_id() == time_keeper_id) { 190 if (smp_processor_id() == time_keeper_id) {
194 time_keeper_id = first_cpu(cpu_online_map); 191 time_keeper_id = cpumask_first(cpu_online_mask);
195 printk ("CPU %d is now promoted to time-keeper master\n", time_keeper_id); 192 printk ("CPU %d is now promoted to time-keeper master\n", time_keeper_id);
196 } 193 }
197 194