summaryrefslogtreecommitdiff
path: root/sys/dev/isa
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2016-10-25 06:20:42 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2016-10-25 06:20:42 +0000
commit0711c8b9635c47ced6e3e598c8a4046314e1d681 (patch)
tree2a27d098eb6093f49da8862e25c16481e1054ceb /sys/dev/isa
parent1bedfc00428734c6a101151fb94b4bf64e25b4d2 (diff)
mask and unmask the interrupt source in an intx specific intr handler.
it seems devices using levelled intx interrupts need to explicitely ack interrupts by masking and unmasking the source around the completion ring handling. without this completions can be lost, which in turn causes long (permanent?) stalls in the block layer under heavy write load. ive experienced this problem with an intel nvme part that only has intx and msix support. because we dont support msix yet we only use intx on it. it appeared to lock up before this fix. this has been tested on both that intel board and a samsung with msi. this fix was based on work found in code by nonaka
Diffstat (limited to 'sys/dev/isa')
0 files changed, 0 insertions, 0 deletions