Skip to contentSkip to conversation

d199c96d41d80a567493e12b8e96ea056a1350c1 breaks usbip

regression? Nikola Ciprich 3 participants 5 messages May 1, 2011 – May 2, 2011 Staging

lore
Share & tools
lore

Nikola Ciprich

author Tested-by Perry Neben
#0 lore raw

Hello,
we've hit regression introduced by d199c96d41d80a567493e12b8e96ea056a1350c1:

Author: Alan Stern <[email protected]>
Date:   Mon Jan 31 10:56:37 2011 -0500

USB: prevent buggy hubs from crashing the USB stack

If anyone comes across a high-speed hub that (by mistake or by design) claims to have no Transaction Translators, plugging a full- or low-speed device into it will cause the USB stack to crash. This patch (as1446) prevents the problem by ignoring such devices, since the kernel has no way to communicate with them.

since this commit, trying to use staging/usbip spits message about missing TT:

[  388.893134] usbip_common_mod: module is from the staging directory, the quality is unknown, you have been warned.
[  388.898154] usbip_common_mod: usbip common driver1.0
[  388.905360] vhci_hcd: module is from the staging directory, the quality is unknown, you have been warned.
[  388.909991] vhci_hcd: vhci_hcd, 1.0
[  388.912370] usbip: proving...
[  388.912379] vhci_hcd vhci_hcd: USB/IP Virtual Host Contoroller
[  388.913052] vhci_hcd vhci_hcd: new USB bus registered, assigned bus number 2
[  388.932339] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[  388.932344] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[  388.932348] usb usb2: Product: USB/IP Virtual Host Contoroller
[  388.932351] usb usb2: Manufacturer: Linux 2.6.32lb.38 vhci_hcd
[  388.932354] usb usb2: SerialNumber: vhci_hcd
[  388.932531] usb usb2: configuration #1 chosen from 1 choice
[  388.932578] hub 2-0:1.0: USB hub found
[  388.932587] hub 2-0:1.0: 8 ports detected
[  478.379036] usbip: rhport(0) sockfd(3) devid(131075) speed(2)
[  478.379214] usbip: changed 1
[  478.500048] usbip: changed 0
[  478.608075] usb 2-1: new full speed USB device using vhci_hcd and address 2
[  478.608079] usb 2-1: parent hub has no TT
[  478.720074] usb 2-1: new full speed USB device using vhci_hcd and address 3
[  478.720078] usb 2-1: parent hub has no TT
[  478.832086] usb 2-1: new full speed USB device using vhci_hcd and address 4
[  478.832091] usb 2-1: parent hub has no TT
[  478.944076] usb 2-1: new full speed USB device using vhci_hcd and address 5
[  478.944080] usb 2-1: parent hub has no TT
[  478.944087] hub 2-0:1.0: unable to enumerate USB device on port 1

I'm not sure whether this is bug in d199c96d41d80a567493e12b8e96ea056a1350c1, I guess it might be usbip problem.
Since d199c96d41d80a567493e12b8e96ea056a1350c1 already got into -stable, usbip stopped working in 2.6.32.x (and I guess also stable and longterm kernels).

I also tried 2.6.39-rc5-git4 but usbip seems to be even more broken there. Here's dmesg trying to initialize usbip (with debugging enabled).
http://nelide.cz/nik/2.6.39-rc5-git4-usbip-dmesg.txt
(it's long, so I've uploaded it to web).

Could somebody please have a look at this? Should more information or testing be needed, I'll be glad to assist.

Cheers!

nik

Signature · 14 lines
-------------------------------------
Ing. Nikola CIPRICH
LinuxBox.cz, s.r.o.
28. rijna 168, 709 01 Ostrava

tel.:   +420 596 603 142
fax:    +420 596 621 273
mobil:  +420 777 093 799

www.linuxbox.cz

mobil servis: +420 737 238 656
email servis: [email protected]
-------------------------------------
#1 lore raw
Quoted 49 lines · Nikola Ciprich

Hello,
we've hit regression introduced by d199c96d41d80a567493e12b8e96ea056a1350c1:

Author: Alan Stern <[email protected]>
Date:   Mon Jan 31 10:56:37 2011 -0500

USB: prevent buggy hubs from crashing the USB stack

If anyone comes across a high-speed hub that (by mistake or by design) claims to have no Transaction Translators, plugging a full- or low-speed device into it will cause the USB stack to crash. This patch (as1446) prevents the problem by ignoring such devices, since the kernel has no way to communicate with them.

