diff options
| author | Pete Zaitcev <zaitcev@redhat.com> | 2006-09-19 01:49:02 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-09-27 14:59:00 -0400 |
| commit | 38e2bfc94e95dd6005fdaf40dfec0157396741da (patch) | |
| tree | 1cc927239e3369ec7ce4920b1347dd8bc504bb2d | |
| parent | ec17cf1cfe0b557210b27313bd584e9b5187d4ca (diff) | |
USB: Dealias -110 code (more complete)
The purpose of this patch is to split off the case when a device does
not reply on the lower level (which is reported by HC hardware), and
a case when the device accepted the request, but does not reply at
upper level. This redefinition allows to diagnose issues easier,
without asking the user if the -110 happened "immediately".
The usbmon splits such cases already thanks to its timestamp, but
it's not always available.
I adjusted all drivers which I found affected (by searching for "urb").
Out of tree drivers may suffer a little bit, but I do not expect much
breakage. At worst they may print a few messages.
Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| -rw-r--r-- | Documentation/usb/error-codes.txt | 11 | ||||
| -rw-r--r-- | drivers/isdn/gigaset/bas-gigaset.c | 2 | ||||
| -rw-r--r-- | drivers/isdn/hisax/hfc_usb.h | 6 | ||||
| -rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-urb.c | 1 | ||||
| -rw-r--r-- | drivers/media/dvb/ttusb-dec/ttusb_dec.c | 2 | ||||
| -rw-r--r-- | drivers/media/video/ov511.c | 7 | ||||
| -rw-r--r-- | drivers/media/video/pwc/pwc-if.c | 2 | ||||
| -rw-r--r-- | drivers/media/video/w9968cf.c | 7 | ||||
| -rw-r--r-- | drivers/net/irda/irda-usb.c | 18 | ||||
| -rw-r--r-- | drivers/net/wireless/zd1201.c | 4 | ||||
| -rw-r--r-- | drivers/usb/host/isp116x.h | 2 | ||||
| -rw-r--r-- | drivers/usb/host/ohci.h | 2 | ||||
| -rw-r--r-- | drivers/usb/host/sl811-hcd.c | 2 | ||||
| -rw-r--r-- | drivers/usb/input/hid-core.c | 3 | ||||
| -rw-r--r-- | drivers/usb/input/itmtouch.c | 2 | ||||
| -rw-r--r-- | drivers/usb/input/mtouchusb.c | 2 | ||||
| -rw-r--r-- | drivers/usb/input/touchkitusb.c | 2 | ||||
| -rw-r--r-- | drivers/usb/input/usbtouchscreen.c | 2 | ||||
| -rw-r--r-- | drivers/usb/misc/auerswald.c | 4 | ||||
| -rw-r--r-- | drivers/usb/net/pegasus.c | 2 | ||||
| -rw-r--r-- | drivers/usb/net/rtl8150.c | 2 | ||||
| -rw-r--r-- | drivers/usb/net/usbnet.c | 12 | ||||
| -rw-r--r-- | drivers/usb/storage/transport.c | 5 | ||||
| -rw-r--r-- | sound/usb/usbmidi.c | 6 |
24 files changed, 48 insertions, 60 deletions
diff --git a/Documentation/usb/error-codes.txt b/Documentation/usb/error-codes.txt index 867f4c38f356..39c68f8c4e6c 100644 --- a/Documentation/usb/error-codes.txt +++ b/Documentation/usb/error-codes.txt | |||
| @@ -98,13 +98,13 @@ one or more packets could finish before an error stops further endpoint I/O. | |||
| 98 | error, a failure to respond (often caused by | 98 | error, a failure to respond (often caused by |
| 99 | device disconnect), or some other fault. | 99 | device disconnect), or some other fault. |
| 100 | 100 | ||
| 101 | -ETIMEDOUT (**) No response packet received within the prescribed | 101 | -ETIME (**) No response packet received within the prescribed |
| 102 | bus turn-around time. This error may instead be | 102 | bus turn-around time. This error may instead be |
| 103 | reported as -EPROTO or -EILSEQ. | 103 | reported as -EPROTO or -EILSEQ. |
| 104 | 104 | ||
| 105 | Note that the synchronous USB message functions | 105 | -ETIMEDOUT Synchronous USB message functions use this code |
| 106 | also use this code to indicate timeout expired | 106 | to indicate timeout expired before the transfer |
| 107 | before the transfer completed. | 107 | completed, and no other error was reported by HC. |
| 108 | 108 | ||
| 109 | -EPIPE (**) Endpoint stalled. For non-control endpoints, | 109 | -EPIPE (**) Endpoint stalled. For non-control endpoints, |
| 110 | reset this status with usb_clear_halt(). | 110 | reset this status with usb_clear_halt(). |
| @@ -163,6 +163,3 @@ usb_get_*/usb_set_*(): | |||
| 163 | usb_control_msg(): | 163 | usb_control_msg(): |
| 164 | usb_bulk_msg(): | 164 | usb_bulk_msg(): |
| 165 | -ETIMEDOUT Timeout expired before the transfer completed. | 165 | -ETIMEDOUT Timeout expired before the transfer completed. |
| 166 | In the future this code may change to -ETIME, | ||
| 167 | whose definition is a closer match to this sort | ||
| 168 | of error. | ||
diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c index 3845defd4901..5cfbe6a38010 100644 --- a/drivers/isdn/gigaset/bas-gigaset.c +++ b/drivers/isdn/gigaset/bas-gigaset.c | |||
| @@ -192,7 +192,7 @@ static char *get_usb_statmsg(int status) | |||
| 192 | return "bit stuffing error, timeout, or unknown USB error"; | 192 | return "bit stuffing error, timeout, or unknown USB error"; |
| 193 | case -EILSEQ: | 193 | case -EILSEQ: |
| 194 | return "CRC mismatch, timeout, or unknown USB error"; | 194 | return "CRC mismatch, timeout, or unknown USB error"; |
| 195 | case -ETIMEDOUT: | 195 | case -ETIME: |
| 196 | return "timed out"; | 196 | return "timed out"; |
| 197 | case -EPIPE: | 197 | case -EPIPE: |
| 198 | return "endpoint stalled"; | 198 | return "endpoint stalled"; |
diff --git a/drivers/isdn/hisax/hfc_usb.h b/drivers/isdn/hisax/hfc_usb.h index ec52c1a7c22a..6349367ed480 100644 --- a/drivers/isdn/hisax/hfc_usb.h +++ b/drivers/isdn/hisax/hfc_usb.h | |||
| @@ -137,11 +137,11 @@ static struct hfcusb_symbolic_list urb_errlist[] = { | |||
| 137 | {-ENXIO, "URB already queued"}, | 137 | {-ENXIO, "URB already queued"}, |
| 138 | {-EFBIG, "Too much ISO frames requested"}, | 138 | {-EFBIG, "Too much ISO frames requested"}, |
| 139 | {-ENOSR, "Buffer error (overrun)"}, | 139 | {-ENOSR, "Buffer error (overrun)"}, |
| 140 | {-EPIPE, "Specified endpoint is stalled (device not responding)"}, | 140 | {-EPIPE, "Specified endpoint is stalled"}, |
| 141 | {-EOVERFLOW, "Babble (bad cable?)"}, | 141 | {-EOVERFLOW, "Babble (bad cable?)"}, |
| 142 | {-EPROTO, "Bit-stuff error (bad cable?)"}, | 142 | {-EPROTO, "Bit-stuff error (bad cable?)"}, |
| 143 | {-EILSEQ, "CRC/Timeout"}, | 143 | {-EILSEQ, "CRC or missing token"}, |
| 144 | {-ETIMEDOUT, "NAK (device does not respond)"}, | 144 | {-ETIME, "Device did not respond"}, |
| 145 | {-ESHUTDOWN, "Device unplugged"}, | 145 | {-ESHUTDOWN, "Device unplugged"}, |
| 146 | {-1, NULL} | 146 | {-1, NULL} |
| 147 | }; | 147 | }; |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c index 9002f35aa952..88b283731bb8 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c | |||
| @@ -80,7 +80,6 @@ static void dvb_usb_urb_complete(struct urb *urb, struct pt_regs *ptregs) | |||
| 80 | 80 | ||
| 81 | switch (urb->status) { | 81 | switch (urb->status) { |
| 82 | case 0: /* success */ | 82 | case 0: /* success */ |
| 83 | case -ETIMEDOUT: /* NAK */ | ||
| 84 | break; | 83 | break; |
| 85 | case -ECONNRESET: /* kill */ | 84 | case -ECONNRESET: /* kill */ |
| 86 | case -ENOENT: | 85 | case -ENOENT: |
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c index 6c1cb770bcf5..c9d663549dff 100644 --- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c +++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c | |||
| @@ -215,7 +215,7 @@ static void ttusb_dec_handle_irq( struct urb *urb, struct pt_regs *regs) | |||
| 215 | case -ECONNRESET: | 215 | case -ECONNRESET: |
| 216 | case -ENOENT: | 216 | case -ENOENT: |
| 217 | case -ESHUTDOWN: | 217 | case -ESHUTDOWN: |
| 218 | case -ETIMEDOUT: | 218 | case -ETIME: |
| 219 | /* this urb is dead, cleanup */ | 219 | /* this urb is dead, cleanup */ |
| 220 | dprintk("%s:urb shutting down with status: %d\n", | 220 | dprintk("%s:urb shutting down with status: %d\n", |
| 221 | __FUNCTION__, urb->status); | 221 | __FUNCTION__, urb->status); |
diff --git a/drivers/media/video/ov511.c b/drivers/media/video/ov511.c index 1b07a61c2ebb..5d8cd283fcd8 100644 --- a/drivers/media/video/ov511.c +++ b/drivers/media/video/ov511.c | |||
| @@ -301,10 +301,11 @@ static struct symbolic_list senlist[] = { | |||
| 301 | static struct symbolic_list urb_errlist[] = { | 301 | static struct symbolic_list urb_errlist[] = { |
| 302 | { -ENOSR, "Buffer error (overrun)" }, | 302 | { -ENOSR, "Buffer error (overrun)" }, |
| 303 | { -EPIPE, "Stalled (device not responding)" }, | 303 | { -EPIPE, "Stalled (device not responding)" }, |
| 304 | { -EOVERFLOW, "Babble (bad cable?)" }, | 304 | { -EOVERFLOW, "Babble (device sends too much data)" }, |
| 305 | { -EPROTO, "Bit-stuff error (bad cable?)" }, | 305 | { -EPROTO, "Bit-stuff error (bad cable?)" }, |
| 306 | { -EILSEQ, "CRC/Timeout" }, | 306 | { -EILSEQ, "CRC/Timeout (bad cable?)" }, |
| 307 | { -ETIMEDOUT, "NAK (device does not respond)" }, | 307 | { -ETIME, "Device does not respond to token" }, |
| 308 | { -ETIMEDOUT, "Device does not respond to command" }, | ||
| 308 | { -1, NULL } | 309 | { -1, NULL } |
| 309 | }; | 310 | }; |
| 310 | 311 | ||
diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c index d4703944df9c..53c4b5790d5c 100644 --- a/drivers/media/video/pwc/pwc-if.c +++ b/drivers/media/video/pwc/pwc-if.c | |||
| @@ -711,7 +711,7 @@ static void pwc_isoc_handler(struct urb *urb, struct pt_regs *regs) | |||
| 711 | case -EOVERFLOW: errmsg = "Babble (bad cable?)"; break; | 711 | case -EOVERFLOW: errmsg = "Babble (bad cable?)"; break; |
| 712 | case -EPROTO: errmsg = "Bit-stuff error (bad cable?)"; break; | 712 | case -EPROTO: errmsg = "Bit-stuff error (bad cable?)"; break; |
| 713 | case -EILSEQ: errmsg = "CRC/Timeout (could be anything)"; break; | 713 | case -EILSEQ: errmsg = "CRC/Timeout (could be anything)"; break; |
| 714 | case -ETIMEDOUT: errmsg = "NAK (device does not respond)"; break; | 714 | case -ETIME: errmsg = "Device does not respond"; break; |
| 715 | } | 715 | } |
| 716 | PWC_DEBUG_FLOW("pwc_isoc_handler() called with status %d [%s].\n", urb->status, errmsg); | 716 | PWC_DEBUG_FLOW("pwc_isoc_handler() called with status %d [%s].\n", urb->status, errmsg); |
| 717 | /* Give up after a number of contiguous errors on the USB bus. | 717 | /* Give up after a number of contiguous errors on the USB bus. |
diff --git a/drivers/media/video/w9968cf.c b/drivers/media/video/w9968cf.c index 20f211b55ad4..2912326a5aef 100644 --- a/drivers/media/video/w9968cf.c +++ b/drivers/media/video/w9968cf.c | |||
| @@ -586,15 +586,14 @@ static struct w9968cf_symbolic_list urb_errlist[] = { | |||
| 586 | { -EFBIG, "Too much ISO frames requested" }, | 586 | { -EFBIG, "Too much ISO frames requested" }, |
| 587 | { -ENOSR, "Buffer error (overrun)" }, | 587 | { -ENOSR, "Buffer error (overrun)" }, |
| 588 | { -EPIPE, "Specified endpoint is stalled (device not responding)"}, | 588 | { -EPIPE, "Specified endpoint is stalled (device not responding)"}, |
| 589 | { -EOVERFLOW, "Babble (bad cable?)" }, | 589 | { -EOVERFLOW, "Babble (too much data)" }, |
| 590 | { -EPROTO, "Bit-stuff error (bad cable?)" }, | 590 | { -EPROTO, "Bit-stuff error (bad cable?)" }, |
| 591 | { -EILSEQ, "CRC/Timeout" }, | 591 | { -EILSEQ, "CRC/Timeout" }, |
| 592 | { -ETIMEDOUT, "NAK (device does not respond)" }, | 592 | { -ETIME, "Device does not respond to token" }, |
| 593 | { -ETIMEDOUT, "Device does not respond to command" }, | ||
| 593 | { -1, NULL } | 594 | { -1, NULL } |
| 594 | }; | 595 | }; |
| 595 | 596 | ||
| 596 | |||
| 597 | |||
| 598 | /**************************************************************************** | 597 | /**************************************************************************** |
| 599 | * Memory management functions * | 598 | * Memory management functions * |
| 600 | ****************************************************************************/ | 599 | ****************************************************************************/ |
diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c index 2a0d538b387f..383cef1f5999 100644 --- a/drivers/net/irda/irda-usb.c +++ b/drivers/net/irda/irda-usb.c | |||
| @@ -671,10 +671,8 @@ static void irda_usb_net_timeout(struct net_device *netdev) | |||
| 671 | * Jean II */ | 671 | * Jean II */ |
| 672 | done = 1; | 672 | done = 1; |
| 673 | break; | 673 | break; |
| 674 | case -ECONNABORTED: /* -103 */ | 674 | case -ECONNRESET: |
| 675 | case -ECONNRESET: /* -104 */ | 675 | case -ENOENT: /* urb unlinked by us */ |
| 676 | case -ETIMEDOUT: /* -110 */ | ||
| 677 | case -ENOENT: /* -2 (urb unlinked by us) */ | ||
| 678 | default: /* ??? - Play safe */ | 676 | default: /* ??? - Play safe */ |
| 679 | urb->status = 0; | 677 | urb->status = 0; |
| 680 | netif_wake_queue(self->netdev); | 678 | netif_wake_queue(self->netdev); |
| @@ -712,10 +710,8 @@ static void irda_usb_net_timeout(struct net_device *netdev) | |||
| 712 | * Jean II */ | 710 | * Jean II */ |
| 713 | done = 1; | 711 | done = 1; |
| 714 | break; | 712 | break; |
| 715 | case -ECONNABORTED: /* -103 */ | 713 | case -ECONNRESET: |
| 716 | case -ECONNRESET: /* -104 */ | 714 | case -ENOENT: /* urb unlinked by us */ |
| 717 | case -ETIMEDOUT: /* -110 */ | ||
| 718 | case -ENOENT: /* -2 (urb unlinked by us) */ | ||
| 719 | default: /* ??? - Play safe */ | 715 | default: /* ??? - Play safe */ |
| 720 | if(skb != NULL) { | 716 | if(skb != NULL) { |
| 721 | dev_kfree_skb_any(skb); | 717 | dev_kfree_skb_any(skb); |
| @@ -845,14 +841,14 @@ static void irda_usb_receive(struct urb *urb, struct pt_regs *regs) | |||
| 845 | self->stats.rx_crc_errors++; | 841 | self->stats.rx_crc_errors++; |
| 846 | /* Also precursor to a hot-unplug on UHCI. */ | 842 | /* Also precursor to a hot-unplug on UHCI. */ |
| 847 | /* Fallthrough... */ | 843 | /* Fallthrough... */ |
| 848 | case -ECONNRESET: /* -104 */ | 844 | case -ECONNRESET: |
| 849 | /* Random error, if I remember correctly */ | 845 | /* Random error, if I remember correctly */ |
| 850 | /* uhci_cleanup_unlink() is going to kill the Rx | 846 | /* uhci_cleanup_unlink() is going to kill the Rx |
| 851 | * URB just after we return. No problem, at this | 847 | * URB just after we return. No problem, at this |
| 852 | * point the URB will be idle ;-) - Jean II */ | 848 | * point the URB will be idle ;-) - Jean II */ |
| 853 | case -ESHUTDOWN: /* -108 */ | 849 | case -ESHUTDOWN: |
| 854 | /* That's usually a hot-unplug. Submit will fail... */ | 850 | /* That's usually a hot-unplug. Submit will fail... */ |
| 855 | case -ETIMEDOUT: /* -110 */ | 851 | case -ETIME: |
| 856 | /* Usually precursor to a hot-unplug on OHCI. */ | 852 | /* Usually precursor to a hot-unplug on OHCI. */ |
| 857 | default: | 853 | default: |
| 858 | self->stats.rx_errors++; | 854 | self->stats.rx_errors++; |
diff --git a/drivers/net/wireless/zd1201.c b/drivers/net/wireless/zd1201.c index c52e9bcf8d02..f50ec10675d1 100644 --- a/drivers/net/wireless/zd1201.c +++ b/drivers/net/wireless/zd1201.c | |||
| @@ -119,7 +119,7 @@ static void zd1201_usbfree(struct urb *urb, struct pt_regs *regs) | |||
| 119 | switch(urb->status) { | 119 | switch(urb->status) { |
| 120 | case -EILSEQ: | 120 | case -EILSEQ: |
| 121 | case -ENODEV: | 121 | case -ENODEV: |
| 122 | case -ETIMEDOUT: | 122 | case -ETIME: |
| 123 | case -ENOENT: | 123 | case -ENOENT: |
| 124 | case -EPIPE: | 124 | case -EPIPE: |
| 125 | case -EOVERFLOW: | 125 | case -EOVERFLOW: |
| @@ -201,7 +201,7 @@ static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs) | |||
| 201 | switch(urb->status) { | 201 | switch(urb->status) { |
| 202 | case -EILSEQ: | 202 | case -EILSEQ: |
| 203 | case -ENODEV: | 203 | case -ENODEV: |
| 204 | case -ETIMEDOUT: | 204 | case -ETIME: |
| 205 | case -ENOENT: | 205 | case -ENOENT: |
| 206 | case -EPIPE: | 206 | case -EPIPE: |
| 207 | case -EOVERFLOW: | 207 | case -EOVERFLOW: |
diff --git a/drivers/usb/host/isp116x.h b/drivers/usb/host/isp116x.h index a1b7c3813d3a..b91e2edd9c5c 100644 --- a/drivers/usb/host/isp116x.h +++ b/drivers/usb/host/isp116x.h | |||
| @@ -233,7 +233,7 @@ static const int cc_to_error[16] = { | |||
| 233 | /* Bit Stuff */ -EPROTO, | 233 | /* Bit Stuff */ -EPROTO, |
| 234 | /* Data Togg */ -EILSEQ, | 234 | /* Data Togg */ -EILSEQ, |
| 235 | /* Stall */ -EPIPE, | 235 | /* Stall */ -EPIPE, |
| 236 | /* DevNotResp */ -ETIMEDOUT, | 236 | /* DevNotResp */ -ETIME, |
| 237 | /* PIDCheck */ -EPROTO, | 237 | /* PIDCheck */ -EPROTO, |
| 238 | /* UnExpPID */ -EPROTO, | 238 | /* UnExpPID */ -EPROTO, |
| 239 | /* DataOver */ -EOVERFLOW, | 239 | /* DataOver */ -EOVERFLOW, |
diff --git a/drivers/usb/host/ohci.h b/drivers/usb/host/ohci.h index 650d1bf21c1d..93fdc3c35341 100644 --- a/drivers/usb/host/ohci.h +++ b/drivers/usb/host/ohci.h | |||
| @@ -159,7 +159,7 @@ static const int cc_to_error [16] = { | |||
| 159 | /* Bit Stuff */ -EPROTO, | 159 | /* Bit Stuff */ -EPROTO, |
| 160 | /* Data Togg */ -EILSEQ, | 160 | /* Data Togg */ -EILSEQ, |
| 161 | /* Stall */ -EPIPE, | 161 | /* Stall */ -EPIPE, |
| 162 | /* DevNotResp */ -ETIMEDOUT, | 162 | /* DevNotResp */ -ETIME, |
| 163 | /* PIDCheck */ -EPROTO, | 163 | /* PIDCheck */ -EPROTO, |
| 164 | /* UnExpPID */ -EPROTO, | 164 | /* UnExpPID */ -EPROTO, |
| 165 | /* DataOver */ -EOVERFLOW, | 165 | /* DataOver */ -EOVERFLOW, |
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c index 8c17da37600b..3a586aab3939 100644 --- a/drivers/usb/host/sl811-hcd.c +++ b/drivers/usb/host/sl811-hcd.c | |||
| @@ -597,7 +597,7 @@ done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank, struct pt_regs *regs) | |||
| 597 | /* error? retry, until "3 strikes" */ | 597 | /* error? retry, until "3 strikes" */ |
| 598 | } else if (++ep->error_count >= 3) { | 598 | } else if (++ep->error_count >= 3) { |
| 599 | if (status & SL11H_STATMASK_TMOUT) | 599 | if (status & SL11H_STATMASK_TMOUT) |
| 600 | urbstat = -ETIMEDOUT; | 600 | urbstat = -ETIME; |
| 601 | else if (status & SL11H_STATMASK_OVF) | 601 | else if (status & SL11H_STATMASK_OVF) |
| 602 | urbstat = -EOVERFLOW; | 602 | urbstat = -EOVERFLOW; |
| 603 | else | 603 | else |
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c index fc5b662ea177..2a3e9e9b4b3d 100644 --- a/drivers/usb/input/hid-core.c +++ b/drivers/usb/input/hid-core.c | |||
| @@ -1023,7 +1023,8 @@ static void hid_irq_in(struct urb *urb, struct pt_regs *regs) | |||
| 1023 | return; | 1023 | return; |
| 1024 | case -EILSEQ: /* protocol error or unplug */ | 1024 | case -EILSEQ: /* protocol error or unplug */ |
| 1025 | case -EPROTO: /* protocol error or unplug */ | 1025 | case -EPROTO: /* protocol error or unplug */ |
| 1026 | case -ETIMEDOUT: /* NAK */ | 1026 | case -ETIME: /* protocol error or unplug */ |
| 1027 | case -ETIMEDOUT: /* Should never happen, but... */ | ||
| 1027 | clear_bit(HID_IN_RUNNING, &hid->iofl); | 1028 | clear_bit(HID_IN_RUNNING, &hid->iofl); |
| 1028 | hid_io_error(hid); | 1029 | hid_io_error(hid); |
| 1029 | return; | 1030 | return; |
diff --git a/drivers/usb/input/itmtouch.c b/drivers/usb/input/itmtouch.c index 86acb5f1907a..61966d719ca3 100644 --- a/drivers/usb/input/itmtouch.c +++ b/drivers/usb/input/itmtouch.c | |||
| @@ -87,7 +87,7 @@ static void itmtouch_irq(struct urb *urb, struct pt_regs *regs) | |||
| 87 | case 0: | 87 | case 0: |
| 88 | /* success */ | 88 | /* success */ |
| 89 | break; | 89 | break; |
| 90 | case -ETIMEDOUT: | 90 | case -ETIME: |
| 91 | /* this urb is timing out */ | 91 | /* this urb is timing out */ |
| 92 | dbg("%s - urb timed out - was the device unplugged?", | 92 | dbg("%s - urb timed out - was the device unplugged?", |
| 93 | __FUNCTION__); | 93 | __FUNCTION__); |
diff --git a/drivers/usb/input/mtouchusb.c b/drivers/usb/input/mtouchusb.c index a9ccda8810e0..5dce951f2751 100644 --- a/drivers/usb/input/mtouchusb.c +++ b/drivers/usb/input/mtouchusb.c | |||
| @@ -107,7 +107,7 @@ static void mtouchusb_irq(struct urb *urb, struct pt_regs *regs) | |||
| 107 | case 0: | 107 | case 0: |
| 108 | /* success */ | 108 | /* success */ |
| 109 | break; | 109 | break; |
| 110 | case -ETIMEDOUT: | 110 | case -ETIME: |
| 111 | /* this urb is timing out */ | 111 | /* this urb is timing out */ |
| 112 | dbg("%s - urb timed out - was the device unplugged?", | 112 | dbg("%s - urb timed out - was the device unplugged?", |
| 113 | __FUNCTION__); | 113 | __FUNCTION__); |
diff --git a/drivers/usb/input/touchkitusb.c b/drivers/usb/input/touchkitusb.c index 0149043ffb97..30b9f820e7a8 100644 --- a/drivers/usb/input/touchkitusb.c +++ b/drivers/usb/input/touchkitusb.c | |||
| @@ -201,7 +201,7 @@ static void touchkit_irq(struct urb *urb, struct pt_regs *regs) | |||
| 201 | case 0: | 201 | case 0: |
| 202 | /* success */ | 202 | /* success */ |
| 203 | break; | 203 | break; |
| 204 | case -ETIMEDOUT: | 204 | case -ETIME: |
| 205 | /* this urb is timing out */ | 205 | /* this urb is timing out */ |
| 206 | dbg("%s - urb timed out - was the device unplugged?", | 206 | dbg("%s - urb timed out - was the device unplugged?", |
| 207 | __FUNCTION__); | 207 | __FUNCTION__); |
diff --git a/drivers/usb/input/usbtouchscreen.c b/drivers/usb/input/usbtouchscreen.c index a1be7840ea02..4640d1000d83 100644 --- a/drivers/usb/input/usbtouchscreen.c +++ b/drivers/usb/input/usbtouchscreen.c | |||
| @@ -508,7 +508,7 @@ static void usbtouch_irq(struct urb *urb, struct pt_regs *regs) | |||
| 508 | case 0: | 508 | case 0: |
| 509 | /* success */ | 509 | /* success */ |
| 510 | break; | 510 | break; |
| 511 | case -ETIMEDOUT: | 511 | case -ETIME: |
| 512 | /* this urb is timing out */ | 512 | /* this urb is timing out */ |
| 513 | dbg("%s - urb timed out - was the device unplugged?", | 513 | dbg("%s - urb timed out - was the device unplugged?", |
| 514 | __FUNCTION__); | 514 | __FUNCTION__); |
diff --git a/drivers/usb/misc/auerswald.c b/drivers/usb/misc/auerswald.c index 4a329d8488b7..4fd2110b3411 100644 --- a/drivers/usb/misc/auerswald.c +++ b/drivers/usb/misc/auerswald.c | |||
| @@ -806,7 +806,7 @@ static void auerbuf_releasebuf( pauerbuf_t bp) | |||
| 806 | 0 Initial, OK | 806 | 0 Initial, OK |
| 807 | -EINPROGRESS during submission until end | 807 | -EINPROGRESS during submission until end |
| 808 | -ENOENT if urb is unlinked | 808 | -ENOENT if urb is unlinked |
| 809 | -ETIMEDOUT Transfer timed out, NAK | 809 | -ETIME Device did not respond |
| 810 | -ENOMEM Memory Overflow | 810 | -ENOMEM Memory Overflow |
| 811 | -ENODEV Specified USB-device or bus doesn't exist | 811 | -ENODEV Specified USB-device or bus doesn't exist |
| 812 | -ENXIO URB already queued | 812 | -ENXIO URB already queued |
| @@ -832,7 +832,7 @@ static int auerswald_status_retry (int status) | |||
| 832 | { | 832 | { |
| 833 | switch (status) { | 833 | switch (status) { |
| 834 | case 0: | 834 | case 0: |
| 835 | case -ETIMEDOUT: | 835 | case -ETIME: |
| 836 | case -EOVERFLOW: | 836 | case -EOVERFLOW: |
| 837 | case -EAGAIN: | 837 | case -EAGAIN: |
| 838 | case -EPIPE: | 838 | case -EPIPE: |
diff --git a/drivers/usb/net/pegasus.c b/drivers/usb/net/pegasus.c index ab21f960d255..b8e25af13f02 100644 --- a/drivers/usb/net/pegasus.c +++ b/drivers/usb/net/pegasus.c | |||
| @@ -619,7 +619,7 @@ static void read_bulk_callback(struct urb *urb, struct pt_regs *regs) | |||
| 619 | switch (urb->status) { | 619 | switch (urb->status) { |
| 620 | case 0: | 620 | case 0: |
| 621 | break; | 621 | break; |
| 622 | case -ETIMEDOUT: | 622 | case -ETIME: |
| 623 | if (netif_msg_rx_err(pegasus)) | 623 | if (netif_msg_rx_err(pegasus)) |
| 624 | pr_debug("%s: reset MAC\n", net->name); | 624 | pr_debug("%s: reset MAC\n", net->name); |
| 625 | pegasus->flags &= ~PEGASUS_RX_BUSY; | 625 | pegasus->flags &= ~PEGASUS_RX_BUSY; |
diff --git a/drivers/usb/net/rtl8150.c b/drivers/usb/net/rtl8150.c index a72685b96061..2364c2099387 100644 --- a/drivers/usb/net/rtl8150.c +++ b/drivers/usb/net/rtl8150.c | |||
| @@ -438,7 +438,7 @@ static void read_bulk_callback(struct urb *urb, struct pt_regs *regs) | |||
| 438 | break; | 438 | break; |
| 439 | case -ENOENT: | 439 | case -ENOENT: |
| 440 | return; /* the urb is in unlink state */ | 440 | return; /* the urb is in unlink state */ |
| 441 | case -ETIMEDOUT: | 441 | case -ETIME: |
| 442 | warn("may be reset is needed?.."); | 442 | warn("may be reset is needed?.."); |
| 443 | goto goon; | 443 | goto goon; |
| 444 | default: | 444 | default: |
diff --git a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c index 8e8e74d40530..98a522f1e264 100644 --- a/drivers/usb/net/usbnet.c +++ b/drivers/usb/net/usbnet.c | |||
| @@ -425,9 +425,9 @@ static void rx_complete (struct urb *urb, struct pt_regs *regs) | |||
| 425 | // we get controller i/o faults during khubd disconnect() delays. | 425 | // we get controller i/o faults during khubd disconnect() delays. |
| 426 | // throttle down resubmits, to avoid log floods; just temporarily, | 426 | // throttle down resubmits, to avoid log floods; just temporarily, |
| 427 | // so we still recover when the fault isn't a khubd delay. | 427 | // so we still recover when the fault isn't a khubd delay. |
| 428 | case -EPROTO: // ehci | 428 | case -EPROTO: |
| 429 | case -ETIMEDOUT: // ohci | 429 | case -ETIME: |
| 430 | case -EILSEQ: // uhci | 430 | case -EILSEQ: |
| 431 | dev->stats.rx_errors++; | 431 | dev->stats.rx_errors++; |
| 432 | if (!timer_pending (&dev->delay)) { | 432 | if (!timer_pending (&dev->delay)) { |
| 433 | mod_timer (&dev->delay, jiffies + THROTTLE_JIFFIES); | 433 | mod_timer (&dev->delay, jiffies + THROTTLE_JIFFIES); |
| @@ -821,9 +821,9 @@ static void tx_complete (struct urb *urb, struct pt_regs *regs) | |||
| 821 | 821 | ||
| 822 | // like rx, tx gets controller i/o faults during khubd delays | 822 | // like rx, tx gets controller i/o faults during khubd delays |
| 823 | // and so it uses the same throttling mechanism. | 823 | // and so it uses the same throttling mechanism. |
| 824 | case -EPROTO: // ehci | 824 | case -EPROTO: |
| 825 | case -ETIMEDOUT: // ohci | 825 | case -ETIME: |
| 826 | case -EILSEQ: // uhci | 826 | case -EILSEQ: |
| 827 | if (!timer_pending (&dev->delay)) { | 827 | if (!timer_pending (&dev->delay)) { |
| 828 | mod_timer (&dev->delay, | 828 | mod_timer (&dev->delay, |
| 829 | jiffies + THROTTLE_JIFFIES); | 829 | jiffies + THROTTLE_JIFFIES); |
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c index d6acc92a4ae3..f23514c4e649 100644 --- a/drivers/usb/storage/transport.c +++ b/drivers/usb/storage/transport.c | |||
| @@ -294,11 +294,6 @@ static int interpret_urb_result(struct us_data *us, unsigned int pipe, | |||
| 294 | return USB_STOR_XFER_ERROR; | 294 | return USB_STOR_XFER_ERROR; |
| 295 | return USB_STOR_XFER_STALLED; | 295 | return USB_STOR_XFER_STALLED; |
| 296 | 296 | ||
| 297 | /* timeout or excessively long NAK */ | ||
| 298 | case -ETIMEDOUT: | ||
| 299 | US_DEBUGP("-- timeout or NAK\n"); | ||
| 300 | return USB_STOR_XFER_ERROR; | ||
| 301 | |||
| 302 | /* babble - the device tried to send more than we wanted to read */ | 297 | /* babble - the device tried to send more than we wanted to read */ |
| 303 | case -EOVERFLOW: | 298 | case -EOVERFLOW: |
| 304 | US_DEBUGP("-- babble\n"); | 299 | US_DEBUGP("-- babble\n"); |
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c index 5105b6b05748..abe29dadd979 100644 --- a/sound/usb/usbmidi.c +++ b/sound/usb/usbmidi.c | |||
| @@ -181,9 +181,9 @@ static int snd_usbmidi_urb_error(int status) | |||
| 181 | case -ENODEV: | 181 | case -ENODEV: |
| 182 | return -ENODEV; | 182 | return -ENODEV; |
| 183 | /* errors that might occur during unplugging */ | 183 | /* errors that might occur during unplugging */ |
| 184 | case -EPROTO: /* EHCI */ | 184 | case -EPROTO: |
| 185 | case -ETIMEDOUT: /* OHCI */ | 185 | case -ETIME: |
| 186 | case -EILSEQ: /* UHCI */ | 186 | case -EILSEQ: |
| 187 | return -EIO; | 187 | return -EIO; |
| 188 | default: | 188 | default: |
| 189 | snd_printk(KERN_ERR "urb status %d\n", status); | 189 | snd_printk(KERN_ERR "urb status %d\n", status); |
