drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c | 7 +++++++ 1 file changed, 7 insertions(+)
From: Maud Spierings <maudspierings@gocontroll.com>
media_pad_remote_pad_first() can return NULL if no valid link is found.
Check for this possibility before dereferencing it in the next line.
Reported/investigated in [1]:
Link: https://lore.kernel.org/all/1536a61b-b405-4762-9fb4-7e257f95e49e@gocontroll.com/ [1]
Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver")
Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
---
I'm not sure if this should be a dev_dbg(), just following the pattern
around it for now, also not sure if EPIPE is the correct error.
---
drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
index ede6cc74c0234049fa225ad82aaddaad64aa53d7..1ed8b031178b7d934b04a8752747f556bd1fc5a9 100644
--- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
+++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
@@ -160,6 +160,13 @@ mxc_isi_crossbar_xlate_streams(struct mxc_isi_crossbar *xbar,
}
pad = media_pad_remote_pad_first(&xbar->pads[sink_pad]);
+
+ if (pad == NULL) {
+ dev_dbg(xbar->isi->dev, "no valid link found to pad %u\n",
+ sink_pad);
+ return ERR_PTR(-EPIPE);
+ }
+
sd = media_entity_to_v4l2_subdev(pad->entity);
if (!sd) {
dev_dbg(xbar->isi->dev,
---
base-commit: 3ac864c2d9bb8608ee236e89bf561811613abfce
change-id: 20250818-imx8_isi-954898628bb6
Best regards,
--
Maud Spierings <maudspierings@gocontroll.com>
Hi Maud, On Mon, Aug 18, 2025 at 02:31:43PM +0200, Maud Spierings via B4 Relay wrote: > From: Maud Spierings <maudspierings@gocontroll.com> > > media_pad_remote_pad_first() can return NULL if no valid link is found. > Check for this possibility before dereferencing it in the next line. > > Reported/investigated in [1]: > > Link: https://lore.kernel.org/all/1536a61b-b405-4762-9fb4-7e257f95e49e@gocontroll.com/ [1] > Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver") > Signed-off-by: Maud Spierings <maudspierings@gocontroll.com> > --- > I'm not sure if this should be a dev_dbg(), just following the pattern > around it for now, also not sure if EPIPE is the correct error. I've submitted https://lore.kernel.org/linux-media/20250820140021.8026-1-laurent.pinchart@ideasonboard.com, which should fix this issue in a more generic way. > --- > drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > index ede6cc74c0234049fa225ad82aaddaad64aa53d7..1ed8b031178b7d934b04a8752747f556bd1fc5a9 100644 > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > @@ -160,6 +160,13 @@ mxc_isi_crossbar_xlate_streams(struct mxc_isi_crossbar *xbar, > } > > pad = media_pad_remote_pad_first(&xbar->pads[sink_pad]); > + > + if (pad == NULL) { > + dev_dbg(xbar->isi->dev, "no valid link found to pad %u\n", > + sink_pad); > + return ERR_PTR(-EPIPE); > + } > + > sd = media_entity_to_v4l2_subdev(pad->entity); > if (!sd) { > dev_dbg(xbar->isi->dev, > > --- > base-commit: 3ac864c2d9bb8608ee236e89bf561811613abfce > change-id: 20250818-imx8_isi-954898628bb6 -- Regards, Laurent Pinchart
On 8/20/25 16:01, Laurent Pinchart wrote: > Hi Maud, > > On Mon, Aug 18, 2025 at 02:31:43PM +0200, Maud Spierings via B4 Relay wrote: >> From: Maud Spierings <maudspierings@gocontroll.com> >> >> media_pad_remote_pad_first() can return NULL if no valid link is found. >> Check for this possibility before dereferencing it in the next line. >> >> Reported/investigated in [1]: >> >> Link: https://lore.kernel.org/all/1536a61b-b405-4762-9fb4-7e257f95e49e@gocontroll.com/ [1] >> Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver") >> Signed-off-by: Maud Spierings <maudspierings@gocontroll.com> >> --- >> I'm not sure if this should be a dev_dbg(), just following the pattern >> around it for now, also not sure if EPIPE is the correct error. > > I've submitted > https://lore.kernel.org/linux-media/20250820140021.8026-1-laurent.pinchart@ideasonboard.com, > which should fix this issue in a more generic way. Saw it, but I think my patch technically is still correct as the function documentation states it can potentially return NULL right? [1] Link: https://www.kernel.org/doc/html/latest/driver-api/media/mc-core.html [1] I will test you patches tomorrow. >> --- >> drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c >> index ede6cc74c0234049fa225ad82aaddaad64aa53d7..1ed8b031178b7d934b04a8752747f556bd1fc5a9 100644 >> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c >> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c >> @@ -160,6 +160,13 @@ mxc_isi_crossbar_xlate_streams(struct mxc_isi_crossbar *xbar, >> } >> >> pad = media_pad_remote_pad_first(&xbar->pads[sink_pad]); >> + >> + if (pad == NULL) { >> + dev_dbg(xbar->isi->dev, "no valid link found to pad %u\n", >> + sink_pad); >> + return ERR_PTR(-EPIPE); >> + } >> + >> sd = media_entity_to_v4l2_subdev(pad->entity); >> if (!sd) { >> dev_dbg(xbar->isi->dev, >> >> --- >> base-commit: 3ac864c2d9bb8608ee236e89bf561811613abfce >> change-id: 20250818-imx8_isi-954898628bb6 >
On Wed, Aug 20, 2025 at 04:07:55PM +0200, Maud Spierings wrote: > On 8/20/25 16:01, Laurent Pinchart wrote: > > On Mon, Aug 18, 2025 at 02:31:43PM +0200, Maud Spierings via B4 Relay wrote: > >> From: Maud Spierings <maudspierings@gocontroll.com> > >> > >> media_pad_remote_pad_first() can return NULL if no valid link is found. > >> Check for this possibility before dereferencing it in the next line. > >> > >> Reported/investigated in [1]: > >> > >> Link: https://lore.kernel.org/all/1536a61b-b405-4762-9fb4-7e257f95e49e@gocontroll.com/ [1] > >> Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver") > >> Signed-off-by: Maud Spierings <maudspierings@gocontroll.com> > >> --- > >> I'm not sure if this should be a dev_dbg(), just following the pattern > >> around it for now, also not sure if EPIPE is the correct error. > > > > I've submitted > > https://lore.kernel.org/linux-media/20250820140021.8026-1-laurent.pinchart@ideasonboard.com, > > which should fix this issue in a more generic way. > > Saw it, but I think my patch technically is still correct as the > function documentation states it can potentially return NULL right? [1] The function documentation states "returns a pointer to the pad at the remote end of the first found enabled link, or NULL if no enabled link has been found." The MUST_CONNECT flag ensures that there is an enabled link, so the function can't return NULL. > Link: > https://www.kernel.org/doc/html/latest/driver-api/media/mc-core.html [1] > > I will test you patches tomorrow. > > >> --- > >> drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c | 7 +++++++ > >> 1 file changed, 7 insertions(+) > >> > >> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > >> index ede6cc74c0234049fa225ad82aaddaad64aa53d7..1ed8b031178b7d934b04a8752747f556bd1fc5a9 100644 > >> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > >> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > >> @@ -160,6 +160,13 @@ mxc_isi_crossbar_xlate_streams(struct mxc_isi_crossbar *xbar, > >> } > >> > >> pad = media_pad_remote_pad_first(&xbar->pads[sink_pad]); > >> + > >> + if (pad == NULL) { > >> + dev_dbg(xbar->isi->dev, "no valid link found to pad %u\n", > >> + sink_pad); > >> + return ERR_PTR(-EPIPE); > >> + } > >> + > >> sd = media_entity_to_v4l2_subdev(pad->entity); > >> if (!sd) { > >> dev_dbg(xbar->isi->dev, > >> > >> --- > >> base-commit: 3ac864c2d9bb8608ee236e89bf561811613abfce > >> change-id: 20250818-imx8_isi-954898628bb6 -- Regards, Laurent Pinchart
Maud... Laurent Yea you a Mad Lad. On Wed, Aug 20, 2025 at 10:19 AM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Wed, Aug 20, 2025 at 04:07:55PM +0200, Maud Spierings wrote: > > On 8/20/25 16:01, Laurent Pinchart wrote: > > > On Mon, Aug 18, 2025 at 02:31:43PM +0200, Maud Spierings via B4 Relay wrote: > > >> From: Maud Spierings <maudspierings@gocontroll.com> > > >> > > >> media_pad_remote_pad_first() can return NULL if no valid link is found. > > >> Check for this possibility before dereferencing it in the next line. > > >> > > >> Reported/investigated in [1]: > > >> > > >> Link: https://lore.kernel.org/all/1536a61b-b405-4762-9fb4-7e257f95e49e@gocontroll.com/ [1] > > >> Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver") > > >> Signed-off-by: Maud Spierings <maudspierings@gocontroll.com> > > >> --- > > >> I'm not sure if this should be a dev_dbg(), just following the pattern > > >> around it for now, also not sure if EPIPE is the correct error. > > > > > > I've submitted > > > https://lore.kernel.org/linux-media/20250820140021.8026-1-laurent.pinchart@ideasonboard.com, > > > which should fix this issue in a more generic way. > > > > Saw it, but I think my patch technically is still correct as the > > function documentation states it can potentially return NULL right? [1] > > The function documentation states > > "returns a pointer to the pad at the remote end of the first found > enabled link, or NULL if no enabled link has been found." > > The MUST_CONNECT flag ensures that there is an enabled link, so the > function can't return NULL. > > > Link: > > https://www.kernel.org/doc/html/latest/driver-api/media/mc-core.html [1] > > > > I will test you patches tomorrow. > > > > >> --- > > >> drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c | 7 +++++++ > > >> 1 file changed, 7 insertions(+) > > >> > > >> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > > >> index ede6cc74c0234049fa225ad82aaddaad64aa53d7..1ed8b031178b7d934b04a8752747f556bd1fc5a9 100644 > > >> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > > >> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c > > >> @@ -160,6 +160,13 @@ mxc_isi_crossbar_xlate_streams(struct mxc_isi_crossbar *xbar, > > >> } > > >> > > >> pad = media_pad_remote_pad_first(&xbar->pads[sink_pad]); > > >> + > > >> + if (pad == NULL) { > > >> + dev_dbg(xbar->isi->dev, "no valid link found to pad %u\n", > > >> + sink_pad); > > >> + return ERR_PTR(-EPIPE); > > >> + } > > >> + > > >> sd = media_entity_to_v4l2_subdev(pad->entity); > > >> if (!sd) { > > >> dev_dbg(xbar->isi->dev, > > >> > > >> --- > > >> base-commit: 3ac864c2d9bb8608ee236e89bf561811613abfce > > >> change-id: 20250818-imx8_isi-954898628bb6 > > -- > Regards, > > Laurent Pinchart >
© 2016 - 2025 Red Hat, Inc.