diff options
| -rw-r--r-- | drivers/usb/misc/usbtest.c | 17 | 
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c index 9dcb68f04f0..055b84adeda 100644 --- a/drivers/usb/misc/usbtest.c +++ b/drivers/usb/misc/usbtest.c @@ -1028,7 +1028,10 @@ test_ctrl_queue(struct usbtest_dev *dev, struct usbtest_param *param)  		case 13:	/* short read, resembling case 10 */  			req.wValue = cpu_to_le16((USB_DT_CONFIG << 8) | 0);  			/* last data packet "should" be DATA1, not DATA0 */ -			len = 1024 - udev->descriptor.bMaxPacketSize0; +			if (udev->speed == USB_SPEED_SUPER) +				len = 1024 - 512; +			else +				len = 1024 - udev->descriptor.bMaxPacketSize0;  			expected = -EREMOTEIO;  			break;  		case 14:	/* short read; try to fill the last packet */ @@ -1387,11 +1390,15 @@ static int test_halt(struct usbtest_dev *tdev, int ep, struct urb *urb)  static int halt_simple(struct usbtest_dev *dev)  { -	int		ep; -	int		retval = 0; -	struct urb	*urb; +	int			ep; +	int			retval = 0; +	struct urb		*urb; +	struct usb_device	*udev = testdev_to_usbdev(dev); -	urb = simple_alloc_urb(testdev_to_usbdev(dev), 0, 512); +	if (udev->speed == USB_SPEED_SUPER) +		urb = simple_alloc_urb(udev, 0, 1024); +	else +		urb = simple_alloc_urb(udev, 0, 512);  	if (urb == NULL)  		return -ENOMEM;  |