Page MenuHomeFreeBSD

D54130.diff
No OneTemporary

D54130.diff

diff --git a/sys/dev/sound/midi/midi.c b/sys/dev/sound/midi/midi.c
--- a/sys/dev/sound/midi/midi.c
+++ b/sys/dev/sound/midi/midi.c
@@ -391,9 +391,11 @@
used = MIN(used, MIDI_RSIZE);
MIDIQ_DEQ(m->inq, buf, used);
+ mtx_unlock(&m->lock);
retval = uiomove(buf, used, uio);
if (retval)
- goto err1;
+ goto err0;
+ mtx_lock(&m->lock);
}
/*
@@ -457,9 +459,11 @@
used = MIN(MIDIQ_AVAIL(m->outq), uio->uio_resid);
used = MIN(used, MIDI_WSIZE);
+ mtx_unlock(&m->lock);
retval = uiomove(buf, used, uio);
if (retval)
- goto err1;
+ goto err0;
+ mtx_lock(&m->lock);
MIDIQ_ENQ(m->outq, buf, used);
/*
* Inform the bottom half that data can be written

File Metadata

Mime Type
text/plain
Expires
Mon, Jul 13, 5:56 PM (11 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35040159
Default Alt Text
D54130.diff (702 B)

Event Timeline