summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@skynet.be>2009-02-14 19:39:08 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-03-30 12:42:51 -0300
commitc90e777976f6237a0cdb644c6a9406907939b174 (patch)
tree7512b145c20e5025618763220078f98f8f3294ab
parent72362422f3a9cb66e26fa9f0d90d3ef5241e78ba (diff)
downloadkernel-crypto-c90e777976f6237a0cdb644c6a9406907939b174.tar.gz
kernel-crypto-c90e777976f6237a0cdb644c6a9406907939b174.tar.xz
kernel-crypto-c90e777976f6237a0cdb644c6a9406907939b174.zip
V4L/DVB (10651): uvcvideo: Ignore empty bulk URBs
Devices may send a zero-length packet to signal the end of a bulk payload. If the payload size is a multiple of the URB size the zero-length packet will be received by the URB completion handler. Handle this by ignoring all empty URBs. Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/uvc/uvc_video.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c
index 9139086f940..0789ba381fc 100644
--- a/drivers/media/video/uvc/uvc_video.c
+++ b/drivers/media/video/uvc/uvc_video.c
@@ -540,6 +540,9 @@ static void uvc_video_decode_bulk(struct urb *urb,
u8 *mem;
int len, ret;
+ if (urb->actual_length == 0)
+ return;
+
mem = urb->transfer_buffer;
len = urb->actual_length;
video->bulk.payload_size += len;