Bug 121355

Summary: cdc_acm: probe of 1-1:1.0 failed with error -5
Product: [Fedora] Fedora Reporter: Aleksey Nogin <aleksey>
Component: kernelAssignee: Pete Zaitcev <zaitcev>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 2.6.5-1.346 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-05-06 07:41:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Aleksey Nogin 2004-04-20 18:02:37 UTC
I am trying to get FC devel to recognize my cell phone (searching
Google confirms that it is indeed supposed to work with the acm
driver), but I am getting the "cdc_acm: probe of 1-1:1.0 failed with
error -5" error from cdc_acm.

cat /proc/bus/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.5-1.327custom uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.0
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 1.01 Cls=02(comm.) Sub=00 Prot=00 MxPS=16 #Cfgs=  1
P:  Vendor=22b8 ProdID=2822 Rev= 0.01
S:  Manufacturer=Motorola, Inc.
S:  Product=Motorola T720c
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 20mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E:  Ad=8a(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=0b(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

Comment 1 Aleksey Nogin 2004-04-21 22:13:15 UTC
Any hints on where I look and how I start investigating this? Thanks!

Comment 2 Aleksey Nogin 2004-04-23 07:31:15 UTC
I got it to work! 

Near the top of the acm_probe function in drivers/usb/class/cdc-acm.c,
there is the following code:

         if (usb_interface_claimed(cfacm->interface[j]) ||
             usb_interface_claimed(cfacm->interface[j + 1]))
         continue;

The probe loop is only executed once (with j = 0) and when it is
executed, it turns out that usb_interface_claimed(cfacm->interface[0])
is true, while usb_interface_claimed(cfacm->interface[1]) is false and
the probe aborts. After I commented out those three lines, everything
works!

I am guessing that I only masked the real issue (i.e. why was the
usb_interface_claimed true?), hopefully somebody more knowledgeable
than I am can figure out what is causing it.

Comment 3 Aleksey Nogin 2004-04-23 18:47:25 UTC
According to David Brownell (david-b <at> pacbell.net), this should be
fixed in the current Linus' BK snapshot.

Comment 4 Aleksey Nogin 2004-05-06 07:41:38 UTC
This now works for me in 2.6.5-1.346