usbtest.c (8cf4328569acc37ac5c5b4eb27ae86c3758f627b) | usbtest.c (e5e4746510d140261918aecce2e5e3aa4456f7e9) |
---|---|
1#include <linux/kernel.h> 2#include <linux/errno.h> 3#include <linux/init.h> 4#include <linux/slab.h> 5#include <linux/mm.h> 6#include <linux/module.h> 7#include <linux/moduleparam.h> 8#include <linux/scatterlist.h> 9#include <linux/mutex.h> 10 11#include <linux/usb.h> 12 | 1#include <linux/kernel.h> 2#include <linux/errno.h> 3#include <linux/init.h> 4#include <linux/slab.h> 5#include <linux/mm.h> 6#include <linux/module.h> 7#include <linux/moduleparam.h> 8#include <linux/scatterlist.h> 9#include <linux/mutex.h> 10 11#include <linux/usb.h> 12 |
13#define SIMPLE_IO_TIMEOUT 10000 /* in milliseconds */ |
|
13 14/*-------------------------------------------------------------------------*/ 15 16static int override_alt = -1; 17module_param_named(alt, override_alt, int, 0644); 18MODULE_PARM_DESC(alt, ">= 0 to override altsetting selection"); 19 20/*-------------------------------------------------------------------------*/ --- 340 unchanged lines hidden (view full) --- 361 int expected, 362 const char *label 363) 364{ 365 struct usb_device *udev = urb->dev; 366 int max = urb->transfer_buffer_length; 367 struct completion completion; 368 int retval = 0; | 14 15/*-------------------------------------------------------------------------*/ 16 17static int override_alt = -1; 18module_param_named(alt, override_alt, int, 0644); 19MODULE_PARM_DESC(alt, ">= 0 to override altsetting selection"); 20 21/*-------------------------------------------------------------------------*/ --- 340 unchanged lines hidden (view full) --- 362 int expected, 363 const char *label 364) 365{ 366 struct usb_device *udev = urb->dev; 367 int max = urb->transfer_buffer_length; 368 struct completion completion; 369 int retval = 0; |
370 unsigned long expire; |
|
369 370 urb->context = &completion; 371 while (retval == 0 && iterations-- > 0) { 372 init_completion(&completion); 373 if (usb_pipeout(urb->pipe)) { 374 simple_fill_buf(urb); 375 urb->transfer_flags |= URB_ZERO_PACKET; 376 } 377 retval = usb_submit_urb(urb, GFP_KERNEL); 378 if (retval != 0) 379 break; 380 | 371 372 urb->context = &completion; 373 while (retval == 0 && iterations-- > 0) { 374 init_completion(&completion); 375 if (usb_pipeout(urb->pipe)) { 376 simple_fill_buf(urb); 377 urb->transfer_flags |= URB_ZERO_PACKET; 378 } 379 retval = usb_submit_urb(urb, GFP_KERNEL); 380 if (retval != 0) 381 break; 382 |
381 /* NOTE: no timeouts; can't be broken out of by interrupt */ 382 wait_for_completion(&completion); 383 retval = urb->status; | 383 expire = msecs_to_jiffies(SIMPLE_IO_TIMEOUT); 384 if (!wait_for_completion_timeout(&completion, expire)) { 385 usb_kill_urb(urb); 386 retval = (urb->status == -ENOENT ? 387 -ETIMEDOUT : urb->status); 388 } else { 389 retval = urb->status; 390 } 391 |
384 urb->dev = udev; 385 if (retval == 0 && usb_pipein(urb->pipe)) 386 retval = simple_check_buf(tdev, urb); 387 388 if (vary) { 389 int len = urb->transfer_buffer_length; 390 391 len += vary; --- 827 unchanged lines hidden (view full) --- 1219 expected = -EREMOTEIO; 1220 break; 1221 case 15: 1222 req.wValue = cpu_to_le16(USB_DT_BOS << 8); 1223 if (udev->bos) 1224 len = le16_to_cpu(udev->bos->desc->wTotalLength); 1225 else 1226 len = sizeof(struct usb_bos_descriptor); | 392 urb->dev = udev; 393 if (retval == 0 && usb_pipein(urb->pipe)) 394 retval = simple_check_buf(tdev, urb); 395 396 if (vary) { 397 int len = urb->transfer_buffer_length; 398 399 len += vary; --- 827 unchanged lines hidden (view full) --- 1227 expected = -EREMOTEIO; 1228 break; 1229 case 15: 1230 req.wValue = cpu_to_le16(USB_DT_BOS << 8); 1231 if (udev->bos) 1232 len = le16_to_cpu(udev->bos->desc->wTotalLength); 1233 else 1234 len = sizeof(struct usb_bos_descriptor); |
1227 if (le16_to_cpu(udev->descriptor.bcdUSB) < 0x0201) | 1235 if (udev->speed != USB_SPEED_SUPER) |
1228 expected = -EPIPE; 1229 break; 1230 default: 1231 ERROR(dev, "bogus number of ctrl queue testcases!\n"); 1232 context.status = -EINVAL; 1233 goto cleanup; 1234 } 1235 req.wLength = cpu_to_le16(len); --- 1471 unchanged lines hidden --- | 1236 expected = -EPIPE; 1237 break; 1238 default: 1239 ERROR(dev, "bogus number of ctrl queue testcases!\n"); 1240 context.status = -EINVAL; 1241 goto cleanup; 1242 } 1243 req.wLength = cpu_to_le16(len); --- 1471 unchanged lines hidden --- |