This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / usb / class / usb-midi.c
index 1dc952e..a9dc047 100644 (file)
@@ -805,6 +805,7 @@ static int usb_midi_open(struct inode *inode, struct file *file)
 {
        int minor = iminor(inode);
        DECLARE_WAITQUEUE(wait, current);
+       struct list_head      *devs, *mdevs;
        struct usb_midi_state *s;
        struct usb_mididev    *m;
        unsigned long flags;
@@ -816,8 +817,10 @@ static int usb_midi_open(struct inode *inode, struct file *file)
 
        for(;;) {
                down(&open_sem);
-               list_for_each_entry(s, &mididevs, mididev) {
-                       list_for_each_entry(m, &s->midiDevList, list) {
+               list_for_each(devs, &mididevs) {
+                       s = list_entry(devs, struct usb_midi_state, mididev);
+                       list_for_each(mdevs, &s->midiDevList) {
+                               m = list_entry(mdevs, struct usb_mididev, list);
                                if ( !((m->dev_midi ^ minor) & ~0xf) )
                                        goto device_found;
                        }
@@ -936,7 +939,7 @@ static int usb_midi_release(struct inode *inode, struct file *file)
 
        if ( m->open_mode & FMODE_WRITE ) {
                m->open_mode &= ~FMODE_WRITE;
-               usb_kill_urb( m->mout.ep->urb );
+               usb_unlink_urb( m->mout.ep->urb );
        }
 
        if ( m->open_mode & FMODE_READ ) {
@@ -948,7 +951,7 @@ static int usb_midi_release(struct inode *inode, struct file *file)
                if ( m->min.ep->readers == 0 &&
                      m->min.ep->urbSubmitted ) {
                        m->min.ep->urbSubmitted = 0;
-                       usb_kill_urb(m->min.ep->urb);
+                       usb_unlink_urb(m->min.ep->urb);
                }
                spin_unlock_irqrestore( &m->min.ep->lock, flagsep );
        }
@@ -1039,7 +1042,7 @@ static struct midi_in_endpoint *alloc_midi_in_endpoint( struct usb_device *d, in
 
 static int remove_midi_in_endpoint( struct midi_in_endpoint *min )
 {
-       usb_kill_urb( min->urb );
+       usb_unlink_urb( min->urb );
        usb_free_urb( min->urb );
        kfree( min->recvBuf );
        kfree( min );
@@ -1099,7 +1102,7 @@ static struct midi_out_endpoint *alloc_midi_out_endpoint( struct usb_device *d,
 
 static int remove_midi_out_endpoint( struct midi_out_endpoint *mout )
 {
-       usb_kill_urb( mout->urb );
+       usb_unlink_urb( mout->urb );
        usb_free_urb( mout->urb );
        kfree( mout->buf );
        kfree( mout );
@@ -1991,6 +1994,7 @@ static int usb_midi_probe(struct usb_interface *intf,
 static void usb_midi_disconnect(struct usb_interface *intf)
 {
        struct usb_midi_state *s = usb_get_intfdata (intf);
+       struct list_head      *list;
        struct usb_mididev    *m;
 
        if ( !s )
@@ -2008,7 +2012,8 @@ static void usb_midi_disconnect(struct usb_interface *intf)
        s->usbdev = NULL;
        usb_set_intfdata (intf, NULL);
 
-       list_for_each_entry(m, &s->midiDevList, list) {
+       list_for_each(list, &s->midiDevList) {
+               m = list_entry(list, struct usb_mididev, list);
                wake_up(&(m->min.ep->wait));
                wake_up(&(m->mout.ep->wait));
                if ( m->dev_midi >= 0 ) {