em28xx_videodbg("users=%d", dev->users); 
em28xx_videodbg("users=%d\n", dev->users); 
static int em28xx_v4l2_open(struct inode *inode, struct file *filp){	int minor = iminor(inode);	int errCode = 0;	struct em28xx *h,*dev = NULL;	struct list_head *list;	list_for_each(list,&em28xx_devlist) {		h = list_entry(list, struct em28xx, devlist);		if (h->vdev->minor == minor) {			dev  = h;		}	}	filp->private_data=dev;	em28xx_videodbg("users=%d", dev->users);	if (!down_read_trylock(&em28xx_disconnect))		return -ERESTARTSYS;	if (dev->users) {		em28xx_warn("this driver can be opened only once\n");		up_read(&em28xx_disconnect);		return -EBUSY;	}/*	if(dev->vbi_dev->minor == minor){		dev->type=V4L2_BUF_TYPE_VBI_CAPTURE;	}*/	if (dev->vdev->minor == minor) {		dev->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;	}	init_MUTEX(&dev->fileop_lock);	/* to 1 == available */	spin_lock_init(&dev->queue_lock);	init_waitqueue_head(&dev->wait_frame);	init_waitqueue_head(&dev->wait_stream);	down(&dev->lock);	em28xx_set_alternate(dev);	dev->width = norm_maxw(dev);	dev->height = norm_maxh(dev);	dev->frame_size = dev->width * dev->height * 2;	dev->field_size = dev->frame_size >> 1;	/*both_fileds ? dev->frame_size>>1 : dev->frame_size; */	dev->bytesperline = dev->width * 2;	dev->hscale = 0;	dev->vscale = 0;	em28xx_capture_start(dev, 1);	em28xx_resolution_set(dev);	/* start the transfer */	errCode = em28xx_init_isoc(dev);	if (errCode)		goto err;	dev->users++;	filp->private_data = dev;	dev->io = IO_NONE;	dev->stream = STREAM_OFF;	dev->num_frames = 0;	/* prepare queues */	em28xx_empty_framequeues(dev);	dev->state |= DEV_INITIALIZED;      err:	up(&dev->lock);	up_read(&em28xx_disconnect);	return errCode;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/eac94356c8f9f7d3854ed0290a406b13bfe8df4c/em28xx-video.c/buggy/drivers/media/video/em28xx/em28xx-video.c