Received: by 2002:a05:7412:1e0b:b0:fc:a2b0:25d7 with SMTP id kr11csp59314rdb; Wed, 14 Feb 2024 12:38:51 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCURJoGwSTwesQoyPDDSx7e3uWgm72qCrDehAQksBlAPdkHb9oYgW8ipcwhLGBFZ0Vgm59HyK3yzQ3Ry/24q9ey2yTTPHRdC6pgXQu+Xlg== X-Google-Smtp-Source: AGHT+IEJFX0kRePdKbMpd3WdSk1RvGgPdkI066jaY//M3N5nhmZRkl2qPFv9V36VFWJwWGNkeVxC X-Received: by 2002:a37:ef0a:0:b0:787:2250:ceae with SMTP id j10-20020a37ef0a000000b007872250ceaemr3934503qkk.8.1707943131303; Wed, 14 Feb 2024 12:38:51 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707943131; cv=pass; d=google.com; s=arc-20160816; b=fODK8/6wdD49vMS/dUYrflUDIxuy6/e+K1eVH6XbSoPpQ2ZdvjqoRhr5UKY+JvEq8v wusqH/z2D6hRrwo4qE0YvIu52Z0tnnL4uQKAPnHJJmTTIVqQMmZ49eUiPLina6PtKW1t +XpallOmz5FJHT/WpYnHlhIUR1sXl3Zo2mhLZyZuy9jpeyaGPzb4e9MdPbZ47K95PRTG Ox1OJHBM+tK3dKvQB17TCuL4ZZW1m7y/r4RMNgU5JhguNP1NYtL9Pzn0WhsvJ5EwRMu9 xsDS6rBnkDbEkjp8YPws5mv9itmG9Sm/B/DoYTc0HatSs+GUQlv5m/fL2UaU4uYki9CK Oamw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :user-agent:content-transfer-encoding:autocrypt:references :in-reply-to:date:cc:to:from:subject:message-id:dkim-signature; bh=LZqkmrZj1iOf5VsTBOsS1YipWvvMP9WNp6hcJ+yHszA=; fh=E/As4b0pCH+x0r/SPUQPD+aPq1b3KGKP1rYf6ClHnXI=; b=iJC/4D4DmihlYyVjlhPqriTtLlLA/+0YugoQHS80/6kuFBL1sGrBGlDGYBgTi7S3fF 6YPQbMRY9A9y1I2SiMf6CieQ3gsuKW65W/J9s7jYRmAueJddiK1J9+IqhghjyMNrPPN5 KR5pjBm+IqhejSF7N1PyDcJaFtuRmDredJE1lVZDroaqPtz059+rUaOBVcst8iI0M+GZ LpCwLfshvDdmqLMNDyGwmZ3n/0NlxBSTHre88tGdfhoX2ZRP2wQXl0q40kFacAQDWyzV gFD1cO+KbB7Za/NI+7xqMNv/geAZGXI0WoTz0Aeusd2aYLm5pJIS8e63JiI6NbkQjQw2 4z7Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=tbvpd4ac; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-kernel+bounces-65944-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-65944-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com X-Forwarded-Encrypted: i=2; AJvYcCXxVWZmdveK7/F+m/9Y5ofoY8Ep7A10EvDSzJ7qVGkjnEbe4CSQLY6xXoww1PBQc+511u6tXEuw7bSjPYxleGsynWmNg/48abc6pLTIBQ== Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id sq2-20020a05620a4ac200b00785be8e5f85si10919404qkn.247.2024.02.14.12.38.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Feb 2024 12:38:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-65944-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=tbvpd4ac; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-kernel+bounces-65944-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-65944-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 04F9F1C20D37 for ; Wed, 14 Feb 2024 20:38:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EA77812838E; Wed, 14 Feb 2024 20:38:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="tbvpd4ac" Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7AB7D1DDC1; Wed, 14 Feb 2024 20:38:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.235.227.194 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707943121; cv=none; b=K5SDyjkpZNhxhqTPp+4/WtZFsZPmStB4ishWKTkMw5+uLd6mciAnVkXD0+o8zLAFFEWwANsOPnXMPBMOpswEb6a7USv37CFYIjRskfZEdnaw+besPRjx8uwKucDyZjT6j9ZJmFdU41EKXt8mU8pQ685ZlKQqaepjJ4O6jS9IQNc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707943121; c=relaxed/simple; bh=DFjL+6b7AkoxeUWqvnBND32t0iwJZ+FDcJ3KKCir4IA=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=m2TdaZ3y4sgKjyIm/hCGtsMtFV26pF7xB1pwqz5Q5UsxTdYs2wvw0aB+u/JdLqJJITZqw72nbawizNvuK54LNgedvu4Rd2sgMc/AAOs5zBoh/Iee0j8q1bAPyHP+uOvhPCOce6jQGtN67HdlxIO+hL9xRZpp55asYjUmFY3LoVc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=tbvpd4ac; arc=none smtp.client-ip=46.235.227.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1707943117; bh=DFjL+6b7AkoxeUWqvnBND32t0iwJZ+FDcJ3KKCir4IA=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=tbvpd4acCdRprsVF7V9gvcrGE2OA37DjlqK0iPQsf4xO1oKgW5vebs/Cr9ziIgYUy qGuP2ucQGNuZ4rKCx18z//i+F4dZW1u7FgWGuUmdIGJO/UCK8paQ66tFqmRPfGxHfs YEfXGzBkeLyFkWyLDnsgkxKq37o8KjURMkbnpSO/RjqUh5rI1hD2R0y8bxBxH/e/0m GDF/88iyNniO3O6cEY3EcX/tyHPklfU8ZAa7pYm9kEFyEwbC27YUhbLukqXJTxYl0S 0l0tyaS1IOtnsjbU4QVwsDhJPqKWuH9yHb2mp7Tr6FKb8pWKoiN674GP7e36R/s6Og iF2hXZd73ZlxQ== Received: from nicolas-tpx395.localdomain (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nicolas) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 5E8203782088; Wed, 14 Feb 2024 20:38:36 +0000 (UTC) Message-ID: Subject: Re: [PATCH] media: v4l2-mem2mem: fix mem order in last buf From: Nicolas Dufresne To: Hsia-Jun Li , linux-media@vger.kernel.org Cc: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, alexious@zju.edu.cn, ayaka@soulik.info, linux-kernel@vger.kernel.org Date: Wed, 14 Feb 2024 15:38:32 -0500 In-Reply-To: <20240210180414.49184-1-randy.li@synaptics.com> References: <20240210180414.49184-1-randy.li@synaptics.com> Autocrypt: addr=nicolas.dufresne@collabora.com; prefer-encrypt=mutual; keydata=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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.3 (3.50.3-1.fc39) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Hi, > media: v4l2-mem2mem: fix mem order in last buf mem order ? Did you mean call order ? Le dimanche 11 f=C3=A9vrier 2024 =C3=A0 02:04 +0800, Hsia-Jun Li a =C3=A9cr= it=C2=A0: > From: "Hsia-Jun(Randy) Li" >=20 > The has_stopped property in struct v4l2_m2m_ctx is operated > without a lock protecction. Then the userspace calls to protection When ? ~~ > v4l2_m2m_encoder_cmd()/v4l2_m2m_decoder_cmd() may lead to > a critical section issue. As there is no locking, there is no critical section, perhaps a better phra= sing could help. >=20 > Signed-off-by: Hsia-Jun(Randy) Li > --- > drivers/media/v4l2-core/v4l2-mem2mem.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-= core/v4l2-mem2mem.c > index 75517134a5e9..f1de71031e02 100644 > --- a/drivers/media/v4l2-core/v4l2-mem2mem.c > +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c > @@ -635,9 +635,9 @@ void v4l2_m2m_last_buffer_done(struct v4l2_m2m_ctx *m= 2m_ctx, > struct vb2_v4l2_buffer *vbuf) > { > vbuf->flags |=3D V4L2_BUF_FLAG_LAST; > - vb2_buffer_done(&vbuf->vb2_buf, VB2_BUF_STATE_DONE); > - > v4l2_m2m_mark_stopped(m2m_ctx); > + > + vb2_buffer_done(&vbuf->vb2_buf, VB2_BUF_STATE_DONE); While it most likely fix the issue while testing, since userspace most like= ly polls on that queue and don't touch the driver until the poll was signalled= , I strongly believe this is insufficient. When I look at vicodec and wave5, th= ey both add a layer of locking on top of the mem2mem framework to fix this iss= ue. I think this is unfortunate, but v4l2_m2m_mark_stopped() is backed by 3 boo= leans accessed in many places that aren't in any known atomic context. I think it would be nice to remove the spurious locking in drivers and try and fix thi= s issue in the framework itself. Nicolas > } > EXPORT_SYMBOL_GPL(v4l2_m2m_last_buffer_done); > =20