diff options
author | George Dunlap <george.dunlap@eu.citrix.com> | 2011-07-26 18:36:58 +0100 |
---|---|---|
committer | George Dunlap <george.dunlap@eu.citrix.com> | 2011-07-26 18:36:58 +0100 |
commit | 5028ef1e1b06001c3334d6abd8c5b1037596ca41 (patch) | |
tree | a7e50927a141a2db39e03d48a68c4238775ae6b9 /xen/arch/x86/io_apic.c | |
parent | 1de95c144458ad8841e85c93736b0c364f285ef2 (diff) | |
download | xen-5028ef1e1b06001c3334d6abd8c5b1037596ca41.tar.gz xen-5028ef1e1b06001c3334d6abd8c5b1037596ca41.tar.bz2 xen-5028ef1e1b06001c3334d6abd8c5b1037596ca41.zip |
xen: Infrastructure to allow irqs to share vector maps
Laying the groundwork for per-device vector maps. This generic
code allows any irq to point to a vector map; all irqs sharing the
same vector map will avoid sharing vectors.
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Diffstat (limited to 'xen/arch/x86/io_apic.c')
-rw-r--r-- | xen/arch/x86/io_apic.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c index 908915a4db..258f341c25 100644 --- a/xen/arch/x86/io_apic.c +++ b/xen/arch/x86/io_apic.c @@ -449,6 +449,11 @@ fastcall void smp_irq_move_cleanup_interrupt(struct cpu_user_regs *regs) irq, vector, smp_processor_id()); __get_cpu_var(vector_irq)[vector] = -1; + if ( cfg->used_vectors ) + { + ASSERT(test_bit(vector, cfg->used_vectors)); + clear_bit(vector, cfg->used_vectors); + } cfg->move_cleanup_count--; unlock: spin_unlock(&desc->lock); |