git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
[safe/jmp/linux-2.6]
/
arch
/
x86
/
kernel
/
io_apic_32.c
diff --git
a/arch/x86/kernel/io_apic_32.c
b/arch/x86/kernel/io_apic_32.c
index
03e88fc
..
f35c6eb
100644
(file)
--- a/
arch/x86/kernel/io_apic_32.c
+++ b/
arch/x86/kernel/io_apic_32.c
@@
-1198,7
+1198,7
@@
static u8 irq_vector[NR_IRQ_VECTORS] __read_mostly = { FIRST_DEVICE_VECTOR , 0 }
static int __assign_irq_vector(int irq)
{
static int current_vector = FIRST_DEVICE_VECTOR, current_offset = 0;
static int __assign_irq_vector(int irq)
{
static int current_vector = FIRST_DEVICE_VECTOR, current_offset = 0;
- int vector, offset
, i
;
+ int vector, offset;
BUG_ON((unsigned)irq >= NR_IRQ_VECTORS);
BUG_ON((unsigned)irq >= NR_IRQ_VECTORS);
@@
-1215,11
+1215,8
@@
next:
}
if (vector == current_vector)
return -ENOSPC;
}
if (vector == current_vector)
return -ENOSPC;
- if (
vector == SYSCALL_VECTOR
)
+ if (
test_and_set_bit(vector, used_vectors)
)
goto next;
goto next;
- for (i = 0; i < NR_IRQ_VECTORS; i++)
- if (irq_vector[i] == vector)
- goto next;
current_vector = vector;
current_offset = offset;
current_vector = vector;
current_offset = offset;
@@
-2295,6
+2292,12
@@
static inline void __init check_timer(void)
void __init setup_IO_APIC(void)
{
void __init setup_IO_APIC(void)
{
+ int i;
+
+ /* Reserve all the system vectors. */
+ for (i = FIRST_SYSTEM_VECTOR; i < NR_VECTORS; i++)
+ set_bit(i, used_vectors);
+
enable_IO_APIC();
if (acpi_ioapic)
enable_IO_APIC();
if (acpi_ioapic)