From 3358112691a94befef04bf8e4285dad21b67cd4f Mon Sep 17 00:00:00 2001 From: Oliver Neukum Date: Tue, 28 Jul 2009 11:52:10 -0300 Subject: [PATCH] --- yaml --- r: 161496 b: refs/heads/master c: 085575a325de87b4931a43c9d0a75ca0d3ba5075 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/video/stv680.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 8d9a9fc8c5c1..2d3f3330de26 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f5d887ae60ea1b05fcdab65e51e1ef88398ed274 +refs/heads/master: 085575a325de87b4931a43c9d0a75ca0d3ba5075 diff --git a/trunk/drivers/media/video/stv680.c b/trunk/drivers/media/video/stv680.c index 8b4e7dafce7b..6a91714125d2 100644 --- a/trunk/drivers/media/video/stv680.c +++ b/trunk/drivers/media/video/stv680.c @@ -734,10 +734,6 @@ static int stv680_start_stream (struct usb_stv *stv680) return 0; 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++) { usb_kill_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); 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; }