Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2003-04-06 19:41:54 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-04-06 19:41:54 -0700
commitf289892705ed8d3526466098c6a95ded559dad98 (patch)
tree3127bca359926450c1d98a5d3af631ad8e9ca287
parent80d316b743aa85e2a3a0e449efc6feada77041a3 (diff)
The irq vector offset should spread the irq's out evenly, which
implies that it should vary between 0-7, not any further (the higher bits are done by updating current_vector by 8). This also means that we don't have any overflow condition.
-rw-r--r--arch/i386/kernel/io_apic.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c
index 851df2fdc79c..8c75d76c5271 100644
--- a/arch/i386/kernel/io_apic.c
+++ b/arch/i386/kernel/io_apic.c
@@ -1116,13 +1116,10 @@ next:
goto next;
if (current_vector > FIRST_SYSTEM_VECTOR) {
- offset++;
+ offset = (offset + 1) & 7;
current_vector = FIRST_DEVICE_VECTOR + offset;
}
- if (current_vector == FIRST_SYSTEM_VECTOR)
- panic("ran out of interrupt sources!");
-
IO_APIC_VECTOR(irq) = current_vector;
return current_vector;
}