since this commit, trying to use staging/usbip spits message about missing TT:

[  388.893134] usbip_common_mod: module is from the staging directory, the quality is unknown, you have been warned.
[  388.898154] usbip_common_mod: usbip common driver1.0
[  388.905360] vhci_hcd: module is from the staging directory, the quality is unknown, you have been warned.
[  388.909991] vhci_hcd: vhci_hcd, 1.0
[  388.912370] usbip: proving...
[  388.912379] vhci_hcd vhci_hcd: USB/IP Virtual Host Contoroller
[  388.913052] vhci_hcd vhci_hcd: new USB bus registered, assigned bus number 2
[  388.932339] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[  388.932344] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[  388.932348] usb usb2: Product: USB/IP Virtual Host Contoroller
[  388.932351] usb usb2: Manufacturer: Linux 2.6.32lb.38 vhci_hcd
[  388.932354] usb usb2: SerialNumber: vhci_hcd
[  388.932531] usb usb2: configuration #1 chosen from 1 choice
[  388.932578] hub 2-0:1.0: USB hub found
[  388.932587] hub 2-0:1.0: 8 ports detected
[  478.379036] usbip: rhport(0) sockfd(3) devid(131075) speed(2)
[  478.379214] usbip: changed 1
[  478.500048] usbip: changed 0
[  478.608075] usb 2-1: new full speed USB device using vhci_hcd and address 2
[  478.608079] usb 2-1: parent hub has no TT
[  478.720074] usb 2-1: new full speed USB device using vhci_hcd and address 3
[  478.720078] usb 2-1: parent hub has no TT
[  478.832086] usb 2-1: new full speed USB device using vhci_hcd and address 4
[  478.832091] usb 2-1: parent hub has no TT
[  478.944076] usb 2-1: new full speed USB device using vhci_hcd and address 5
[  478.944080] usb 2-1: parent hub has no TT
[  478.944087] hub 2-0:1.0: unable to enumerate USB device on port 1
Quoted 6 lines

I'm not sure whether this is bug in d199c96d41d80a567493e12b8e96ea056a1350c1, I guess it might be usbip problem.
Since d199c96d41d80a567493e12b8e96ea056a1350c1 already got into -stable, usbip stopped working in 2.6.32.x (and I guess also stable and longterm kernels).

This is a usbip problem, we need to set the correct flag for it to work properly. I'll look into it tomorrow when I get a chance.

Quoted 5 lines

I also tried 2.6.39-rc5-git4 but usbip seems to be even more broken there. Here's dmesg trying to initialize usbip (with debugging enabled).
http://nelide.cz/nik/2.6.39-rc5-git4-usbip-dmesg.txt
(it's long, so I've uploaded it to web).

I'd recommend posting this to the [email protected] list and dealing with it as a separate issue. There have been a number of changes recently in this driver so perhaps one of them caused the problem? Any 'git bisect' work you could do to resolve this would be appreciated.

thanks,

greg k-h

#2 lore raw
Quoted 57 lines · Greg KH
Quoted 49 lines · Nikola Ciprich

Hello,
we've hit regression introduced by d199c96d41d80a567493e12b8e96ea056a1350c1:

Author: Alan Stern <[email protected]>
Date:   Mon Jan 31 10:56:37 2011 -0500

USB: prevent buggy hubs from crashing the USB stack

If anyone comes across a high-speed hub that (by mistake or by design) claims to have no Transaction Translators, plugging a full- or low-speed device into it will cause the USB stack to crash. This patch (as1446) prevents the problem by ignoring such devices, since the kernel has no way to communicate with them.

since this commit, trying to use staging/usbip spits message about missing TT:

