d199c96d41d80a567493e12b8e96ea056a1350c1 breaks usbip
Nikola Ciprich
Tested-by Perry NebenHello,
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] -------------------------------------
Quoted 49 lines · Nikola Ciprich
Hello,
we've hit regression introduced byd199c96d41d80a567493e12b8e96ea056a1350c1:Author: Alan Stern <[email protected]> Date: Mon Jan 31 10:56:37 2011 -0500USB: 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.
Signed-off-by Alan Stern <[email protected]>Tested-by Perry Neben <[email protected]>CC <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>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.
Sinced199c96d41d80a567493e12b8e96ea056a1350c1already 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
Quoted 57 lines · Greg KH
Quoted 49 lines · Nikola Ciprich
Hello,
we've hit regression introduced byd199c96d41d80a567493e12b8e96ea056a1350c1:Author: Alan Stern <[email protected]> Date: Mon Jan 31 10:56:37 2011 -0500USB: 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.
Signed-off-by Alan Stern <[email protected]>Tested-by Perry Neben <[email protected]>CC <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>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 1Quoted 6 lines
I'm not sure whether this is bug in
d199c96d41d80a567493e12b8e96ea056a1350c1, I guess it might be usbip problem.
Sinced199c96d41d80a567493e12b8e96ea056a1350c1already 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
@@ -1139,7 +1139,7 @@ static int vhci_hcd_probe(struct platforusbip_uerr ("create hcd failed\n" );return -ENOMEM ; } - + hcd->has_tt =1 ;/* this is private data for vhci_hcd */ the_controller =hcd_to_vhci (hcd);
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 platforusbip_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] -------------------------------------
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] -------------------------------------