diff options
author | dfr <dfr@FreeBSD.org> | 2000-09-10 15:39:23 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2000-09-10 15:39:23 +0000 |
commit | bd77d0334ba679007e58b98078ff4fad18528b03 (patch) | |
tree | 3f1401e95b16279a26d766c3394964eed73ba41d /sys | |
parent | df75e73d4696444efe6f740222ecaaf957d7b18b (diff) | |
download | FreeBSD-src-bd77d0334ba679007e58b98078ff4fad18528b03.zip FreeBSD-src-bd77d0334ba679007e58b98078ff4fad18528b03.tar.gz |
Remove the manipulation of the Giant mutex from the interrupt entry
points. This can't work right anyway and needs to happen in the irq thread.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/alpha/alpha/interrupt.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/sys/alpha/alpha/interrupt.c b/sys/alpha/alpha/interrupt.c index cb796c6..ef1c708 100644 --- a/sys/alpha/alpha/interrupt.c +++ b/sys/alpha/alpha/interrupt.c @@ -93,7 +93,6 @@ interrupt(a0, a1, a2, framep) struct proc* p = curproc; if (!p) p = &proc0; if ((caddr_t) framep < (caddr_t) p->p_addr + 1024) { - mtx_enter(&Giant, MTX_DEF); panic("possible stack overflow\n"); } } @@ -114,7 +113,6 @@ interrupt(a0, a1, a2, framep) return; } - mtx_enter(&Giant, MTX_DEF); cnt.v_intr++; #ifdef EVCNT_COUNTERS clock_intr_evcnt.ev_count++; @@ -127,31 +125,24 @@ interrupt(a0, a1, a2, framep) if((++schedclk2 & 0x7) == 0) statclock((struct clockframe *)framep); } - mtx_exit(&Giant, MTX_DEF); break; case ALPHA_INTR_ERROR: /* Machine Check or Correctable Error */ - mtx_enter(&Giant, MTX_DEF); a0 = alpha_pal_rdmces(); if (platform.mcheck_handler) (*platform.mcheck_handler)(a0, framep, a1, a2); else machine_check(a0, framep, a1, a2); - mtx_exit(&Giant, MTX_DEF); break; case ALPHA_INTR_DEVICE: /* I/O device interrupt */ - mtx_enter(&Giant, MTX_DEF); cnt.v_intr++; if (platform.iointr) (*platform.iointr)(framep, a1); - mtx_exit(&Giant, MTX_DEF); break; case ALPHA_INTR_PERF: /* interprocessor interrupt */ - mtx_enter(&Giant, MTX_DEF); perf_irq(a1, framep); - mtx_exit(&Giant, MTX_DEF); break; case ALPHA_INTR_PASSIVE: @@ -161,7 +152,6 @@ interrupt(a0, a1, a2, framep) break; default: - mtx_enter(&Giant, MTX_DEF); panic("unexpected interrupt: type 0x%lx vec 0x%lx a2 0x%lx\n", a0, a1, a2); /* NOTREACHED */ |