IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
[linux-2.6-block.git] / drivers / usb / storage / transport.c
index eb7188b3565c840622e05c2663517de512fb0549..47644b5b61553c4082257aa8cd4763587375c197 100644 (file)
 /* This is the completion handler which will wake us up when an URB
  * completes.
  */
-static void usb_stor_blocking_completion(struct urb *urb, struct pt_regs *regs)
+static void usb_stor_blocking_completion(struct urb *urb)
 {
        struct completion *urb_done_ptr = (struct completion *)urb->context;
 
@@ -180,7 +180,7 @@ static int usb_stor_msg_common(struct us_data *us, int timeout)
        if (timeleft <= 0) {
                US_DEBUGP("%s -- cancelling URB\n",
                          timeleft == 0 ? "Timeout" : "Signal");
-               usb_unlink_urb(us->current_urb);
+               usb_kill_urb(us->current_urb);
        }
 
        /* return the URB status */
@@ -294,11 +294,6 @@ static int interpret_urb_result(struct us_data *us, unsigned int pipe,
                        return USB_STOR_XFER_ERROR;
                return USB_STOR_XFER_STALLED;
 
-       /* timeout or excessively long NAK */
-       case -ETIMEDOUT:
-               US_DEBUGP("-- timeout or NAK\n");
-               return USB_STOR_XFER_ERROR;
-
        /* babble - the device tried to send more than we wanted to read */
        case -EOVERFLOW:
                US_DEBUGP("-- babble\n");