short phase;                    /* Between 0 and period-1 */
        short load;                     /* Periodic time requirement, in us */
        unsigned int iso_frame;         /* Frame # for iso_packet_desc */
-       int iso_status;                 /* Status for Isochronous URBs */
 
        int state;                      /* QH_STATE_xxx; see above */
        int type;                       /* Queue type (control, bulk, etc) */
 
        if (list_empty(&qh->queue)) {
                qh->iso_packet_desc = &urb->iso_frame_desc[0];
                qh->iso_frame = urb->start_frame;
-               qh->iso_status = 0;
        }
 
        qh->skel = SKEL_ISO;
                        qh->iso_packet_desc->actual_length = actlength;
                        qh->iso_packet_desc->status = status;
                }
-
-               if (status) {
+               if (status)
                        urb->error_count++;
-                       qh->iso_status = status;
-               }
 
                uhci_remove_td_from_urbp(td);
                uhci_free_td(uhci, td);
                qh->iso_frame += qh->period;
                ++qh->iso_packet_desc;
        }
-       return qh->iso_status;
+       return 0;
 }
 
 static int uhci_urb_enqueue(struct usb_hcd *hcd,
 
                qh->iso_packet_desc = &nurb->iso_frame_desc[0];
                qh->iso_frame = nurb->start_frame;
-               qh->iso_status = 0;
        }
 
        /* Take the URB off the QH's queue.  If the queue is now empty,
                }
 
                uhci_giveback_urb(uhci, qh, urb);
-               if (status < 0 && qh->type != USB_ENDPOINT_XFER_ISOC)
+               if (status < 0)
                        break;
        }