Bug 5579
Summary: | Microtek driver: error -22 submitting URB, kernel-2.6.14. | ||
---|---|---|---|
Product: | Drivers | Reporter: | David (decibelshelp) |
Component: | USB | Assignee: | Greg Kroah-Hartman (greg) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | kernel |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.14 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Bug Depends on: | |||
Bug Blocks: | 5089 | ||
Attachments: |
2.6.14 kernel system Dmesg output.
2.6.14 kernel system /var/log/debug output after plugging scanner in. 2.6.14 kernel system /var/log/hotplug/evens output after plugging scanner in. 2.6.14 kernel system /var/log/kern.log output after plugging scanner in. 2.6.13 kernel system log outputs from the Same system that work. 2.6.14 kernel system hardware info. 2.6.14 kernel system software info. 2.6.14 kernel system with more debug enabled in drivers. Patch for Microtek driver: error -22 submitting URB |
Description
David
2005-11-09 16:25:49 UTC
Created attachment 6516 [details]
2.6.14 kernel system Dmesg output.
Created attachment 6517 [details]
2.6.14 kernel system /var/log/debug output after plugging scanner in.
Created attachment 6518 [details]
2.6.14 kernel system /var/log/hotplug/evens output after plugging scanner in.
Created attachment 6519 [details]
2.6.14 kernel system /var/log/kern.log output after plugging scanner in.
Created attachment 6520 [details]
2.6.13 kernel system log outputs from the Same system that work.
Created attachment 6521 [details]
2.6.14 kernel system hardware info.
This file contains: lspci -vvv, lsusb -v, /proc/ioports, /proc/iomem,
/proc/modules.
Note: this is same computer used with the 2.6.14 kernel having problems with.
Only thing basically different is the kernel.
Created attachment 6522 [details]
2.6.14 kernel system software info.
Output of ver_linux script.
>On Friday 11 November 2005 14:33, Oliver Neukum wrote:
>
> I can sort of replicate it, but I get a different error.
> Please recompile the driver with MTS_DO_DEBUG defined and try again.
>
> Regards
> Oliver
>
Enabled MTS_DO_DEBUG in microtek.c . Quite a lot of info:
(Kern.log after plugging in scanner)
Nov 11 15:03:18 decibels hub 1-0:1.0: state 5 ports 8 chg 0000 evt 0004
Nov 11 15:03:18 decibels ehci_hcd 0000:00:02.2: GetStatus port 2 status 001002 POWER sig=se0 CSC
Nov 11 15:03:18 decibels hub 1-0:1.0: port 2, status 0100, change 0001, 12 Mb/s
Nov 11 15:03:18 decibels hub 1-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x100
Nov 11 15:03:18 decibels hub 1-0:1.0: state 5 ports 8 chg 0000 evt 0004
Nov 11 15:03:18 decibels ehci_hcd 0000:00:02.2: GetStatus port 2 status 001803 POWER sig=j CSC CONNECT
Nov 11 15:03:18 decibels hub 1-0:1.0: port 2, status 0501, change 0001, 480 Mb/s
Nov 11 15:03:18 decibels hub 1-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x501
Nov 11 15:03:18 decibels ehci_hcd 0000:00:02.2: port 2 full speed --> companion
Nov 11 15:03:18 decibels ehci_hcd 0000:00:02.2: GetStatus port 2 status 003001 POWER OWNER sig=se0 CONNECT
Nov 11 15:03:19 decibels hub 2-0:1.0: state 5 ports 4 chg 0000 evt 0004
Nov 11 15:03:19 decibels ohci_hcd 0000:00:02.0: GetStatus roothub.portstatus [1] = 0x00010101 CSC PPS CCS
Nov 11 15:03:19 decibels hub 2-0:1.0: port 2, status 0101, change 0001, 12 Mb/s
Nov 11 15:03:19 decibels hub 2-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
Nov 11 15:03:19 decibels ohci_hcd 0000:00:02.0: GetStatus roothub.portstatus [1] = 0x00100103 PRSC PPS PES CCS
Nov 11 15:03:19 decibels usb 2-2: new full speed USB device using ohci_hcd and address 3
Nov 11 15:03:19 decibels ohci_hcd 0000:00:02.0: GetStatus roothub.portstatus [1] = 0x00100103 PRSC PPS PES CCS
Nov 11 15:03:19 decibels usb 2-2: new device strings: Mfr=0, Product=0, SerialNumber=0
Nov 11 15:03:19 decibels DEV: registering device: ID = '2-2'
Nov 11 15:03:19 decibels usb 2-2: hotplug
Nov 11 15:03:19 decibels PM: Adding info for usb:2-2
Nov 11 15:03:19 decibels bus usb: add device 2-2
Nov 11 15:03:19 decibels bound device '2-2' to driver 'usb'
Nov 11 15:03:19 decibels usb 2-2: adding 2-2:1.0 (config #1, interface 0)
Nov 11 15:03:19 decibels DEV: registering device: ID = '2-2:1.0'
Nov 11 15:03:19 decibels usb 2-2:1.0: hotplug
Nov 11 15:03:19 decibels PM: Adding info for usb:2-2:1.0
Nov 11 15:03:19 decibels bus usb: add device 2-2:1.0
Nov 11 15:03:19 decibels usb: Matched Device 2-2:1.0 with Driver microtekX6
Nov 11 15:03:19 decibels microtekX6 2-2:1.0: usb_probe_interface
Nov 11 15:03:19 decibels microtekX6 2-2:1.0: usb_probe_interface - got id
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:714 (mts_usb_probe)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): usb-device descriptor at 3c4e1000
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): product id = 0xb6, vendor id = 0x5da
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:721 (mts_usb_probe)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:725 (mts_usb_probe)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): found model Scanmaker V6UPL
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): model Scanmaker V6UPL is not known to be fully supported, reports welcome!
Nov 11 15:03:19 decibels scsi0 : microtekX6
Nov 11 15:03:19 decibels DEV: registering device: ID = 'host0'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:host0
Nov 11 15:03:19 decibels CLASS: registering class device: ID = 'host0'
Nov 11 15:03:19 decibels class_hotplug - name = host0
Nov 11 15:03:19 decibels DEV: registering device: ID = 'target0:0:0'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:target0:0:0
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 9d 00 96 98
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0101
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:534 (mts_build_transfer_context)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Using scatter/gather
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfering from desc->ep_response == 2
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:455 (mts_command_done)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0x0 data-length = 0x24 sent = 0x6
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0301
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:376 (mts_int_submit_urb)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0x0 data-length = 0x24 sent = 0x6
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0301
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:496 (mts_do_sg)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0x0 data-length = 0x24 sent = 0x24
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Processing fragment 0 of 1
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:376 (mts_int_submit_urb)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0x0 data-length = 0x24 sent = 0x24
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels ohci_hcd 0000:00:02.0: urb ffff81002e0dd200 path 2 ep2in 83160000 cc 8 --> status -75
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:496 (mts_do_sg)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0xffffffb5 data-length = 0x24 sent = 0x0
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Processing fragment 1 of 1
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:402 (mts_transfer_cleanup)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0xffffffb5 data-length = 0x24 sent = 0x0
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:376 (mts_int_submit_urb)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0xffffffb5 data-length = 0x24 sent = 0x0
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 9d 00 96 98
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:534 (mts_build_transfer_context)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Using scatter/gather
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfering from desc->ep_response == 2
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): error -22 submitting URB
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 9d 00 96 98
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:534 (mts_build_transfer_context)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Using scatter/gather
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfering from desc->ep_response == 2
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): error -22 submitting URB
Nov 11 15:03:19 decibels PM: Removing info for No Bus:target0:0:0
Nov 11 15:03:19 decibels DEV: registering device: ID = 'target0:0:1'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:target0:0:1
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 b4 00 17 5a
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command to LUN=0 ID=1 CHANNEL=0 from SCSI layer
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): this device doesn't exist
Nov 11 15:03:19 decibels PM: Removing info for No Bus:target0:0:1
Nov 11 15:03:19 decibels DEV: registering device: ID = 'target0:0:2'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:target0:0:2
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 4f 00 4b 51
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command to LUN=0 ID=2 CHANNEL=0 from SCSI layer
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): this device doesn't exist
Nov 11 15:03:19 decibels PM: Removing info for No Bus:target0:0:2
Nov 11 15:03:19 decibels DEV: registering device: ID = 'target0:0:3'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:target0:0:3
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 00 00 00 00
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command to LUN=0 ID=3 CHANNEL=0 from SCSI layer
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): this device doesn't exist
Nov 11 15:03:19 decibels PM: Removing info for No Bus:target0:0:3
Nov 11 15:03:19 decibels DEV: registering device: ID = 'target0:0:4'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:target0:0:4
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 10 00 00 00
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command to LUN=0 ID=4 CHANNEL=0 from SCSI layer
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): this device doesn't exist
Nov 11 15:03:19 decibels PM: Removing info for No Bus:target0:0:4
Nov 11 15:03:19 decibels DEV: registering device: ID = 'target0:0:5'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:target0:0:5
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 00 00 00 00
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command to LUN=0 ID=5 CHANNEL=0 from SCSI layer
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): this device doesn't exist
Nov 11 15:03:19 decibels PM: Removing info for No Bus:target0:0:5
Nov 11 15:03:19 decibels DEV: registering device: ID = 'target0:0:6'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:target0:0:6
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 00 00 00 00
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command to LUN=0 ID=6 CHANNEL=0 from SCSI layer
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): this device doesn't exist
Nov 11 15:03:19 decibels PM: Removing info for No Bus:target0:0:6
Nov 11 15:03:19 decibels DEV: registering device: ID = 'target0:0:7'
Nov 11 15:03:19 decibels PM: Adding info for No Bus:target0:0:7
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:587 (mts_scsi_queuecommand)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes)
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 cc aa aa 2a
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command to LUN=0 ID=7 CHANNEL=0 from SCSI layer
Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): this device doesn't exist
Nov 11 15:03:19 decibels PM: Removing info for No Bus:target0:0:7
Nov 11 15:03:19 decibels bound device '2-2:1.0' to driver 'microtekX6'
Nov 11 15:03:19 decibels usb: Bound Device 2-2:1.0 to Driver microtekX6
Nov 11 15:03:19 decibels CLASS: registering class device: ID = 'usbdev2.3'
Nov 11 15:03:19 decibels class_hotplug - name = usbdev2.3
Nov 11 15:03:19 decibels hub 2-0:1.0: state 5 ports 4 chg 0000 evt 0004
On Fri, 11 Nov 2005, decibels wrote: > >On Friday 11 November 2005 14:33, Oliver Neukum wrote: > > > > I can sort of replicate it, but I get a different error. > > Please recompile the driver with MTS_DO_DEBUG defined and try again. > > > > Regards > > Oliver > > > > Enabled MTS_DO_DEBUG in microtek.c . Quite a lot of info: > (Kern.log after plugging in scanner) Correct me if I'm wrong: > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Command INQUIRY (6 bytes) > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): 12 00 00 00 24 00 9d 00 96 98 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0101 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:534 (mts_build_transfer_context) > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Using scatter/gather > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfering from desc->ep_response == 2 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:455 (mts_command_done) This is the callback after sending the CDB. Note that the driver does DMA from a non-aligned buffer. > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0x0 data-length = 0x24 sent = 0x6 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0301 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:376 (mts_int_submit_urb) This is about to submit the URB to transfer the INQUIRY data. > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0x0 data-length = 0x24 sent = 0x6 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0301 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:496 (mts_do_sg) This is the callback. Note that fragment 0 of a 1-fragment sg list has just been sent. Note also the use of page_address, which will fail for buffers in high memory. > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0x0 data-length = 0x24 sent = 0x24 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): Processing fragment 0 of 1 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): got to drivers/usb/image/microtek.c:376 (mts_int_submit_urb) Here the driver is about to submit a 0-length URB for the non-existent second fragment of a 1-fragment sg list. > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): transfer = 0x2e0dd200 context = 0x2d9f5390 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): status = 0x0 data-length = 0x24 sent = 0x24 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): desc at 0x2d9f5340: toggle = 0305 > Nov 11 15:03:19 decibels microtek usb (rev 0.4.3): ep_out=c0008300 ep_response=c0010380 ep_image=c0018380 > Nov 11 15:03:19 decibels ohci_hcd 0000:00:02.0: urb ffff81002e0dd200 path 2 ep2in 83160000 cc 8 --> status -75 Not unnaturally, the device sends back more than 0 bytes, and you get -EOVERFLOW. It looks like the problem is in mts_command_done. It doesn't expect to deal with an sg list containing only one element. Alan Stern Created attachment 6548 [details]
2.6.14 kernel system with more debug enabled in drivers.
MTS_DO_DEBUG in microtek.c and OHCI_VERBOSE_DEBUG in ohci-hcd.c enabled.
Results after plugging scanner in.
Reply-To: oliver@neukum.org Am Freitag, 11. November 2005 22:56 schrieb Alan Stern: > It looks like the problem is in mts_command_done. On Sat, 12 Nov 2005, Oliver Neukum wrote:
> Am Freitag, 11. November 2005 22:56 schrieb Alan Stern:
> > It looks like the problem is in mts_command_done.
On Saturday 12 November 2005 10:49, Alan Stern wrote:
> On Sat, 12 Nov 2005, Oliver Neukum wrote:
>
> > Am Freitag, 11. November 2005 22:56 schrieb Alan Stern:
> > > It looks like the problem is in mts_command_done.
So can someone send me a patch to fix this? Created attachment 6591 [details]
Patch for Microtek driver: error -22 submitting URB
Tested patch supplied by Oliver Neukum.
Works perfectly. Is being submitted for acceptance on usb-devel.
Patches microtek.c & microtek.h
This can be closed as CODE_FIX because the fix is in Linus' tree. Done. |