NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/49323
The following reply was made to PR kern/49323; it has been noted by GNATS.
From: Moroo Akira <retrage01%gmail.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: kern/49323
Date: Wed, 29 Jun 2016 23:33:34 +0900
OpenBSD's de(4) had same problem.
This has been fixed with following commit.
http://marc.info/?l=openbsd-cvs&m=146718035432599&w=2
I created a patch for fixing this bug in the same way.
https://gist.github.com/retrage/5dd99764268e39537d127e7a5abb26be
(I also created a patch for i386, but it is not tested.)
Index: x86/x86/ioapic.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/x86/ioapic.c,v
retrieving revision 1.52
diff -c -r1.52 ioapic.c
*** x86/x86/ioapic.c 27 Jul 2015 15:45:20 -0000 1.52
--- x86/x86/ioapic.c 29 Jun 2016 12:11:25 -0000
***************
*** 508,513 ****
--- 508,514 ----
flags = ioapic_lock(sc);
redlo = ioapic_read_ul(sc, IOAPIC_REDLO(pin));
redlo |= IOAPIC_REDLO_MASK;
+ redlo &= ~IOAPIC_REDLO_RIRR;
ioapic_write_ul(sc, IOAPIC_REDLO(pin), redlo);
ioapic_unlock(sc, flags);
}
***************
*** 549,554 ****
--- 550,556 ----
flags = ioapic_lock(sc);
redlo = ioapic_read_ul(sc, IOAPIC_REDLO(pin));
redlo &= ~IOAPIC_REDLO_MASK;
+ redlo &= ~IOAPIC_REDLO_RIRR;
ioapic_write_ul(sc, IOAPIC_REDLO(pin), redlo);
ioapic_unlock(sc, flags);
}
Index: amd64/include/i82093reg.h
===================================================================
RCS file: /cvsroot/src/sys/arch/amd64/include/i82093reg.h,v
retrieving revision 1.5
diff -c -r1.5 i82093reg.h
*** amd64/include/i82093reg.h 3 Jul 2008 14:02:25 -0000 1.5
--- amd64/include/i82093reg.h 29 Jun 2016 12:13:55 -0000
***************
*** 50,55 ****
--- 50,56 ----
movq IOAPIC_SC_DATA(%rdi),%r15 ;\
movl (%r15),%esi ;\
orl $IOAPIC_REDLO_MASK,%esi ;\
+ andl $~IOAPIC_REDLO_RIRR,%esi ;\
movl %esi,(%r15) ;\
movq IS_PIC(%r14),%rdi ;\
ioapic_asm_unlock(num)
***************
*** 67,72 ****
--- 68,74 ----
movl %esi, (%r15) ;\
movl (%r13),%r12d ;\
andl $~IOAPIC_REDLO_MASK,%r12d ;\
+ andl $~IOAPIC_REDLO_RIRR,%r12d ;\
movl %esi,(%r15) ;\
movl %r12d,(%r13) ;\
movq IS_PIC(%r14),%rdi ;\
Home |
Main Index |
Thread Index |
Old Index