diff options
Diffstat (limited to 'arch/parisc/kernel/irq.c')
-rw-r--r-- | arch/parisc/kernel/irq.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index a572112f5aba..29e70e16ede8 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
@@ -112,7 +112,7 @@ void cpu_end_irq(unsigned int irq) | |||
112 | } | 112 | } |
113 | 113 | ||
114 | #ifdef CONFIG_SMP | 114 | #ifdef CONFIG_SMP |
115 | int cpu_check_affinity(unsigned int irq, cpumask_t *dest) | 115 | int cpu_check_affinity(unsigned int irq, const struct cpumask *dest) |
116 | { | 116 | { |
117 | int cpu_dest; | 117 | int cpu_dest; |
118 | 118 | ||
@@ -126,17 +126,19 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest) | |||
126 | 126 | ||
127 | /* whatever mask they set, we just allow one CPU */ | 127 | /* whatever mask they set, we just allow one CPU */ |
128 | cpu_dest = first_cpu(*dest); | 128 | cpu_dest = first_cpu(*dest); |
129 | *dest = cpumask_of_cpu(cpu_dest); | ||
130 | 129 | ||
131 | return 0; | 130 | return cpu_dest; |
132 | } | 131 | } |
133 | 132 | ||
134 | static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) | 133 | static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) |
135 | { | 134 | { |
136 | if (cpu_check_affinity(irq, dest)) | 135 | int cpu_dest; |
136 | |||
137 | cpu_dest = cpu_check_affinity(irq, dest); | ||
138 | if (cpu_dest < 0) | ||
137 | return; | 139 | return; |
138 | 140 | ||
139 | cpumask_copy(&irq_desc[irq].affinity, dest); | 141 | cpumask_copy(&irq_desc[irq].affinity, &cpumask_of_cpu(cpu_dest)); |
140 | } | 142 | } |
141 | #endif | 143 | #endif |
142 | 144 | ||