summaryrefslogtreecommitdiffstats
path: root/sys/arch/vax/include/float.h
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2011-08-29 12:42:18 +0000
committerdlg <dlg@openbsd.org>2011-08-29 12:42:18 +0000
commit292133d9ca0f369631796badb044aff51364b9ce (patch)
treea0528716c7b66bc0e8b6eddd9a42d029e0c972de /sys/arch/vax/include/float.h
parentIn dired mode, make point move up and down first character (diff)
downloadwireguard-openbsd-292133d9ca0f369631796badb044aff51364b9ce.tar.xz
wireguard-openbsd-292133d9ca0f369631796badb044aff51364b9ce.zip
dont use a semaphore (which doesnt block interrupts in the critical
section) to protect the completion ring. mpii_poll can be in the middle of the critical section when an interrupt is generated, but because something is already in the critical section the isr cant clear the condition causing the interrupt and you spin forever entering the isr and being forced to exit it without doing any work by the semaphore. this moves to protecting the completion ring with a vanilla mutex. work taken off the ring is stuck on local lists in the isr to be completed outside the mutex in case a completion path issues a polled command which will try to call the isr which tries to mutex_enter while the previous call on the stack would be holding the mutex... this diff is large because of the list changes needed to support the local lists in mpii_intr. issue found by bluhm@ and debugged by Christian Ehrhardt
Diffstat (limited to 'sys/arch/vax/include/float.h')
0 files changed, 0 insertions, 0 deletions