mirror of
https://github.com/torvalds/linux.git
synced 2024-10-25 14:40:58 +00:00
USB: core: message: clean up urb->status usage
This done in anticipation of removal of urb->status, which will make that patch easier to review and apply in the future. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
b44cd112a0
commit
3fc3e8269f
|
@ -34,13 +34,14 @@ static int usb_start_wait_urb(struct urb *urb, int timeout, int *actual_length)
|
||||||
{
|
{
|
||||||
struct completion done;
|
struct completion done;
|
||||||
unsigned long expire;
|
unsigned long expire;
|
||||||
int status;
|
int retval;
|
||||||
|
int status = urb->status;
|
||||||
|
|
||||||
init_completion(&done);
|
init_completion(&done);
|
||||||
urb->context = &done;
|
urb->context = &done;
|
||||||
urb->actual_length = 0;
|
urb->actual_length = 0;
|
||||||
status = usb_submit_urb(urb, GFP_NOIO);
|
retval = usb_submit_urb(urb, GFP_NOIO);
|
||||||
if (unlikely(status))
|
if (unlikely(retval))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
expire = timeout ? msecs_to_jiffies(timeout) : MAX_SCHEDULE_TIMEOUT;
|
expire = timeout ? msecs_to_jiffies(timeout) : MAX_SCHEDULE_TIMEOUT;
|
||||||
|
@ -55,15 +56,15 @@ static int usb_start_wait_urb(struct urb *urb, int timeout, int *actual_length)
|
||||||
urb->transfer_buffer_length);
|
urb->transfer_buffer_length);
|
||||||
|
|
||||||
usb_kill_urb(urb);
|
usb_kill_urb(urb);
|
||||||
status = urb->status == -ENOENT ? -ETIMEDOUT : urb->status;
|
retval = status == -ENOENT ? -ETIMEDOUT : status;
|
||||||
} else
|
} else
|
||||||
status = urb->status;
|
retval = status;
|
||||||
out:
|
out:
|
||||||
if (actual_length)
|
if (actual_length)
|
||||||
*actual_length = urb->actual_length;
|
*actual_length = urb->actual_length;
|
||||||
|
|
||||||
usb_free_urb(urb);
|
usb_free_urb(urb);
|
||||||
return status;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------*/
|
||||||
|
@ -250,6 +251,7 @@ static void sg_clean (struct usb_sg_request *io)
|
||||||
static void sg_complete (struct urb *urb)
|
static void sg_complete (struct urb *urb)
|
||||||
{
|
{
|
||||||
struct usb_sg_request *io = urb->context;
|
struct usb_sg_request *io = urb->context;
|
||||||
|
int status = urb->status;
|
||||||
|
|
||||||
spin_lock (&io->lock);
|
spin_lock (&io->lock);
|
||||||
|
|
||||||
|
@ -265,21 +267,21 @@ static void sg_complete (struct urb *urb)
|
||||||
*/
|
*/
|
||||||
if (io->status
|
if (io->status
|
||||||
&& (io->status != -ECONNRESET
|
&& (io->status != -ECONNRESET
|
||||||
|| urb->status != -ECONNRESET)
|
|| status != -ECONNRESET)
|
||||||
&& urb->actual_length) {
|
&& urb->actual_length) {
|
||||||
dev_err (io->dev->bus->controller,
|
dev_err (io->dev->bus->controller,
|
||||||
"dev %s ep%d%s scatterlist error %d/%d\n",
|
"dev %s ep%d%s scatterlist error %d/%d\n",
|
||||||
io->dev->devpath,
|
io->dev->devpath,
|
||||||
usb_pipeendpoint (urb->pipe),
|
usb_pipeendpoint (urb->pipe),
|
||||||
usb_pipein (urb->pipe) ? "in" : "out",
|
usb_pipein (urb->pipe) ? "in" : "out",
|
||||||
urb->status, io->status);
|
status, io->status);
|
||||||
// BUG ();
|
// BUG ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (io->status == 0 && urb->status && urb->status != -ECONNRESET) {
|
if (io->status == 0 && status && status != -ECONNRESET) {
|
||||||
int i, found, status;
|
int i, found, retval;
|
||||||
|
|
||||||
io->status = urb->status;
|
io->status = status;
|
||||||
|
|
||||||
/* the previous urbs, and this one, completed already.
|
/* the previous urbs, and this one, completed already.
|
||||||
* unlink pending urbs so they won't rx/tx bad data.
|
* unlink pending urbs so they won't rx/tx bad data.
|
||||||
|
@ -290,13 +292,13 @@ static void sg_complete (struct urb *urb)
|
||||||
if (!io->urbs [i] || !io->urbs [i]->dev)
|
if (!io->urbs [i] || !io->urbs [i]->dev)
|
||||||
continue;
|
continue;
|
||||||
if (found) {
|
if (found) {
|
||||||
status = usb_unlink_urb (io->urbs [i]);
|
retval = usb_unlink_urb (io->urbs [i]);
|
||||||
if (status != -EINPROGRESS
|
if (retval != -EINPROGRESS &&
|
||||||
&& status != -ENODEV
|
retval != -ENODEV &&
|
||||||
&& status != -EBUSY)
|
retval != -EBUSY)
|
||||||
dev_err (&io->dev->dev,
|
dev_err (&io->dev->dev,
|
||||||
"%s, unlink --> %d\n",
|
"%s, unlink --> %d\n",
|
||||||
__FUNCTION__, status);
|
__FUNCTION__, retval);
|
||||||
} else if (urb == io->urbs [i])
|
} else if (urb == io->urbs [i])
|
||||||
found = 1;
|
found = 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user