diff options
Diffstat (limited to 'drivers/usb/misc/usbtest.c')
| -rw-r--r-- | drivers/usb/misc/usbtest.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c index 0cfbd789ddf..d92b7ec9a23 100644 --- a/drivers/usb/misc/usbtest.c +++ b/drivers/usb/misc/usbtest.c @@ -1378,7 +1378,6 @@ static void iso_callback (struct urb *urb)  			break;  		}  	} -	simple_free_urb (urb);  	ctx->pending--;  	if (ctx->pending == 0) { @@ -1495,6 +1494,7 @@ test_iso_queue (struct usbtest_dev *dev, struct usbtest_param *param,  			}  			simple_free_urb (urbs [i]); +			urbs[i] = NULL;  			context.pending--;  			context.submit_error = 1;  			break; @@ -1504,6 +1504,10 @@ test_iso_queue (struct usbtest_dev *dev, struct usbtest_param *param,  	wait_for_completion (&context.done); +	for (i = 0; i < param->sglen; i++) { +		if (urbs[i]) +			simple_free_urb(urbs[i]); +	}  	/*  	 * Isochronous transfers are expected to fail sometimes.  As an  	 * arbitrary limit, we will report an error if any submissions  |