From: Mauro Carvalho Chehab Date: Mon, 10 Dec 2007 07:43:38 +0000 (-0300) Subject: V4L/DVB (6755): Avoid troubles when using multiple devices X-Git-Tag: v2.6.25-rc1~1235^2~237 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=025341d4f0caa58f0e5eddbffd11d44e37cff974;p=linux-2.6 V4L/DVB (6755): Avoid troubles when using multiple devices mv_count is a counter used to move the vertical bars. Before this patch, it where a static var. This works fine for just one device. However, when using multiple devices, every device would increment it. This patch moves it to its correct place: struct vivi_dev. So, now, each device has its own data. Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c index fda01f49ef..ea9ff8a9bf 100644 --- a/drivers/media/video/vivi.c +++ b/drivers/media/video/vivi.c @@ -178,6 +178,8 @@ struct vivi_dev { /* Several counters */ int h,m,s,us,jiffies; char timestr[13]; + + int mv_count; /* Controls bars movement */ }; struct vivi_fh { @@ -327,14 +329,12 @@ static void vivi_fillbuff(struct vivi_dev *dev,struct vivi_buffer *buf) struct timeval ts; char *tmpbuf = kmalloc(wmax*2,GFP_KERNEL); void *vbuf=videobuf_to_vmalloc (&buf->vb); - /* FIXME: move to dev struct */ - static int mv_count=0; if (!tmpbuf) return; for (h=0;hmv_count, dev->timestr); /* FIXME: replacing to __copy_to_user */ if (copy_to_user(vbuf+pos,tmpbuf,wmax*2)!=0) @@ -342,7 +342,7 @@ static void vivi_fillbuff(struct vivi_dev *dev,struct vivi_buffer *buf) pos += wmax*2; } - mv_count++; + dev->mv_count++; kfree(tmpbuf);