media: stk1160: fix number of buffers in case not all buffers are created
authorDafna Hirschfeld <dafna.hirschfeld@collabora.com>
Tue, 25 Jan 2022 08:02:10 +0000 (09:02 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 7 Mar 2022 09:58:12 +0000 (10:58 +0100)
In case we fail to allocate a transfer_buffer then we
break the buffers creation loop and update the number of
buffers to the number of successfully allocated which should
be 'i' and not 'i - 1' nor 'i + 1'

Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/usb/stk1160/stk1160-video.c

index 202b084..92c8b1f 100644 (file)
@@ -511,15 +511,15 @@ nomore_tx_bufs:
        usb_free_urb(dev->isoc_ctl.urb[i]);
        dev->isoc_ctl.urb[i] = NULL;
 
-       stk1160_warn("%d urbs allocated. Trying to continue...\n", i - 1);
+       stk1160_warn("%d urbs allocated. Trying to continue...\n", i);
 
-       dev->isoc_ctl.num_bufs = i - 1;
+       dev->isoc_ctl.num_bufs = i;
 
        return 0;
 
 free_i_bufs:
        /* Save the allocated buffers so far, so we can properly free them */
-       dev->isoc_ctl.num_bufs = i+1;
+       dev->isoc_ctl.num_bufs = i;
        stk1160_free_isoc(dev);
        return -ENOMEM;
 }