NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/45909 (Use of MIDI over USB interfaces crashes NetBSD)



The following reply was made to PR kern/45909; it has been noted by GNATS.

From: Tom Ivar Helbekkmo <tih%hamartun.priv.no@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: mrg%NetBSD.org@localhost,  gnats-admin%netbsd.org@localhost,  
netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/45909 (Use of MIDI over USB interfaces crashes NetBSD)
Date: Sun, 19 Feb 2012 13:30:05 +0100

 I wrote:
 
 >  It doesn't crash now, but it doesn't entirely work, either.  Reading
 >  from USB MIDI works fine, but writing, although not flagging any errors,
 >  doesn't work: nothing ever hits the synth.
 
 Right, that was easily fixed.  I see you're making everything observe
 mididev->closing to avoid having to lock things, but you've accidentally
 reversed the sense of this flag in the writing routines.
 
 Works fine with the appended patch.
 
 -tih
 
 Index: umidi.c
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/usb/umidi.c,v
 retrieving revision 1.59
 diff -u -r1.59 umidi.c
 --- umidi.c    14 Feb 2012 19:28:22 -0000      1.59
 +++ umidi.c    19 Feb 2012 12:28:38 -0000
 @@ -391,7 +391,7 @@
  {
        struct umidi_mididev *mididev = addr;
  
 -      if (!mididev->out_jack || !mididev->opened || !mididev->closing)
 +      if (!mididev->out_jack || !mididev->opened || mididev->closing)
                return EIO;
        
        return out_jack_output(mididev->out_jack, msg, len, (status>>4)&0xf);
 @@ -403,7 +403,7 @@
        struct umidi_mididev *mididev = addr;
        int cin;
  
 -      if (!mididev->out_jack || !mididev->opened || !mididev->closing)
 +      if (!mididev->out_jack || !mididev->opened || mididev->closing)
                return EIO;
  
        switch ( len ) {
 @@ -422,7 +422,7 @@
        struct umidi_mididev *mididev = addr;
        int cin;
  
 -      if (!mididev->out_jack || !mididev->opened || !mididev->closing)
 +      if (!mididev->out_jack || !mididev->opened || mididev->closing)
                return EIO;
  
        switch ( len ) {
 @@ -441,7 +441,7 @@
        struct umidi_mididev *mididev = addr;
        u_char msg = d;
  
 -      if (!mididev->out_jack || !mididev->opened || !mididev->closing)
 +      if (!mididev->out_jack || !mididev->opened || mididev->closing)
                return EIO;
  
        return out_jack_output(mididev->out_jack, &msg, 1, 0xf);
 
 -- 
 "The market" is a bunch of 28-year-olds who don't know anything. --Paul Krugman
 


Home | Main Index | Thread Index | Old Index