ChangeSet 1.1455.1.34, 2003/07/16 10:11:48-07:00, oliver@neukum.org [PATCH] USB: fix irq urb in hpusbscsi this fixes the completion handler for the interrupt urb in hpusbscsi. drivers/usb/image/hpusbscsi.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff -Nru a/drivers/usb/image/hpusbscsi.c b/drivers/usb/image/hpusbscsi.c --- a/drivers/usb/image/hpusbscsi.c Thu Jul 17 17:03:46 2003 +++ b/drivers/usb/image/hpusbscsi.c Thu Jul 17 17:03:46 2003 @@ -306,7 +306,10 @@ if(unlikely(u->status < 0)) { if (likely(hpusbscsi->state != HP_STATE_FREE)) handle_usb_error(hpusbscsi); - return; + if (u->status == -ECONNRESET || u->status == -ENOENT || u->status == -ESHUTDOWN) + return; + else + goto resub; } scsi_state = hpusbscsi->scsi_state_byte; @@ -348,6 +351,8 @@ TRACE_STATE; break; } +resub: + usb_submit_urb(u, GFP_ATOMIC); } static void simple_command_callback(struct urb *u, struct pt_regs *regs) @@ -427,7 +432,7 @@ hpusbscsi->state = HP_STATE_WAIT; } else { issue_request_sense(hpusbscsi); - } + } } } else { if (likely(hpusbscsi->scallback != NULL))