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>
This commit is contained in:
Yinghai Lu
2008-12-19 15:23:44 -08:00
committed by Ingo Molnar
parent a7883dece6
commit b77b881f21
8 changed files with 52 additions and 24 deletions
+3 -6
View File
@@ -1326,13 +1326,10 @@ next:
}
if (unlikely(current_vector == vector))
continue;
#ifdef CONFIG_X86_64
if (vector == IA32_SYSCALL_VECTOR)
if (test_bit(vector, used_vectors))
goto next;
#else
if (vector == SYSCALL_VECTOR)
goto next;
#endif
for_each_cpu_and(new_cpu, tmp_mask, cpu_online_mask)
if (per_cpu(vector_irq, new_cpu)[vector] != -1)
goto next;