Re: [PATCH for v3.6] v4l2-dev.c: Move video_put() after debug printk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu 26 July 2012 13:59:04 Ezequiel Garcia wrote:
> It is possible that video_put() releases video_device struct,
> provoking a panic when debug printk wants to get video_device node name.
> 
> Signed-off-by: Ezequiel Garcia <elezegarcia@xxxxxxxxx>

Acked-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>

Good catch!

Regards,

	Hans

> ---
>  drivers/media/video/v4l2-dev.c |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/media/video/v4l2-dev.c b/drivers/media/video/v4l2-dev.c
> index af70f93..3210fd5 100644
> --- a/drivers/media/video/v4l2-dev.c
> +++ b/drivers/media/video/v4l2-dev.c
> @@ -478,12 +478,12 @@ static int v4l2_open(struct inode *inode, struct file *filp)
>  	}
>  
>  err:
> -	/* decrease the refcount in case of an error */
> -	if (ret)
> -		video_put(vdev);
>  	if (vdev->debug)
>  		printk(KERN_DEBUG "%s: open (%d)\n",
>  			video_device_node_name(vdev), ret);
> +	/* decrease the refcount in case of an error */
> +	if (ret)
> +		video_put(vdev);
>  	return ret;
>  }
>  
> @@ -500,12 +500,12 @@ static int v4l2_release(struct inode *inode, struct file *filp)
>  		if (test_bit(V4L2_FL_LOCK_ALL_FOPS, &vdev->flags))
>  			mutex_unlock(vdev->lock);
>  	}
> -	/* decrease the refcount unconditionally since the release()
> -	   return value is ignored. */
> -	video_put(vdev);
>  	if (vdev->debug)
>  		printk(KERN_DEBUG "%s: release\n",
>  			video_device_node_name(vdev));
> +	/* decrease the refcount unconditionally since the release()
> +	   return value is ignored. */
> +	video_put(vdev);
>  	return ret;
>  }
>  
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux