|
@@ -734,10 +734,6 @@ static int stv680_start_stream (struct usb_stv *stv680)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
nomem_err:
|
|
nomem_err:
|
|
- for (i = 0; i < STV680_NUMSCRATCH; i++) {
|
|
|
|
- kfree(stv680->scratch[i].data);
|
|
|
|
- stv680->scratch[i].data = NULL;
|
|
|
|
- }
|
|
|
|
for (i = 0; i < STV680_NUMSBUF; i++) {
|
|
for (i = 0; i < STV680_NUMSBUF; i++) {
|
|
usb_kill_urb(stv680->urb[i]);
|
|
usb_kill_urb(stv680->urb[i]);
|
|
usb_free_urb(stv680->urb[i]);
|
|
usb_free_urb(stv680->urb[i]);
|
|
@@ -745,6 +741,11 @@ static int stv680_start_stream (struct usb_stv *stv680)
|
|
kfree(stv680->sbuf[i].data);
|
|
kfree(stv680->sbuf[i].data);
|
|
stv680->sbuf[i].data = NULL;
|
|
stv680->sbuf[i].data = NULL;
|
|
}
|
|
}
|
|
|
|
+ /* used in irq, free only as all URBs are dead */
|
|
|
|
+ for (i = 0; i < STV680_NUMSCRATCH; i++) {
|
|
|
|
+ kfree(stv680->scratch[i].data);
|
|
|
|
+ stv680->scratch[i].data = NULL;
|
|
|
|
+ }
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
|
|
}
|
|
}
|