diff mbox series

[v1] usbip: Add USB_SPEED_SUPER_PLUS as valid arg

Message ID 20240705091902.789643-1-ukaszb@chromium.org (mailing list archive)
State New
Headers show
Series [v1] usbip: Add USB_SPEED_SUPER_PLUS as valid arg | expand

Commit Message

Łukasz Bartosik July 5, 2024, 9:19 a.m. UTC
Add USB_SPEED_SUPER_PLUS as valid argument to allow
to attach USB SuperSpeed+ devices.

Signed-off-by: Łukasz Bartosik <ukaszb@chromium.org>
---
 drivers/usb/usbip/vhci_sysfs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

gregkh@linuxfoundation.org July 5, 2024, 9:40 a.m. UTC | #1
On Fri, Jul 05, 2024 at 09:19:02AM +0000, Łukasz Bartosik wrote:
> Add USB_SPEED_SUPER_PLUS as valid argument to allow
> to attach USB SuperSpeed+ devices.
> 
> Signed-off-by: Łukasz Bartosik <ukaszb@chromium.org>
> ---
>  drivers/usb/usbip/vhci_sysfs.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c
> index e2847cd3e6e3..d5865460e82d 100644
> --- a/drivers/usb/usbip/vhci_sysfs.c
> +++ b/drivers/usb/usbip/vhci_sysfs.c
> @@ -283,6 +283,7 @@ static int valid_args(__u32 *pdev_nr, __u32 *rhport,
>  	case USB_SPEED_HIGH:
>  	case USB_SPEED_WIRELESS:
>  	case USB_SPEED_SUPER:
> +	case USB_SPEED_SUPER_PLUS:
>  		break;
>  	default:
>  		pr_err("Failed attach request for unsupported USB speed: %s\n",
> @@ -349,7 +350,7 @@ static ssize_t attach_store(struct device *dev, struct device_attribute *attr,
>  	vhci_hcd = hcd_to_vhci_hcd(hcd);
>  	vhci = vhci_hcd->vhci;
>  
> -	if (speed == USB_SPEED_SUPER)
> +	if (speed >= USB_SPEED_SUPER)

It's an enum, are you sure this will work?

thanks,

greg k-h
Łukasz Bartosik July 5, 2024, 10:43 a.m. UTC | #2
On Fri, Jul 5, 2024 at 11:40 AM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> On Fri, Jul 05, 2024 at 09:19:02AM +0000, Łukasz Bartosik wrote:
> > Add USB_SPEED_SUPER_PLUS as valid argument to allow
> > to attach USB SuperSpeed+ devices.
> >
> > Signed-off-by: Łukasz Bartosik <ukaszb@chromium.org>
> > ---
> >  drivers/usb/usbip/vhci_sysfs.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c
> > index e2847cd3e6e3..d5865460e82d 100644
> > --- a/drivers/usb/usbip/vhci_sysfs.c
> > +++ b/drivers/usb/usbip/vhci_sysfs.c
> > @@ -283,6 +283,7 @@ static int valid_args(__u32 *pdev_nr, __u32 *rhport,
> >       case USB_SPEED_HIGH:
> >       case USB_SPEED_WIRELESS:
> >       case USB_SPEED_SUPER:
> > +     case USB_SPEED_SUPER_PLUS:
> >               break;
> >       default:
> >               pr_err("Failed attach request for unsupported USB speed: %s\n",
> > @@ -349,7 +350,7 @@ static ssize_t attach_store(struct device *dev, struct device_attribute *attr,
> >       vhci_hcd = hcd_to_vhci_hcd(hcd);
> >       vhci = vhci_hcd->vhci;
> >
> > -     if (speed == USB_SPEED_SUPER)
> > +     if (speed >= USB_SPEED_SUPER)
>
> It's an enum, are you sure this will work?
>

Gcc (gcc (Debian 13.2.0-13) 13.2.0) which I used to compile the patch
does not complain about this change at all:
  make
  ...
  CC [M]  drivers/usb/usbip/vhci_sysfs.o
  LD [M]  drivers/usb/usbip/vhci-hcd.o



Without the patch I was getting the following error when trying to
attach a device:
vhci_hcd: Failed attach request for unsupported USB speed: super-speed-plus

With the patch USB SS+ device attaches successfully:
[248223.654445] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
[248223.660701] vhci_hcd vhci_hcd.0: devid(65538) speed(6)
speed_str(super-speed-plus)
[248223.668540] vhci_hcd vhci_hcd.0: Device attached
[248223.936363] usb 2-1: SetAddress Request (2) to port 0
[248223.941698] usb 2-1: new SuperSpeed USB device number 2 using vhci_hcd
[248224.138020] usb 2-1: LPM exit latency is zeroed, disabling LPM.
[248224.331984] usb 2-1: New USB device found, idVendor=18d1,
idProduct=0010, bcdDevice= 0.10
[248224.340416] usb 2-1: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[248224.347805] usb 2-1: Product: Linux USB Debug Target
[248224.352984] usb 2-1: Manufacturer: Linux Foundation
[248224.358162] usb 2-1: SerialNumber: 0001

I hope this will resolve your doubts.

Thanks,
Lukasz

> thanks,
>
> greg k-h
diff mbox series

Patch

diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c
index e2847cd3e6e3..d5865460e82d 100644
--- a/drivers/usb/usbip/vhci_sysfs.c
+++ b/drivers/usb/usbip/vhci_sysfs.c
@@ -283,6 +283,7 @@  static int valid_args(__u32 *pdev_nr, __u32 *rhport,
 	case USB_SPEED_HIGH:
 	case USB_SPEED_WIRELESS:
 	case USB_SPEED_SUPER:
+	case USB_SPEED_SUPER_PLUS:
 		break;
 	default:
 		pr_err("Failed attach request for unsupported USB speed: %s\n",
@@ -349,7 +350,7 @@  static ssize_t attach_store(struct device *dev, struct device_attribute *attr,
 	vhci_hcd = hcd_to_vhci_hcd(hcd);
 	vhci = vhci_hcd->vhci;
 
-	if (speed == USB_SPEED_SUPER)
+	if (speed >= USB_SPEED_SUPER)
 		vdev = &vhci->vhci_hcd_ss->vdev[rhport];
 	else
 		vdev = &vhci->vhci_hcd_hs->vdev[rhport];