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/alpha/tlsb | |
| parent | f3c7fb16969e45d99c717e8a953ecedf702253f8 (diff) | |
Notes
Diffstat (limited to 'sys/alpha/tlsb')
| -rw-r--r-- | sys/alpha/tlsb/dwlpx.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/alpha/tlsb/dwlpx.c b/sys/alpha/tlsb/dwlpx.c index 2f778ef64616..939fd697d2de 100644 --- a/sys/alpha/tlsb/dwlpx.c +++ b/sys/alpha/tlsb/dwlpx.c @@ -63,7 +63,9 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> +#include <sys/lock.h> #include <sys/module.h> +#include <sys/mutex.h> #include <sys/bus.h> #include <machine/bus.h> #include <machine/md_var.h> @@ -344,7 +346,7 @@ dwlpx_enadis_intr(int vector, int intpin, int onoff) { unsigned long paddr; u_int32_t val; - int device, ionode, hose, hpc, s; + int device, ionode, hose, hpc; ionode = DWLPX_MVEC_IONODE(vector); hose = DWLPX_MVEC_HOSE(vector); @@ -363,16 +365,15 @@ dwlpx_enadis_intr(int vector, int intpin, int onoff) device -= 8; } intpin <<= (device << 2); + mtx_lock_spin(&icu_lock); val = imaskcache[ionode][hose][hpc]; if (onoff) val |= intpin; else val &= ~intpin; imaskcache[ionode][hose][hpc] = val; - s = splhigh(); REGVAL(PCIA_IMASK(hpc) + paddr) = val; - alpha_mb(); - splx(s); + mtx_unlock_spin(&icu_lock); } static int |
