Of course the PIC mask register is a _mask_ and the enabled interrupts are the

ones that aren't masked. This reversed the enabled interrupts and therefore
disabled the already installed ACPI SCI handler and wrongly enabled the other
interrupt pins instead on PIC to IO-APIC handover. Probably fixes #7525.
+r1alpha3


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41685 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz 2011-05-23 18:01:59 +00:00
parent f599932f82
commit 2c0d5258df

View File

@ -237,7 +237,7 @@ pic_init()
void
pic_disable(uint16& enabledInterrupts)
{
enabledInterrupts = in8(PIC_MASTER_MASK) | in8(PIC_SLAVE_MASK) << 8;
enabledInterrupts = ~(in8(PIC_MASTER_MASK) | in8(PIC_SLAVE_MASK) << 8);
enabledInterrupts &= 0xfffb; // remove slave PIC from the mask
// Mask off all interrupts on master and slave