aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-François Moine <moinejf@free.fr>2012-05-02 04:05:18 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-08 13:42:33 -0300
commit788ab1bb03d304232711b6ca9718534f588ee9fc (patch)
tree473d2473bc8e45c544485913ca3cca31f9355bb2
parentf36c7d9e9d745b3f60f79bdf53f160047c8262c6 (diff)
downloadubi2-788ab1bb03d304232711b6ca9718534f588ee9fc.tar.gz
[media] gspca - sonixj: Fix a zero divide in isoc interrupt
In case of short marker, the number of received packets was not incremented doing a zero divide when computing the filling rate. Reported-by: Hans Petter Selasky <hans.petter.selasky@bitfrost.no> Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/gspca/sonixj.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/video/gspca/sonixj.c b/drivers/media/video/gspca/sonixj.c
index db8e5084df066..863c755dd2b7a 100644
--- a/drivers/media/video/gspca/sonixj.c
+++ b/drivers/media/video/gspca/sonixj.c
@@ -2923,6 +2923,10 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
* not the JPEG end of frame ('ff d9').
*/
+ /* count the packets and their size */
+ sd->npkt++;
+ sd->pktsz += len;
+
/*fixme: assumption about the following code:
* - there can be only one marker in a packet
*/
@@ -2945,10 +2949,6 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
data += i;
}
- /* count the packets and their size */
- sd->npkt++;
- sd->pktsz += len;
-
/* search backwards if there is a marker in the packet */
for (i = len - 1; --i >= 0; ) {
if (data[i] != 0xff) {