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