projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
x86/apic: Initialize TPR to block interrupts 16-31
[linux-2.6-block.git]
/
arch
/
x86
/
kernel
/
apic
/
apic.c
diff --git
a/arch/x86/kernel/apic/apic.c
b/arch/x86/kernel/apic/apic.c
index f5291362da1ad72877aa8d9f7bcf621a83e5c1f4..84032bf814766ad2337415dd728fa8dd988c75d3 100644
(file)
--- a/
arch/x86/kernel/apic/apic.c
+++ b/
arch/x86/kernel/apic/apic.c
@@
-1561,11
+1561,14
@@
static void setup_local_APIC(void)
#endif
/*
#endif
/*
- * Set Task Priority to 'accept all'. We never change this
- * later on.
+ * Set Task Priority to 'accept all except vectors 0-31'. An APIC
+ * vector in the 16-31 range could be delivered if TPR == 0, but we
+ * would think it's an exception and terrible things will happen. We
+ * never change this later on.
*/
value = apic_read(APIC_TASKPRI);
value &= ~APIC_TPRI_MASK;
*/
value = apic_read(APIC_TASKPRI);
value &= ~APIC_TPRI_MASK;
+ value |= 0x10;
apic_write(APIC_TASKPRI, value);
apic_pending_intr_clear();
apic_write(APIC_TASKPRI, value);
apic_pending_intr_clear();