lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ee7416c9db2128ab1a8c1bbdc7cd231da21e5b53.camel@collabora.com>
Date: Wed, 27 Aug 2025 10:30:40 -0400
From: Nicolas Dufresne <nicolas.dufresne@...labora.com>
To: Paul Kocialkowski <paulk@...-base.io>, linux-media@...r.kernel.org, 
	linux-rockchip@...ts.infradead.org, linux-kernel@...r.kernel.org
Cc: Benjamin Gaignard <benjamin.gaignard@...labora.com>, Philipp Zabel
	 <p.zabel@...gutronix.de>, Mauro Carvalho Chehab <mchehab@...nel.org>
Subject: Re: [PATCH] media: verisilicon: Explicitly disable all encoder
 ioctls for decoders

Hi Paul,

Le mardi 26 août 2025 à 21:04 +0200, Paul Kocialkowski a écrit :
> Call the dedicated v4l2_disable_ioctl helper instead of manually
> checking whether the current context is an encoder for the selection
> ioctls.
> 
> Signed-off-by: Paul Kocialkowski <paulk@...-base.io>
> ---
>  drivers/media/platform/verisilicon/hantro_drv.c  | 2 ++
>  drivers/media/platform/verisilicon/hantro_v4l2.c | 6 ++----
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/media/platform/verisilicon/hantro_drv.c
> b/drivers/media/platform/verisilicon/hantro_drv.c
> index 4cc9d00fd293..6fb28a6293e7 100644
> --- a/drivers/media/platform/verisilicon/hantro_drv.c
> +++ b/drivers/media/platform/verisilicon/hantro_drv.c
> @@ -916,6 +916,8 @@ static int hantro_add_func(struct hantro_dev *vpu,
> unsigned int funcid)
>  		vpu->decoder = func;
>  		v4l2_disable_ioctl(vfd, VIDIOC_TRY_ENCODER_CMD);
>  		v4l2_disable_ioctl(vfd, VIDIOC_ENCODER_CMD);
> +		v4l2_disable_ioctl(vfd, VIDIOC_G_SELECTION);
> +		v4l2_disable_ioctl(vfd, VIDIOC_S_SELECTION);

Disabling this IOCTL for JPEG is fine, but for VP8, H.264, HEVC, VP9 and AV1, it
is pretty much mandatory. Otherwise your stream will advertise the padded
dimentions and there would be no way to tell it that what is the cropping window
for bitstream generation purpose. Considering you are looking forward adding
H.264 encoding, do you really want to apply this fix ?

Nicolas

>  	}
>  
>  	video_set_drvdata(vfd, vpu);
> diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c
> b/drivers/media/platform/verisilicon/hantro_v4l2.c
> index 6bcd892e7bb4..fcf3bd9bcda2 100644
> --- a/drivers/media/platform/verisilicon/hantro_v4l2.c
> +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c
> @@ -663,8 +663,7 @@ static int vidioc_g_selection(struct file *file, void
> *priv,
>  	struct hantro_ctx *ctx = file_to_ctx(file);
>  
>  	/* Crop only supported on source. */
> -	if (!ctx->is_encoder ||
> -	    sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
> +	if (sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
>  		return -EINVAL;
>  
>  	switch (sel->target) {
> @@ -696,8 +695,7 @@ static int vidioc_s_selection(struct file *file, void
> *priv,
>  	struct vb2_queue *vq;
>  
>  	/* Crop only supported on source. */
> -	if (!ctx->is_encoder ||
> -	    sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
> +	if (sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
>  		return -EINVAL;
>  
>  	/* Change not allowed if the queue is streaming. */

Download attachment "signature.asc" of type "application/pgp-signature" (229 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