aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include
diff options
context:
space:
mode:
authorDimitri Sivanich <sivanich@sgi.com>2009-09-30 12:02:59 -0400
committerIngo Molnar <mingo@elte.hu>2009-10-14 03:17:01 -0400
commit6c2c502910247d2820cb630e7b28fb6bdecdbf45 (patch)
treed2bc695c68e57d853bcc66195628a98e34bb01ef /arch/x86/include
parent2626eb2b2fd958dc0f683126aa84e93b939699a1 (diff)
x86: SGI UV: Fix irq affinity for hub based interrupts
This patch fixes handling of uv hub irq affinity. IRQs with ALL or NODE affinity can be routed to cpus other than their originally assigned cpu. Those with CPU affinity cannot be rerouted. Signed-off-by: Dimitri Sivanich <sivanich@sgi.com> LKML-Reference: <20090930160259.GA7822@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/include')
-rw-r--r--arch/x86/include/asm/uv/uv_irq.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/arch/x86/include/asm/uv/uv_irq.h b/arch/x86/include/asm/uv/uv_irq.h
index 9613c8c0b647..5397e1290952 100644
--- a/arch/x86/include/asm/uv/uv_irq.h
+++ b/arch/x86/include/asm/uv/uv_irq.h
@@ -25,12 +25,21 @@ struct uv_IO_APIC_route_entry {
25 dest : 32; 25 dest : 32;
26}; 26};
27 27
28enum {
29 UV_AFFINITY_ALL,
30 UV_AFFINITY_NODE,
31 UV_AFFINITY_CPU
32};
33
28extern struct irq_chip uv_irq_chip; 34extern struct irq_chip uv_irq_chip;
29 35
30extern int arch_enable_uv_irq(char *, unsigned int, int, int, unsigned long); 36extern int
37arch_enable_uv_irq(char *, unsigned int, int, int, unsigned long, int);
31extern void arch_disable_uv_irq(int, unsigned long); 38extern void arch_disable_uv_irq(int, unsigned long);
39extern int uv_set_irq_affinity(unsigned int, const struct cpumask *);
32 40
33extern int uv_setup_irq(char *, int, int, unsigned long); 41extern int uv_irq_2_mmr_info(int, unsigned long *, int *);
34extern void uv_teardown_irq(unsigned int, int, unsigned long); 42extern int uv_setup_irq(char *, int, int, unsigned long, int);
43extern void uv_teardown_irq(unsigned int);
35 44
36#endif /* _ASM_X86_UV_UV_IRQ_H */ 45#endif /* _ASM_X86_UV_UV_IRQ_H */