summaryrefslogtreecommitdiffstats
path: root/sys/pc98/cbus/pcrtc.c
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2001-12-22 00:38:32 +0000
committernyan <nyan@FreeBSD.org>2001-12-22 00:38:32 +0000
commitdb7ffc95544619853809d2e0b3e88c8d2db19131 (patch)
treec1086d97b8bdca94860822067056736bef7f3f03 /sys/pc98/cbus/pcrtc.c
parent560333de36f3254e2a348de196219bbc0dbf2864 (diff)
downloadFreeBSD-src-db7ffc95544619853809d2e0b3e88c8d2db19131.zip
FreeBSD-src-db7ffc95544619853809d2e0b3e88c8d2db19131.tar.gz
MFi386: revision 1.179
Diffstat (limited to 'sys/pc98/cbus/pcrtc.c')
-rw-r--r--sys/pc98/cbus/pcrtc.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/pc98/cbus/pcrtc.c b/sys/pc98/cbus/pcrtc.c
index 6d3e095..54bf0f8 100644
--- a/sys/pc98/cbus/pcrtc.c
+++ b/sys/pc98/cbus/pcrtc.c
@@ -1367,7 +1367,9 @@ cpu_initclocks()
inthand_add("clk", apic_8254_intr, (driver_intr_t *)clkintr, NULL,
INTR_TYPE_CLK | INTR_FAST, &clkdesc);
+ mtx_lock_spin(&icu_lock);
INTREN(1 << apic_8254_intr);
+ mtx_unlock_spin(&icu_lock);
#else /* APIC_IO */
@@ -1378,7 +1380,9 @@ cpu_initclocks()
*/
inthand_add("clk", 0, (driver_intr_t *)clkintr, NULL,
INTR_TYPE_CLK | INTR_FAST, NULL);
+ mtx_lock_spin(&icu_lock);
INTREN(IRQ0);
+ mtx_unlock_spin(&icu_lock);
#endif /* APIC_IO */
@@ -1404,11 +1408,13 @@ cpu_initclocks()
inthand_add("rtc", 8, (driver_intr_t *)rtcintr, NULL,
INTR_TYPE_CLK | INTR_FAST, NULL);
+ mtx_lock_spin(&icu_lock);
#ifdef APIC_IO
INTREN(APIC_IRQ8);
#else
INTREN(IRQ8);
#endif /* APIC_IO */
+ mtx_unlock_spin(&icu_lock);
writertc(RTC_STATUSB, rtc_statusb);
#endif /* PC98 */
@@ -1426,7 +1432,9 @@ cpu_initclocks()
* on the IO APIC.
* Workaround: Limited variant of mixed mode.
*/
+ mtx_lock_spin(&icu_lock);
INTRDIS(1 << apic_8254_intr);
+ mtx_unlock_spin(&icu_lock);
inthand_remove(clkdesc);
printf("APIC_IO: Broken MP table detected: "
"8254 is not connected to "
@@ -1449,7 +1457,9 @@ cpu_initclocks()
inthand_add("clk", apic_8254_intr,
(driver_intr_t *)clkintr, NULL,
INTR_TYPE_CLK | INTR_FAST, NULL);
+ mtx_lock_spin(&icu_lock);
INTREN(1 << apic_8254_intr);
+ mtx_unlock_spin(&icu_lock);
}
}
OpenPOWER on IntegriCloud