From 28c4f9b685933b82bc8c113bb6bbdc973d33aa4b Mon Sep 17 00:00:00 2001 From: Doug Rabson Date: Sun, 10 Sep 2000 15:39:23 +0000 Subject: 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. --- sys/alpha/alpha/interrupt.c | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'sys') diff --git a/sys/alpha/alpha/interrupt.c b/sys/alpha/alpha/interrupt.c index cb796c642d15..ef1c708d2bf2 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 */ -- cgit v1.3