[  388.893134] usbip_common_mod: module is from the staging directory, the quality is unknown, you have been warned.
[  388.898154] usbip_common_mod: usbip common driver1.0
[  388.905360] vhci_hcd: module is from the staging directory, the quality is unknown, you have been warned.
[  388.909991] vhci_hcd: vhci_hcd, 1.0
[  388.912370] usbip: proving...
[  388.912379] vhci_hcd vhci_hcd: USB/IP Virtual Host Contoroller
[  388.913052] vhci_hcd vhci_hcd: new USB bus registered, assigned bus number 2
[  388.932339] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[  388.932344] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[  388.932348] usb usb2: Product: USB/IP Virtual Host Contoroller
[  388.932351] usb usb2: Manufacturer: Linux 2.6.32lb.38 vhci_hcd
[  388.932354] usb usb2: SerialNumber: vhci_hcd
[  388.932531] usb usb2: configuration #1 chosen from 1 choice
[  388.932578] hub 2-0:1.0: USB hub found
[  388.932587] hub 2-0:1.0: 8 ports detected
[  478.379036] usbip: rhport(0) sockfd(3) devid(131075) speed(2)
[  478.379214] usbip: changed 1
[  478.500048] usbip: changed 0
[  478.608075] usb 2-1: new full speed USB device using vhci_hcd and address 2
[  478.608079] usb 2-1: parent hub has no TT
[  478.720074] usb 2-1: new full speed USB device using vhci_hcd and address 3
[  478.720078] usb 2-1: parent hub has no TT
[  478.832086] usb 2-1: new full speed USB device using vhci_hcd and address 4
[  478.832091] usb 2-1: parent hub has no TT
[  478.944076] usb 2-1: new full speed USB device using vhci_hcd and address 5
[  478.944080] usb 2-1: parent hub has no TT
[  478.944087] hub 2-0:1.0: unable to enumerate USB device on port 1
Quoted 6 lines

I'm not sure whether this is bug in d199c96d41d80a567493e12b8e96ea056a1350c1, I guess it might be usbip problem.
Since d199c96d41d80a567493e12b8e96ea056a1350c1 already got into -stable, usbip stopped working in 2.6.32.x (and I guess also stable and longterm kernels).

Quoted 2 lines

This is a usbip problem, we need to set the correct flag for it to work properly. I'll look into it tomorrow when I get a chance.

Here's a patch which should fix the problem. Nikola, can you test it?

Alan Stern

drivers/staging/usbip/vhci_hcd.c +1 -1
Index: usb-2.6/drivers/staging/usbip/vhci_hcd.c
===================================================================
@@ -1139,7 +1139,7 @@ static int vhci_hcd_probe(struct platfor
 		usbip_uerr("create hcd failed\n");
 		return -ENOMEM;
 	}
-
+	hcd->has_tt = 1;
 
 	/* this is private data for vhci_hcd */
 	the_controller = hcd_to_vhci(hcd);
#3 lore raw
Quoted 12 lines

Here's a patch which should fix the problem. Nikola, can you test it?

Alan Stern

Index: usb-2.6/drivers/staging/usbip/vhci_hcd.c
===================================================================

drivers/staging/usbip/vhci_hcd.c static int vhci_hcd_probe(struct platfor · line 1145

Quoted 8 lines
drivers/staging/usbip/vhci_hcd.c +1 -1
@@ -1139,7 +1139,7 @@ static int vhci_hcd_probe(struct platfor
 		usbip_uerr("create hcd failed\n");
 		return -ENOMEM;
 	}
-
+	hcd->has_tt = 1;
 
 	/* this is private data for vhci_hcd */
 	the_controller = hcd_to_vhci(hcd);

Yes, it does!
thanks Alan! I'll now try bisect as Greg suggested to see where usbip got broken in latest git... Greg, will You please push this to stable once it reaches upstream?
cheers!
n.

Signature · 14 lines
-------------------------------------
Ing. Nikola CIPRICH
LinuxBox.cz, s.r.o.
28. rijna 168, 709 01 Ostrava

tel.:   +420 596 603 142
fax:    +420 596 621 273
mobil:  +420 777 093 799

www.linuxbox.cz

mobil servis: +420 737 238 656
email servis: [email protected]
-------------------------------------
#4 lore raw
Quoted 1 line

thanks Alan! I'll now try bisect as Greg suggested to see where usbip got broken in latest git...

ok, I don't seem to be able to reproduce with latest git now... so unless the problem appears again, I guess this can just be forgotten. thanks guys!
n.

Quoted 21 lines

Greg, will You please push this to stable once it reaches upstream? cheers!
n.

Signature · 14 lines
-------------------------------------
Ing. Nikola CIPRICH
LinuxBox.cz, s.r.o.
28. rijna 168, 709 01 Ostrava

tel.:   +420 596 603 142
fax:    +420 596 621 273
mobil:  +420 777 093 799

www.linuxbox.cz

mobil servis: +420 737 238 656
email servis: [email protected]
-------------------------------------
Signature · 14 lines
-------------------------------------
Ing. Nikola CIPRICH
LinuxBox.cz, s.r.o.
28. rijna 168, 709 01 Ostrava

tel.:   +420 596 603 142
fax:    +420 596 621 273
mobil:  +420 777 093 799

www.linuxbox.cz

mobil servis: +420 737 238 656
email servis: [email protected]
-------------------------------------