diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2001-12-20 23:48:31 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2001-12-20 23:48:31 +0000 |
| commit | 98f9879242b09010e545e2ff614e8d35c17e95e0 (patch) | |
| tree | dec76d77f99795635c90df0631ffc2beb333b91b /sys/amd64/isa/clock.c | |
| parent | f3c7fb16969e45d99c717e8a953ecedf702253f8 (diff) | |
Notes
Diffstat (limited to 'sys/amd64/isa/clock.c')
| -rw-r--r-- | sys/amd64/isa/clock.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/amd64/isa/clock.c b/sys/amd64/isa/clock.c index a7aaea0b7a5e..a39f7731be6a 100644 --- a/sys/amd64/isa/clock.c +++ b/sys/amd64/isa/clock.c @@ -1026,7 +1026,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 */ @@ -1037,7 +1039,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 */ @@ -1060,11 +1064,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); @@ -1081,7 +1087,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 " @@ -1104,7 +1112,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); } } |
