From: sashiko-bot@kernel.org
To: "Dumitru Ceclan" <dumitru.ceclan@analog.com>
Cc: conor+dt@kernel.org, robh@kernel.org, media-ci@linuxtv.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v16 01/22] media: mc: Add INTERNAL pad flag
Date: Mon, 31 Aug 2026 13:30:30 +0000 [thread overview]
Message-ID: <20260831133030.D84A81F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260831-gmsl2-3_serdes-v16-1-4fa6e08bb514@analog.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Fallback fwnode pad matching incorrectly maps external endpoints to internal pads.
--
commit 8c2ba56726bfa940940f5ffec523ef8ae74466ed
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date: Mon Aug 31 13:21:20 2026 +0000
media: mc: Add INTERNAL pad flag
Internal sink pads will be used as routing endpoints in V4L2 [GS]_ROUTING
IOCTLs, to indicate that the stream begins in the entity. Internal sink
pads are pads that have both SINK and INTERNAL flags set.
Also prevent creating links to pads that have been flagged as internal and
initialising SOURCE pads with INTERNAL flag set.
> diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
> index 3fa0bc687851b..7938f785e2e3c 100644
> --- a/drivers/media/mc/mc-entity.c
> +++ b/drivers/media/mc/mc-entity.c
[ ... ]
> @@ -1118,7 +1123,8 @@ int media_get_pad_index(struct media_entity *entity, u32 pad_type,
>
> for (i = 0; i < entity->num_pads; i++) {
> if ((entity->pads[i].flags &
> - (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE)) != pad_type)
> + (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE |
> + MEDIA_PAD_FL_INTERNAL)) != pad_type)
> continue;
>
> if (entity->pads[i].sig_type == sig_type)
[Severity: Medium]
Will this patch also require updating media_entity_get_fwnode_pad() to handle
internal pads?
Looking at the fallback logic when an entity doesn't implement the
get_fwnode_pad operation, it iterates over all pads and returns the first pad
matching direction_flags:
drivers/media/mc/mc-entity.c:media_entity_get_fwnode_pad() {
...
for (i = 0; i < entity->num_pads; i++) {
if (entity->pads[i].flags & direction_flags)
return i;
}
...
}
Because internal pads have both MEDIA_PAD_FL_SINK and MEDIA_PAD_FL_INTERNAL
set, the bitwise AND will evaluate to true if direction_flags is
MEDIA_PAD_FL_SINK.
If this matches an internal pad before an external pad, the core framework
would attempt to wire an external fwnode link to the internal pad. This would
subsequently trigger the newly introduced WARN_ON in media_create_pad_link()
and return -EINVAL, causing device probe and link creation to fail.
Could media_entity_get_fwnode_pad() be updated to exclude internal pads?
> @@ -1148,6 +1154,9 @@ media_create_pad_link(struct media_entity *source, u16 source_pad,
> return -EINVAL;
> if (WARN_ON(!(sink->pads[sink_pad].flags & MEDIA_PAD_FL_SINK)))
> return -EINVAL;
> + if (WARN_ON(source->pads[source_pad].flags & MEDIA_PAD_FL_INTERNAL) ||
> + WARN_ON(sink->pads[sink_pad].flags & MEDIA_PAD_FL_INTERNAL))
> + return -EINVAL;
>
> link = media_add_link(&source->links);
> if (link == NULL)
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260831-gmsl2-3_serdes-v16-0-4fa6e08bb514@analog.com?part=1
next prev parent reply other threads:[~2026-08-31 13:30 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 13:21 [PATCH v16 00/22] media: i2c: add Maxim GMSL2/3 serializer and deserializer drivers Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 01/22] media: mc: Add INTERNAL pad flag Dumitru Ceclan via B4 Relay
2026-08-31 13:30 ` sashiko-bot [this message]
2026-08-31 13:21 ` [PATCH v16 02/22] dt-bindings: media: i2c: max96717: add support for I2C ATR Dumitru Ceclan via B4 Relay
2026-08-31 13:35 ` sashiko-bot
2026-08-31 13:21 ` [PATCH v16 03/22] dt-bindings: media: i2c: max96717: add support for pinctrl/pinconf Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 04/22] dt-bindings: media: i2c: max96717: add support for MAX9295A Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 05/22] dt-bindings: media: i2c: max96717: add support for MAX96793 Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 06/22] dt-bindings: media: i2c: max96712: use pattern properties for ports Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 07/22] dt-bindings: media: i2c: max96712: add support for I2C ATR Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 08/22] dt-bindings: media: i2c: max96712: add support for POC supplies Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 09/22] dt-bindings: media: i2c: max96712: add support for MAX96724F/R Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 10/22] dt-bindings: media: i2c: max96712: add control-channel-port property Dumitru Ceclan via B4 Relay
2026-08-31 13:35 ` sashiko-bot
2026-08-31 13:21 ` [PATCH v16 11/22] dt-bindings: media: i2c: max96714: add support for MAX96714R Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 12/22] dt-bindings: media: i2c: add MAX9296A, MAX96716A, MAX96792A Dumitru Ceclan via B4 Relay
2026-08-31 13:36 ` sashiko-bot
2026-08-31 13:21 ` [PATCH v16 13/22] media: i2c: add Maxim GMSL2/3 serializer and deserializer framework Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 14/22] media: i2c: add Maxim GMSL2/3 serializer framework Dumitru Ceclan via B4 Relay
2026-08-31 13:47 ` sashiko-bot
2026-08-31 13:21 ` [PATCH v16 15/22] media: i2c: add Maxim GMSL2/3 deserializer framework Dumitru Ceclan via B4 Relay
2026-08-31 13:47 ` sashiko-bot
2026-08-31 13:21 ` [PATCH v16 16/22] media: i2c: remove MAX96717 driver Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 17/22] media: i2c: maxim-serdes: add " Dumitru Ceclan via B4 Relay
2026-08-31 13:49 ` sashiko-bot
2026-08-31 13:21 ` [PATCH v16 18/22] arm64: defconfig: disable deprecated MAX96712 driver Dumitru Ceclan via B4 Relay
2026-08-31 13:43 ` sashiko-bot
2026-08-31 13:21 ` [PATCH v16 19/22] staging: media: remove " Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 20/22] media: i2c: maxim-serdes: add MAX96724 driver Dumitru Ceclan via B4 Relay
2026-08-31 13:56 ` sashiko-bot
2026-08-31 13:21 ` [PATCH v16 21/22] media: i2c: remove MAX96714 driver Dumitru Ceclan via B4 Relay
2026-08-31 13:21 ` [PATCH v16 22/22] media: i2c: maxim-serdes: add MAX9296A driver Dumitru Ceclan via B4 Relay
2026-08-31 17:03 ` [PATCH v16 00/22] media: i2c: add Maxim GMSL2/3 serializer and deserializer drivers Niklas Söderlund
2026-09-01 7:39 ` Ceclan Dumitru
2026-09-01 7:43 ` Tomi Valkeinen
2026-09-02 8:37 ` Niklas Söderlund
2026-09-02 9:57 ` Tomi Valkeinen
2026-09-04 8:51 ` Sakari Ailus
2026-09-04 8:55 ` Tomi Valkeinen
2026-09-04 9:06 ` Niklas Söderlund
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=20260831133030.D84A81F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dumitru.ceclan@analog.com \
--cc=media-ci@linuxtv.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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