diff options
author | Yinghai Lu <yinghai@kernel.org> | 2008-12-19 18:23:44 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-23 16:37:28 -0500 |
commit | b77b881f21b29aa7efa668fde69ee3dc0372ae3f (patch) | |
tree | a4039161e9bcab3e9c2fd2e2aa70fee16103857b /arch/x86/kernel/io_apic.c | |
parent | a7883dece6ef82097e6bdf19c1d0a20351e06056 (diff) |
x86: fix lguest used_vectors breakage, -v2
Impact: fix lguest, clean up
32-bit lguest used used_vectors to record vectors, but that model of
allocating vectors changed and got broken, after we changed vector
allocation to a per_cpu array.
Try enable that for 64bit, and the array is used for all vectors that
are not managed by vector_irq per_cpu array.
Also kill system_vectors[], that is now a duplication of the
used_vectors bitmap.
[ merged in cpus4096 due to io_apic.c cpumask changes. ]
[ -v2, fix build failure ]
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/io_apic.c')
-rw-r--r-- | arch/x86/kernel/io_apic.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c index 908c1d00a5c7..1cbf7c8d46e0 100644 --- a/arch/x86/kernel/io_apic.c +++ b/arch/x86/kernel/io_apic.c | |||
@@ -1326,13 +1326,10 @@ next: | |||
1326 | } | 1326 | } |
1327 | if (unlikely(current_vector == vector)) | 1327 | if (unlikely(current_vector == vector)) |
1328 | continue; | 1328 | continue; |
1329 | #ifdef CONFIG_X86_64 | 1329 | |
1330 | if (vector == IA32_SYSCALL_VECTOR) | 1330 | if (test_bit(vector, used_vectors)) |
1331 | goto next; | ||
1332 | #else | ||
1333 | if (vector == SYSCALL_VECTOR) | ||
1334 | goto next; | 1331 | goto next; |
1335 | #endif | 1332 | |
1336 | for_each_cpu_and(new_cpu, tmp_mask, cpu_online_mask) | 1333 | for_each_cpu_and(new_cpu, tmp_mask, cpu_online_mask) |
1337 | if (per_cpu(vector_irq, new_cpu)[vector] != -1) | 1334 | if (per_cpu(vector_irq, new_cpu)[vector] != -1) |
1338 | goto next; | 1335 | goto next; |