diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2008-12-13 05:50:26 -0500 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2008-12-13 05:50:26 -0500 |
commit | 0de26520c7cabf36e1de090ea8092f011a6106ce (patch) | |
tree | 3d02e509b6315fdfd9cdb8c9e0b9ed0a30cf9384 /arch/powerpc/platforms/pseries | |
parent | 29c0177e6a4ac094302bed54a1d4bbb6b740a9ef (diff) |
cpumask: make irq_set_affinity() take a const struct cpumask
Impact: change existing irq_chip API
Not much point with gentle transition here: the struct irq_chip's
setaffinity method signature needs to change.
Fortunately, not widely used code, but hits a few architectures.
Note: In irq_select_affinity() I save a temporary in by mangling
irq_desc[irq].affinity directly. Ingo, does this break anything?
(Folded in fix from KOSAKI Motohiro)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Reviewed-by: Grant Grundler <grundler@parisc-linux.org>
Acked-by: Ingo Molnar <mingo@redhat.com>
Cc: ralf@linux-mips.org
Cc: grundler@parisc-linux.org
Cc: jeremy@xensource.com
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Diffstat (limited to 'arch/powerpc/platforms/pseries')
-rw-r--r-- | arch/powerpc/platforms/pseries/xics.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index 64d24310ce7e..424b335a71c8 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -332,7 +332,7 @@ static void xics_eoi_lpar(unsigned int virq) | |||
332 | lpar_xirr_info_set((0xff << 24) | irq); | 332 | lpar_xirr_info_set((0xff << 24) | irq); |
333 | } | 333 | } |
334 | 334 | ||
335 | static void xics_set_affinity(unsigned int virq, cpumask_t cpumask) | 335 | static void xics_set_affinity(unsigned int virq, const struct cpumask *cpumask) |
336 | { | 336 | { |
337 | unsigned int irq; | 337 | unsigned int irq; |
338 | int status; | 338 | int status; |
@@ -358,7 +358,7 @@ static void xics_set_affinity(unsigned int virq, cpumask_t cpumask) | |||
358 | irq_server = get_irq_server(virq, 1); | 358 | irq_server = get_irq_server(virq, 1); |
359 | if (irq_server == -1) { | 359 | if (irq_server == -1) { |
360 | char cpulist[128]; | 360 | char cpulist[128]; |
361 | cpumask_scnprintf(cpulist, sizeof(cpulist), &cpumask); | 361 | cpumask_scnprintf(cpulist, sizeof(cpulist), cpumask); |
362 | printk(KERN_WARNING | 362 | printk(KERN_WARNING |
363 | "%s: No online cpus in the mask %s for irq %d\n", | 363 | "%s: No online cpus in the mask %s for irq %d\n", |
364 | __func__, cpulist, virq); | 364 | __func__, cpulist, virq); |
@@ -845,7 +845,7 @@ void xics_migrate_irqs_away(void) | |||
845 | 845 | ||
846 | /* Reset affinity to all cpus */ | 846 | /* Reset affinity to all cpus */ |
847 | irq_desc[virq].affinity = CPU_MASK_ALL; | 847 | irq_desc[virq].affinity = CPU_MASK_ALL; |
848 | desc->chip->set_affinity(virq, CPU_MASK_ALL); | 848 | desc->chip->set_affinity(virq, cpu_all_mask); |
849 | unlock: | 849 | unlock: |
850 | spin_unlock_irqrestore(&desc->lock, flags); | 850 | spin_unlock_irqrestore(&desc->lock, flags); |
851 | } | 851 | } |