From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Hans Verkuil <hverkuil+cisco@kernel.org>
Cc: "Jacopo Mondi" <jacopo.mondi@ideasonboard.com>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"Devarsh Thakkar" <devarsht@ti.com>,
"Benoit Parrot" <bparrot@ti.com>,
"Hans Verkuil" <hverkuil@kernel.org>,
"Mike Isely" <isely@pobox.com>,
"Hans de Goede" <hansg@kernel.org>,
"Parthiban Veerasooran" <parthiban.veerasooran@microchip.com>,
"Christian Gromm" <christian.gromm@microchip.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Alex Shi" <alexs@kernel.org>,
"Yanteng Si" <si.yanteng@linux.dev>,
"Dongliang Mu" <dzm91@hust.edu.cn>,
"Jonathan Corbet" <corbet@lwn.net>,
"Tomasz Figa" <tfiga@chromium.org>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
"Andy Walls" <awalls@md.metrocast.net>,
"Michael Tretter" <m.tretter@pengutronix.de>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Bin Liu" <bin.liu@mediatek.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Dmitry Osipenko" <digetx@gmail.com>,
"Thierry Reding" <thierry.reding@gmail.com>,
"Jonathan Hunter" <jonathanh@nvidia.com>,
"Mirela Rabulea" <mirela.rabulea@nxp.com>,
"Shawn Guo" <shawnguo@kernel.org>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Fabio Estevam" <festevam@gmail.com>,
"Kieran Bingham" <kieran.bingham+renesas@ideasonboard.com>,
"Michal Simek" <michal.simek@amd.com>,
"Ming Qian" <ming.qian@nxp.com>, "Zhou Peng" <eagle.zhou@nxp.com>,
"Xavier Roumegue" <xavier.roumegue@oss.nxp.com>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Vikash Garodia" <quic_vgarodia@quicinc.com>,
"Dikshita Agarwal" <quic_dikshita@quicinc.com>,
"Abhinav Kumar" <abhinav.kumar@linux.dev>,
"Bryan O'Donoghue" <bryan.odonoghue@linaro.org>,
"Sylwester Nawrocki" <sylvester.nawrocki@gmail.com>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Chen-Yu Tsai" <wens@csie.org>,
"Samuel Holland" <samuel@sholland.org>,
"Daniel Almeida" <daniel.almeida@collabora.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Kevin Hilman" <khilman@baylibre.com>,
"Jerome Brunet" <jbrunet@baylibre.com>,
"Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
"Nas Chung" <nas.chung@chipsnmedia.com>,
"Jackson Lee" <jackson.lee@chipsnmedia.com>,
"Minghsiu Tsai" <minghsiu.tsai@mediatek.com>,
"Houlong Wei" <houlong.wei@mediatek.com>,
"Andrew-CT Chen" <andrew-ct.chen@mediatek.com>,
"Tiffany Lin" <tiffany.lin@mediatek.com>,
"Yunfei Dong" <yunfei.dong@mediatek.com>,
"Geert Uytterhoeven" <geert+renesas@glider.be>,
"Magnus Damm" <magnus.damm@gmail.com>,
"Mikhail Ulyanov" <mikhail.ulyanov@cogentembedded.com>,
"Jacob Chen" <jacob-chen@iotwrt.com>,
"Ezequiel Garcia" <ezequiel@vanguardiasur.com.ar>,
"Heiko Stuebner" <heiko@sntech.de>,
"Detlev Casanova" <detlev.casanova@collabora.com>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Alim Akhtar" <alim.akhtar@samsung.com>,
"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
"Łukasz Stelmach" <l.stelmach@samsung.com>,
"Andrzej Pietrasiewicz" <andrzejtp2010@gmail.com>,
"Jacek Anaszewski" <jacek.anaszewski@gmail.com>,
"Andrzej Hajda" <andrzej.hajda@intel.com>,
"Fabien Dessenne" <fabien.dessenne@foss.st.com>,
"Hugues Fruchet" <hugues.fruchet@foss.st.com>,
"Jean-Christophe Trotin" <jean-christophe.trotin@foss.st.com>,
"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
"Nicolas Dufresne" <nicolas.dufresne@collabora.com>,
"Benjamin Gaignard" <benjamin.gaignard@collabora.com>,
"Steve Longerbeam" <slongerbeam@gmail.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Paul Kocialkowski" <paulk@sys-base.io>,
"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
"Robert Foss" <rfoss@kernel.org>,
"Todor Tomov" <todor.too@gmail.com>,
"Vladimir Zapolskiy" <vladimir.zapolskiy@linaro.org>,
"Corentin Labbe" <clabbe@baylibre.com>,
"Sakari Ailus" <sakari.ailus@linux.intel.com>,
"Bingbu Cao" <bingbu.cao@intel.com>,
"Tianshu Qiu" <tian.shu.qiu@intel.com>,
"Stanislaw Gruszka" <stanislaw.gruszka@linux.intel.com>,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-staging@lists.linux.dev, linux-doc@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-tegra@vger.kernel.org,
imx@lists.linux.dev, linux-renesas-soc@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
linux-sunxi@lists.linux.dev, linux-usb@vger.kernel.org,
linux-amlogic@lists.infradead.org,
linux-rockchip@lists.infradead.org,
linux-stm32@st-md-mailman.stormreply.com,
mjpeg-users@lists.sourceforge.net
Subject: Re: [PATCH 27/65] media: Reset file->private_data to NULL in v4l2_fh_del()
Date: Fri, 8 Aug 2025 09:30:11 +0300 [thread overview]
Message-ID: <20250808063011.GJ11583@pendragon.ideasonboard.com> (raw)
In-Reply-To: <7605f778-6b20-47e4-bd65-7a0d85fff736@kernel.org>
On Thu, Aug 07, 2025 at 10:51:27PM +0200, Hans Verkuil wrote:
> On 07/08/2025 22:25, Laurent Pinchart wrote:
> > On Thu, Aug 07, 2025 at 08:00:06PM +0300, Laurent Pinchart wrote:
> >> On Thu, Aug 07, 2025 at 11:50:07AM +0300, Laurent Pinchart wrote:
> >>> On Wed, Aug 06, 2025 at 02:45:14PM +0200, Hans Verkuil wrote:
> >>>> On 02/08/2025 11:22, Jacopo Mondi wrote:
> >>>>> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>>>>
> >>>>> Multiple drivers that use v4l2_fh and call v4l2_fh_del() manually reset
> >>>>> the file->private_data pointer to NULL in their video device .release()
> >>>>> file operation handler. Move the code to the v4l2_fh_del() function to
> >>>>> avoid direct access to file->private_data in drivers. This requires
> >>>>> adding a file pointer argument to the function.
> >>>>>
> >>>>> Changes to drivers have been generated with the following coccinelle
> >>>>> semantic patch:
> >>>>>
> >>>>> @@
> >>>>> expression fh;
> >>>>> identifier filp;
> >>>>> identifier release;
> >>>>> type ret;
> >>>>> @@
> >>>>> ret release(..., struct file *filp, ...)
> >>>>> {
> >>>>> <...
> >>>>> - filp->private_data = NULL;
> >>>>> ...
> >>>>> - v4l2_fh_del(fh);
> >>>>> + v4l2_fh_del(fh, filp);
> >>>>> ...>
> >>>>> }
> >>>>>
> >>>>> @@
> >>>>> expression fh;
> >>>>> identifier filp;
> >>>>> identifier release;
> >>>>> type ret;
> >>>>> @@
> >>>>> ret release(..., struct file *filp, ...)
> >>>>> {
> >>>>> <...
> >>>>> - v4l2_fh_del(fh);
> >>>>> + v4l2_fh_del(fh, filp);
> >>>>> ...
> >>>>> - filp->private_data = NULL;
> >>>>> ...>
> >>>>> }
> >>>>>
> >>>>> @@
> >>>>> expression fh;
> >>>>> identifier filp;
> >>>>> identifier release;
> >>>>> type ret;
> >>>>> @@
> >>>>> ret release(..., struct file *filp, ...)
> >>>>> {
> >>>>> <...
> >>>>> - v4l2_fh_del(fh);
> >>>>> + v4l2_fh_del(fh, filp);
> >>>>> ...>
> >>>>> }
> >>>>>
> >>>>> Manual changes have been applied to Documentation/ to update the usage
> >>>>> patterns, to drivers/media/v4l2-core/v4l2-fh.c to update the
> >>>>> v4l2_fh_del() prototype and reset file->private_data, and to
> >>>>> include/media/v4l2-fh.h to update the v4l2_fh_del() function prototype
> >>>>> and its documentation.
> >>>>>
> >>>>> Additionally, white space issues have been fixed manually in
> >>>>> drivers/usb/gadget/function/uvc_v4l2.c
> >>>>>
> >>>>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>>>> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> >>>>> ---
> >>>>> Documentation/driver-api/media/v4l2-fh.rst | 4 ++--
> >>>>> Documentation/translations/zh_CN/video4linux/v4l2-framework.txt | 4 ++--
> >>>>> drivers/media/pci/cx18/cx18-fileops.c | 4 ++--
> >>>>> drivers/media/pci/ivtv/ivtv-fileops.c | 4 ++--
> >>>>> drivers/media/pci/saa7164/saa7164-encoder.c | 2 +-
> >>>>> drivers/media/pci/saa7164/saa7164-vbi.c | 2 +-
> >>>>> drivers/media/platform/allegro-dvt/allegro-core.c | 2 +-
> >>>>> drivers/media/platform/amlogic/meson-ge2d/ge2d.c | 2 +-
> >>>>> drivers/media/platform/amphion/vpu_v4l2.c | 4 ++--
> >>>>> drivers/media/platform/chips-media/coda/coda-common.c | 4 ++--
> >>>>> drivers/media/platform/chips-media/wave5/wave5-helper.c | 2 +-
> >>>>> drivers/media/platform/imagination/e5010-jpeg-enc.c | 4 ++--
> >>>>> drivers/media/platform/m2m-deinterlace.c | 2 +-
> >>>>> drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c | 4 ++--
> >>>>> drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c | 4 ++--
> >>>>> drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c | 4 ++--
> >>>>> .../media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c | 4 ++--
> >>>>> .../media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c | 4 ++--
> >>>>> drivers/media/platform/nvidia/tegra-vde/v4l2.c | 2 +-
> >>>>> drivers/media/platform/nxp/dw100/dw100.c | 2 +-
> >>>>> drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 4 ++--
> >>>>> drivers/media/platform/nxp/imx-pxp.c | 2 +-
> >>>>> drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c | 2 +-
> >>>>> drivers/media/platform/nxp/mx2_emmaprp.c | 2 +-
> >>>>> drivers/media/platform/qcom/iris/iris_vidc.c | 3 +--
> >>>>> drivers/media/platform/qcom/venus/core.c | 2 +-
> >>>>> drivers/media/platform/renesas/rcar_fdp1.c | 2 +-
> >>>>> drivers/media/platform/renesas/rcar_jpu.c | 4 ++--
> >>>>> drivers/media/platform/renesas/vsp1/vsp1_video.c | 2 +-
> >>>>> drivers/media/platform/rockchip/rga/rga.c | 2 +-
> >>>>> drivers/media/platform/rockchip/rkvdec/rkvdec.c | 2 +-
> >>>>> drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c | 4 ++--
> >>>>> drivers/media/platform/samsung/exynos4-is/fimc-m2m.c | 4 ++--
> >>>>> drivers/media/platform/samsung/s5p-g2d/g2d.c | 2 +-
> >>>>> drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c | 4 ++--
> >>>>> drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c | 4 ++--
> >>>>> drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c | 4 ++--
> >>>>> drivers/media/platform/st/sti/delta/delta-v4l2.c | 4 ++--
> >>>>> drivers/media/platform/st/sti/hva/hva-v4l2.c | 4 ++--
> >>>>> drivers/media/platform/st/stm32/dma2d/dma2d.c | 2 +-
> >>>>> drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 2 +-
> >>>>> drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c | 2 +-
> >>>>> drivers/media/platform/ti/omap3isp/ispvideo.c | 5 ++---
> >>>>> drivers/media/platform/ti/vpe/vpe.c | 2 +-
> >>>>> drivers/media/platform/verisilicon/hantro_drv.c | 4 ++--
> >>>>> drivers/media/test-drivers/vicodec/vicodec-core.c | 2 +-
> >>>>> drivers/media/test-drivers/vim2m.c | 2 +-
> >>>>> drivers/media/test-drivers/visl/visl-core.c | 2 +-
> >>>>> drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 3 +--
> >>>>> drivers/media/v4l2-core/v4l2-fh.c | 7 ++++---
> >>>>> drivers/media/v4l2-core/v4l2-subdev.c | 5 ++---
> >>>>> drivers/staging/media/imx/imx-media-csc-scaler.c | 4 ++--
> >>>>> drivers/staging/media/meson/vdec/vdec.c | 2 +-
> >>>>> drivers/staging/media/sunxi/cedrus/cedrus.c | 2 +-
> >>>>> drivers/staging/most/video/video.c | 4 ++--
> >>>>> drivers/usb/gadget/function/uvc_v4l2.c | 3 +--
> >>>>> include/media/v4l2-fh.h | 5 ++++-
> >>>>> 57 files changed, 89 insertions(+), 90 deletions(-)
> >>>>>
> >>>>
> >>>> <snip>
> >>>>
> >>>>> diff --git a/drivers/media/v4l2-core/v4l2-fh.c b/drivers/media/v4l2-core/v4l2-fh.c
> >>>>> index b59b1084d8cdf1b62da12879e21dbe56c2109648..df3ba9d4674bd25626cfcddc2d0cb28c233e3cc3 100644
> >>>>> --- a/drivers/media/v4l2-core/v4l2-fh.c
> >>>>> +++ b/drivers/media/v4l2-core/v4l2-fh.c
> >>>>> @@ -67,7 +67,7 @@ int v4l2_fh_open(struct file *filp)
> >>>>> }
> >>>>> EXPORT_SYMBOL_GPL(v4l2_fh_open);
> >>>>>
> >>>>> -void v4l2_fh_del(struct v4l2_fh *fh)
> >>>>> +void v4l2_fh_del(struct v4l2_fh *fh, struct file *filp)
> >>>>
> >>>> Instead of adding a second argument, perhaps it is better to
> >>>> just provide the filp pointer. After all, you can get the v4l2_fh
> >>>> from filp->private_data.
> >>>>
> >>>> It simplifies the code a bit.
> >>>
> >>> That's an interesting idea. I'll give it a try.
> >>
> >> We end up with code like (e.g. in v4l2_fh_release(), with similar
> >> constructs in lots of drivers)
> >>
> >> if (fh) {
> >> v4l2_fh_del(filp);
> >> v4l2_fh_exit(fh);
> >> kfree(fh);
> >> }
> >>
> >> compared to
> >>
> >> if (fh) {
> >> v4l2_fh_del(fh, filp);
> >> v4l2_fh_exit(fh);
> >> kfree(fh);
> >> }
> >>
> >> with the existing patch. I find the fact that v4l2_fh_del() takes a
> >> different pointer than v4l2_fh_exit() a bit disturbing. If you think
> >> it's better I'll drop the fh argument in v2.
> >
> > I gave it a try, and looking at the function prototype, its
> > documentation, the imbalance with v4l2_fh_add(), and the code in the
> > callers, I think keeping both arguments would look cleaner. Please tell
> > me if you feel strongly about this, I can still submit a patch to drop
> > the argument. It can very easily be scripted with coccinelle and doesn't
> > conflict with the rest of the series, so it could also be done later.
>
> Looking at all the drivers that call v4l2_fh_del/exit I always see v4l2_fh_del()
> directly followed by v4l2_fh_exit(). I think it would make a lot of sense to just
> combine the two as a single function: v4l2_fh_del_exit(filp).
>
> That simplifies the code and solves the imbalance.
I'll try that as a separate patch on top of this one. Keeping the two
separate will ease review (both patches will be simpler, and will be
generated by coccinelle), and will also make it easier to drop the
second patch if we decide it's not the way to go.
> >>>>> {
> >>>>> unsigned long flags;
> >>>>>
> >>>>> @@ -75,6 +75,8 @@ void v4l2_fh_del(struct v4l2_fh *fh)
> >>>>> list_del_init(&fh->list);
> >>>>> spin_unlock_irqrestore(&fh->vdev->fh_lock, flags);
> >>>>> v4l2_prio_close(fh->vdev->prio, fh->prio);
> >>>>> +
> >>>>> + filp->private_data = NULL;
> >>>>> }
> >>>>> EXPORT_SYMBOL_GPL(v4l2_fh_del);
> >>>>>
> >>>>> @@ -94,10 +96,9 @@ int v4l2_fh_release(struct file *filp)
> >>>>> struct v4l2_fh *fh = file_to_v4l2_fh(filp);
> >>>>>
> >>>>> if (fh) {
> >>>>> - v4l2_fh_del(fh);
> >>>>> + v4l2_fh_del(fh, filp);
> >>>>> v4l2_fh_exit(fh);
> >>>>> kfree(fh);
> >>>>> - filp->private_data = NULL;
> >>>>> }
> >>>>> return 0;
> >>>>> }
> >>>>
> >>>> <snip>
> >>>>
> >>>>> diff --git a/include/media/v4l2-fh.h b/include/media/v4l2-fh.h
> >>>>> index d8fcf49f10e09452b73499f4a9bd1285bc2835a5..5e4c761635120608e0b588e0b0daf63e69588d38 100644
> >>>>> --- a/include/media/v4l2-fh.h
> >>>>> +++ b/include/media/v4l2-fh.h
> >>>>> @@ -114,12 +114,15 @@ int v4l2_fh_open(struct file *filp);
> >>>>> * v4l2_fh_del - Remove file handle from the list of file handles.
> >>>>> *
> >>>>> * @fh: pointer to &struct v4l2_fh
> >>>>> + * @filp: pointer to &struct file associated with @fh
> >>>>> + *
> >>>>> + * The function resets filp->private_data to NULL.
> >>>>> *
> >>>>> * .. note::
> >>>>> * Must be called in v4l2_file_operations->release\(\) handler if the driver
> >>>>> * uses &struct v4l2_fh.
> >>>>> */
> >>>>> -void v4l2_fh_del(struct v4l2_fh *fh);
> >>>>> +void v4l2_fh_del(struct v4l2_fh *fh, struct file *filp);
> >>>>>
> >>>>> /**
> >>>>> * v4l2_fh_exit - Release resources related to a file handle.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2025-08-08 6:30 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-02 9:22 [PATCH 00/65] media: Rationalise usage of v4l2_fh Jacopo Mondi
2025-08-02 9:22 ` [PATCH 01/65] media: pci: saa7164: Store v4l2_fh pointer in file->private_data Jacopo Mondi
2025-08-02 9:22 ` [PATCH 02/65] media: imagination: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 03/65] media: ti: vpe: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 04/65] media: usb: hdpvr: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 05/65] media: usb: pvrusb2: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 06/65] media: usb: uvcvideo: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 07/65] media: staging: most: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 08/65] media: Wrap file->private_data access with a helper function Jacopo Mondi
2025-08-02 9:22 ` [PATCH 09/65] media: Replace file->private_data access with file_to_v4l2_fh() Jacopo Mondi
2025-08-02 9:22 ` [PATCH 10/65] media: nvidia: tegra-vde: Replace file->private_data access Jacopo Mondi
2025-08-02 9:22 ` [PATCH 11/65] media: Replace file->private_data access with custom functions Jacopo Mondi
2025-08-06 8:16 ` Hans Verkuil
2025-08-06 9:48 ` Laurent Pinchart
2025-08-06 10:23 ` Hans Verkuil
2025-08-18 14:10 ` Lukasz Stelmach
2025-08-02 9:22 ` [PATCH 12/65] media: pci: ivtv: Don't create fake v4l2_fh Jacopo Mondi
2025-08-02 9:22 ` [PATCH 13/65] media: amphion: Make some vpu_v4l2 functions static Jacopo Mondi
2025-08-05 1:34 ` [EXT] " Ming Qian
2025-08-02 9:22 ` [PATCH 14/65] media: amphion: Delete v4l2_fh synchronously in .release() Jacopo Mondi
2025-08-05 1:43 ` [EXT] " Ming Qian
2025-08-02 9:22 ` [PATCH 15/65] media: visl: Drop visl_v4l2fh_to_ctx() function Jacopo Mondi
2025-08-02 9:22 ` [PATCH 16/65] media: v4l2-fh: Move piece of documentation to correct function Jacopo Mondi
2025-08-02 9:22 ` [PATCH 17/65] media: rcar-vin: Do not set file->private_data Jacopo Mondi
2025-08-02 13:26 ` Niklas Söderlund
2025-08-02 9:22 ` [PATCH 18/65] media: rzg2l-cru: " Jacopo Mondi
2025-08-04 10:01 ` Tommaso Merciai
2025-08-02 9:22 ` [PATCH 19/65] media: camss: Replace .open() file operation with v4l2_fh_open() Jacopo Mondi
2025-08-24 19:04 ` Vladimir Zapolskiy
2025-08-02 9:22 ` [PATCH 20/65] media: camss: Remove custom .release fop() Jacopo Mondi
2025-08-24 19:07 ` Vladimir Zapolskiy
2025-08-02 9:22 ` [PATCH 21/65] media: chips-media: wave5: Pass file pointer to wave5_cleanup_instance() Jacopo Mondi
2025-08-02 9:22 ` [PATCH 22/65] media: qcom: iris: Pass file pointer to iris_v4l2_fh_(de)init() Jacopo Mondi
2025-08-02 9:22 ` [PATCH 23/65] media: qcom: iris: Set file->private_data in iris_v4l2_fh_(de)init() Jacopo Mondi
2025-08-02 9:22 ` [PATCH 24/65] media: qcom: iris: Drop unused argument to iris_get_inst() Jacopo Mondi
2025-08-02 9:22 ` [PATCH 25/65] media: qcom: venus: Pass file pointer to venus_close_common() Jacopo Mondi
2025-08-02 9:22 ` [PATCH 26/65] media: Set file->private_data in v4l2_fh_add() Jacopo Mondi
2025-08-02 9:22 ` [PATCH 27/65] media: Reset file->private_data to NULL in v4l2_fh_del() Jacopo Mondi
2025-08-06 12:45 ` Hans Verkuil
2025-08-07 8:50 ` Laurent Pinchart
2025-08-07 17:00 ` Laurent Pinchart
2025-08-07 20:25 ` Laurent Pinchart
2025-08-07 20:51 ` Hans Verkuil
2025-08-08 6:30 ` Laurent Pinchart [this message]
2025-08-18 14:12 ` Lukasz Stelmach
2025-08-02 9:22 ` [PATCH 28/65] media: v4l2-ioctl: Access v4l2_fh from private_data Jacopo Mondi
2025-08-02 9:22 ` [PATCH 29/65] media: allegro: Access v4l2_fh from file Jacopo Mondi
2025-08-05 7:39 ` Michael Tretter
2025-08-02 9:22 ` [PATCH 30/65] media: meson-ge2d: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 31/65] media: coda: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 32/65] media: wave5: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 33/65] media: m2m-deinterlace: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 34/65] media: mtk: jpeg: Access v4l2_fh from file->private_data Jacopo Mondi
2025-08-02 9:22 ` [PATCH 35/65] media: mtk_mdp_m2m: Access v4l2_fh from file Jacopo Mondi
2025-08-02 9:22 ` [PATCH 36/65] media: mtk: mdp3: " Jacopo Mondi
2025-08-02 9:22 ` [PATCH 37/65] media: mtk: vcodec: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 38/65] media: tegra-vde: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 39/65] media: imx-jpeg: " Jacopo Mondi
2025-08-05 1:58 ` [EXT] " Ming Qian
2025-08-02 9:23 ` [PATCH 40/65] media: imx-isi: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 41/65] media: nxp: mx2: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 42/65] media: renesas: " Jacopo Mondi
2025-08-05 9:59 ` Kieran Bingham
2025-08-02 9:23 ` [PATCH 43/65] media: rockhip: rga: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 44/65] media: rockchip: rkvdec: " Jacopo Mondi
2025-08-02 16:02 ` Detlev Casanova
2025-08-02 9:23 ` [PATCH 45/65] media: exynos-gsc: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 46/65] media: exynos4-is: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 47/65] media: s3c-camif: Set queue owner using file Jacopo Mondi
2025-08-02 9:23 ` [PATCH 48/65] media: s5p-g2d: Access v4l2_fh from file Jacopo Mondi
2025-08-02 9:23 ` [PATCH 49/65] media: s5p-jpeg: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 50/65] media: s5p-mfc: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 51/65] media: bdisp: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 52/65] media: st: delta: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 53/65] media: stm32: dma2d: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 54/65] media: hantro: Access v4l2_fh from file->private_data Jacopo Mondi
2025-08-04 21:59 ` Paul Kocialkowski
2025-08-02 9:23 ` [PATCH 55/65] media: omap3isp: Access v4l2_fh from file Jacopo Mondi
2025-08-02 9:23 ` [PATCH 56/65] media: cx18: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 57/65] media: ivtv: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 58/65] media: zoran: Remove access to __fh Jacopo Mondi
2025-08-07 6:58 ` Hans Verkuil
2025-08-07 12:31 ` Laurent Pinchart
2025-08-07 13:18 ` Hans Verkuil
2025-08-02 9:23 ` [PATCH 59/65] media: usb: hdpvr: Access v4l2_fh from file Jacopo Mondi
2025-08-02 9:23 ` [PATCH 60/65] media: usb: uvc: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 61/65] media: staging: imx: " Jacopo Mondi
2025-08-02 9:23 ` [PATCH 62/65] media: v4l2-ctrls: Move v4l2_fh retrieval after V4L2_FL_USES_V4L2_FH check Jacopo Mondi
2025-08-02 9:23 ` [PATCH 63/65] media: ipu6: isys: Don't set V4L2_FL_USES_V4L2_FH manually Jacopo Mondi
2025-08-08 1:01 ` Cao, Bingbu
2025-08-08 7:22 ` Sakari Ailus
2025-08-02 9:23 ` [PATCH 64/65] media: staging: ipu7: " Jacopo Mondi
2025-08-07 9:07 ` Sakari Ailus
2025-08-07 17:01 ` Laurent Pinchart
2025-08-08 7:22 ` Sakari Ailus
2025-08-02 9:23 ` [PATCH 65/65] media: v4l2-ioctl: Stop passing fh pointer to ioctl handlers Jacopo Mondi
2025-08-07 7:26 ` Hans Verkuil
2025-08-07 7:58 ` Hans Verkuil
2025-08-07 20:33 ` Laurent Pinchart
2025-08-07 20:55 ` Hans Verkuil
2025-08-08 7:00 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250808063011.GJ11583@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=abhinav.kumar@linux.dev \
--cc=alexandre.torgue@foss.st.com \
--cc=alexs@kernel.org \
--cc=alim.akhtar@samsung.com \
--cc=andrew-ct.chen@mediatek.com \
--cc=andrzej.hajda@intel.com \
--cc=andrzejtp2010@gmail.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=awalls@md.metrocast.net \
--cc=benjamin.gaignard@collabora.com \
--cc=bin.liu@mediatek.com \
--cc=bingbu.cao@intel.com \
--cc=bparrot@ti.com \
--cc=bryan.odonoghue@linaro.org \
--cc=christian.gromm@microchip.com \
--cc=clabbe@baylibre.com \
--cc=corbet@lwn.net \
--cc=daniel.almeida@collabora.com \
--cc=detlev.casanova@collabora.com \
--cc=devarsht@ti.com \
--cc=digetx@gmail.com \
--cc=dzm91@hust.edu.cn \
--cc=eagle.zhou@nxp.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=fabien.dessenne@foss.st.com \
--cc=festevam@gmail.com \
--cc=geert+renesas@glider.be \
--cc=gregkh@linuxfoundation.org \
--cc=hansg@kernel.org \
--cc=heiko@sntech.de \
--cc=houlong.wei@mediatek.com \
--cc=hugues.fruchet@foss.st.com \
--cc=hverkuil+cisco@kernel.org \
--cc=hverkuil@kernel.org \
--cc=imx@lists.linux.dev \
--cc=isely@pobox.com \
--cc=jacek.anaszewski@gmail.com \
--cc=jackson.lee@chipsnmedia.com \
--cc=jacob-chen@iotwrt.com \
--cc=jacopo.mondi@ideasonboard.com \
--cc=jbrunet@baylibre.com \
--cc=jean-christophe.trotin@foss.st.com \
--cc=jernej.skrabec@gmail.com \
--cc=jonathanh@nvidia.com \
--cc=kernel@pengutronix.de \
--cc=khilman@baylibre.com \
--cc=kieran.bingham+renesas@ideasonboard.com \
--cc=krzk@kernel.org \
--cc=l.stelmach@samsung.com \
--cc=linux-amlogic@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux-sunxi@lists.linux.dev \
--cc=linux-tegra@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=m.tretter@pengutronix.de \
--cc=magnus.damm@gmail.com \
--cc=martin.blumenstingl@googlemail.com \
--cc=matthias.bgg@gmail.com \
--cc=mchehab@kernel.org \
--cc=mcoquelin.stm32@gmail.com \
--cc=michal.simek@amd.com \
--cc=mikhail.ulyanov@cogentembedded.com \
--cc=ming.qian@nxp.com \
--cc=minghsiu.tsai@mediatek.com \
--cc=mirela.rabulea@nxp.com \
--cc=mjpeg-users@lists.sourceforge.net \
--cc=mripard@kernel.org \
--cc=nas.chung@chipsnmedia.com \
--cc=neil.armstrong@linaro.org \
--cc=nicolas.dufresne@collabora.com \
--cc=niklas.soderlund@ragnatech.se \
--cc=p.zabel@pengutronix.de \
--cc=parthiban.veerasooran@microchip.com \
--cc=paulk@sys-base.io \
--cc=quic_dikshita@quicinc.com \
--cc=quic_vgarodia@quicinc.com \
--cc=rfoss@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=s.nawrocki@samsung.com \
--cc=sakari.ailus@linux.intel.com \
--cc=samuel@sholland.org \
--cc=shawnguo@kernel.org \
--cc=si.yanteng@linux.dev \
--cc=slongerbeam@gmail.com \
--cc=stanislaw.gruszka@linux.intel.com \
--cc=sylvester.nawrocki@gmail.com \
--cc=tfiga@chromium.org \
--cc=thierry.reding@gmail.com \
--cc=tian.shu.qiu@intel.com \
--cc=tiffany.lin@mediatek.com \
--cc=todor.too@gmail.com \
--cc=vladimir.zapolskiy@linaro.org \
--cc=wens@csie.org \
--cc=xavier.roumegue@oss.nxp.com \
--cc=yunfei.dong@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox