2011-05-01 18:11:19

by Nikola Ciprich

[permalink] [raw]
Subject: [regression?] d199c96d41d80a567493e12b8e96ea056a1350c1 breaks usbip

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.

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

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


--
-------------------------------------
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

http://www.linuxbox.cz

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


Attachments:
(No filename) (3.39 kB)
(No filename) (198.00 B)
Download all attachments

2011-05-01 19:26:32

by Greg KH

[permalink] [raw]
Subject: Re: [regression?] d199c96d41d80a567493e12b8e96ea056a1350c1 breaks usbip

On Sun, May 01, 2011 at 08:10:30PM +0200, Nikola Ciprich wrote:
> 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.
>
> 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
>
> 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.

> 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

2011-05-02 14:10:03

by Alan Stern

[permalink] [raw]
Subject: Re: [regression?] d199c96d41d80a567493e12b8e96ea056a1350c1 breaks usbip

On Sun, 1 May 2011, Greg KH wrote:

> On Sun, May 01, 2011 at 08:10:30PM +0200, Nikola Ciprich wrote:
> > 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.
> >
> > 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
> >
> > 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.

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
===================================================================
--- usb-2.6.orig/drivers/staging/usbip/vhci_hcd.c
+++ 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);

2011-05-02 17:00:36

by Nikola Ciprich

[permalink] [raw]
Subject: Re: [regression?] d199c96d41d80a567493e12b8e96ea056a1350c1 breaks usbip

> 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
> ===================================================================
> --- usb-2.6.orig/drivers/staging/usbip/vhci_hcd.c
> +++ 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);
>
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.



--
-------------------------------------
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

http://www.linuxbox.cz

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


Attachments:
(No filename) (1.04 kB)
(No filename) (198.00 B)
Download all attachments

2011-05-02 20:42:12

by Nikola Ciprich

[permalink] [raw]
Subject: Re: [regression?] d199c96d41d80a567493e12b8e96ea056a1350c1 breaks usbip

> 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.


> Greg, will You please push this to stable once it reaches upstream?
> cheers!
> n.
>
>
>
> --
> -------------------------------------
> 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
>
> http://www.linuxbox.cz
>
> mobil servis: +420 737 238 656
> email servis: [email protected]
> -------------------------------------



--
-------------------------------------
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

http://www.linuxbox.cz

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


Attachments:
(No filename) (998.00 B)
(No filename) (198.00 B)
Download all attachments