USB: usb-storage: fix initializations of urb fields
authorBob Copeland <me@bobcopeland.com>
Mon, 12 Jul 2010 15:18:18 +0000 (11:18 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 26 Jul 2010 19:00:58 +0000 (12:00 -0700)
Commit 0ede76fcec5415ef82a423a95120286895822e2d, "USB: remove uses of
URB_NO_SETUP_DMA_MAP" introduced a regression by inadvertantly removing
initialization of the transfer flags.  This caused initialization
failures in the ums-karma driver.  Fix the regression by zeroing it.

While at it, as Alan Stern points out, the initializers for
actual_length and status are handled by the core and error_count
only matters for isochronous urbs, so they don't need to be set here.
Remove them.

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/storage/transport.c

index 4471642..64ec073 100644 (file)
@@ -139,9 +139,7 @@ static int usb_stor_msg_common(struct us_data *us, int timeout)
 
        /* fill the common fields in the URB */
        us->current_urb->context = &urb_done;
-       us->current_urb->actual_length = 0;
-       us->current_urb->error_count = 0;
-       us->current_urb->status = 0;
+       us->current_urb->transfer_flags = 0;
 
        /* we assume that if transfer_buffer isn't us->iobuf then it
         * hasn't been mapped for DMA.  Yes, this is clunky, but it's