* [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach()
@ 2025-10-28 10:15 Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 1/6] drm/sti: hda: add bridge before attaching Luca Ceresoli
` (7 more replies)
0 siblings, 8 replies; 13+ messages in thread
From: Luca Ceresoli @ 2025-10-28 10:15 UTC (permalink / raw)
To: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Raphael Gallais-Pou, Andy Yan
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel, Luca Ceresoli
This small series enforces that DRM bridges must be added before they are
attached as discussed in [1].
This is part of the work towards removal of bridges from a still existing
DRM pipeline without use-after-free. The grand plan was discussed in [0].
Here's the work breakdown (➜ marks the current series):
1. ➜ add refcounting to DRM bridges (struct drm_bridge)
(based on devm_drm_bridge_alloc() [0])
A. ✔ add new alloc API and refcounting (v6.16)
B. ✔ convert all bridge drivers to new API (v6.17)
C. ✔ kunit tests (v6.17)
D. ✔ add get/put to drm_bridge_add/remove() + attach/detach()
and warn on old allocation pattern (v6.17)
E. ➜ add get/put on drm_bridge accessors
1. ✔ drm_bridge_chain_get_first_bridge(), add cleanup action (v6.18)
2. ✔ drm_bridge_get_prev_bridge() (v6.18)
3. ✔ drm_bridge_get_next_bridge() (v6.19)
4. ✔ drm_for_each_bridge_in_chain() (v6.19)
5. ✔ drm_bridge_connector_init (v6.19)
6. … protect encoder bridge chain with a mutex
7. of_drm_find_bridge
8. drm_of_find_panel_or_bridge, *_of_get_bridge
9. ➜ enforce drm_bridge_add before drm_bridge_attach
F. ✔ debugfs improvements
1. ✔ add top-level 'bridges' file (v6.16)
2. ✔ show refcount and list lingering bridges (v6.19)
2. … handle gracefully atomic updates during bridge removal
A. … Add drm_dev_enter/exit() to protect device resources
B. … protect private_obj removal from list
3. … DSI host-device driver interaction
4. ✔ removing the need for the "always-disconnected" connector
5. finish the hotplug bridge work, moving code to the core and potentially
removing the hotplug-bridge itself (this needs to be clarified as
points 1-3 are developed)
Series layout:
- patches 1-2: add missing drm_bridge_add() to the 2 drivers known for not
calling it
- patch 3: document that drm_bridge_add() is required before attach
- patch 4: add a warning in drm_bridge_attach() is drm_bridge_add() was
not called
- patch 5: add a warning for bridges missing both devm_drm_bridge_alloc()
and drm_bridge_add()
The added warning might reveal more non-compliant drivers, in that case
they will be fixed as they are found.
[0] https://lore.kernel.org/lkml/20250206-hotplug-drm-bridge-v6-0-9d6f2c9c3058@bootlin.com/#t
[1] https://lore.kernel.org/all/20250709-sophisticated-loon-of-rain-6ccdd8@houat/
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changes in v3:
- Searched for any remaining drivers not calling drm_bridge_add(); found 1,
added patch 6 to convert it
- Added Suggested-by which was missing in patch 4, removed misplaced Link: tags
- Added review tags to patches 1-2
- Link to v2: https://lore.kernel.org/r/20251021-b4-drm-bridge-alloc-add-before-attach-v2-0-c17cc1bbff72@bootlin.com
Changes in v2:
- Added patch 5
- Added review tags to patches 1-4 (patches unchanged)
- Link to v1: https://lore.kernel.org/r/20251003-b4-drm-bridge-alloc-add-before-attach-v1-0-92fb40d27704@bootlin.com
---
Luca Ceresoli (6):
drm/sti: hda: add bridge before attaching
drm/sti: hdmi: add bridge before attaching
drm/bridge: document that adding a bridge is mandatory before attach
drm/bridge: add warning for bridges attached without being added
drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add()
drm/bridge: synopsys: dw-dp: add bridge before attaching
drivers/gpu/drm/bridge/synopsys/dw-dp.c | 2 ++
drivers/gpu/drm/drm_bridge.c | 9 +++++++++
drivers/gpu/drm/sti/sti_hda.c | 5 +++++
drivers/gpu/drm/sti/sti_hdmi.c | 2 ++
4 files changed, 18 insertions(+)
---
base-commit: 761105adbbac91d00a9662e54de1c55513556a48
change-id: 20251003-b4-drm-bridge-alloc-add-before-attach-ef312c0b8a8c
Best regards,
--
Luca Ceresoli <luca.ceresoli@bootlin.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v3 1/6] drm/sti: hda: add bridge before attaching
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
@ 2025-10-28 10:15 ` Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 2/6] drm/sti: hdmi: " Luca Ceresoli
` (6 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Luca Ceresoli @ 2025-10-28 10:15 UTC (permalink / raw)
To: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Raphael Gallais-Pou, Andy Yan
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel, Luca Ceresoli
DRM bridges should be always added to the global bridge list before being
attached.
Acked-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
Acked-by: Alain Volmat <alain.volmat@foss.st.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changes in v3:
- removed misplaced 'Link:' tag
---
drivers/gpu/drm/sti/sti_hda.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
index 2c015f563de96ae58959801493ead870c49f70e5..b7397827889c94d6f8e8c2a48b09f06e29ceeaf7 100644
--- a/drivers/gpu/drm/sti/sti_hda.c
+++ b/drivers/gpu/drm/sti/sti_hda.c
@@ -779,6 +779,8 @@ static int sti_hda_probe(struct platform_device *pdev)
return PTR_ERR(hda->clk_hddac);
}
+ drm_bridge_add(&hda->bridge);
+
platform_set_drvdata(pdev, hda);
return component_add(&pdev->dev, &sti_hda_ops);
@@ -786,7 +788,10 @@ static int sti_hda_probe(struct platform_device *pdev)
static void sti_hda_remove(struct platform_device *pdev)
{
+ struct sti_hda *hda = platform_get_drvdata(pdev);
+
component_del(&pdev->dev, &sti_hda_ops);
+ drm_bridge_remove(&hda->bridge);
}
static const struct of_device_id hda_of_match[] = {
--
2.51.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 2/6] drm/sti: hdmi: add bridge before attaching
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 1/6] drm/sti: hda: add bridge before attaching Luca Ceresoli
@ 2025-10-28 10:15 ` Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 3/6] drm/bridge: document that adding a bridge is mandatory before attach Luca Ceresoli
` (5 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Luca Ceresoli @ 2025-10-28 10:15 UTC (permalink / raw)
To: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Raphael Gallais-Pou, Andy Yan
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel, Luca Ceresoli
DRM bridges should be always added to the global bridge list before being
attached.
Acked-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
Acked-by: Alain Volmat <alain.volmat@foss.st.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changes in v3:
- removed misplaced 'Link:' tag
---
drivers/gpu/drm/sti/sti_hdmi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
index 4e7c3d78b2b971f8083deae96f3967b44a6499cb..f8222e60b1e01afb6d93f816915f17056c060f22 100644
--- a/drivers/gpu/drm/sti/sti_hdmi.c
+++ b/drivers/gpu/drm/sti/sti_hdmi.c
@@ -1459,6 +1459,7 @@ static int sti_hdmi_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, hdmi);
+ drm_bridge_add(&hdmi->bridge);
return component_add(&pdev->dev, &sti_hdmi_ops);
release_adapter:
@@ -1475,6 +1476,7 @@ static void sti_hdmi_remove(struct platform_device *pdev)
if (hdmi->audio_pdev)
platform_device_unregister(hdmi->audio_pdev);
component_del(&pdev->dev, &sti_hdmi_ops);
+ drm_bridge_remove(&hdmi->bridge);
}
struct platform_driver sti_hdmi_driver = {
--
2.51.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 3/6] drm/bridge: document that adding a bridge is mandatory before attach
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 1/6] drm/sti: hda: add bridge before attaching Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 2/6] drm/sti: hdmi: " Luca Ceresoli
@ 2025-10-28 10:15 ` Luca Ceresoli
2025-10-29 8:43 ` Maxime Ripard
2025-10-28 10:15 ` [PATCH v3 4/6] drm/bridge: add warning for bridges attached without being added Luca Ceresoli
` (4 subsequent siblings)
7 siblings, 1 reply; 13+ messages in thread
From: Luca Ceresoli @ 2025-10-28 10:15 UTC (permalink / raw)
To: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Raphael Gallais-Pou, Andy Yan
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel, Luca Ceresoli
At the moment it's not documented that you need to add a bridge before
attaching it. Clarify that.
Suggested-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/all/20250709-sophisticated-loon-of-rain-6ccdd8@houat/
Reviewed-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
drivers/gpu/drm/drm_bridge.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
index 53e7ece36dd940aabd1c0880f296fce7224a12ac..1246a52f8767b52c5f10139aa897824b3c2f28da 100644
--- a/drivers/gpu/drm/drm_bridge.c
+++ b/drivers/gpu/drm/drm_bridge.c
@@ -422,6 +422,9 @@ static bool drm_bridge_is_atomic(struct drm_bridge *bridge)
* If non-NULL the previous bridge must be already attached by a call to this
* function.
*
+ * The bridge to be attached must have been previously added by
+ * drm_bridge_add().
+ *
* Note that bridges attached to encoders are auto-detached during encoder
* cleanup in drm_encoder_cleanup(), so drm_bridge_attach() should generally
* *not* be balanced with a drm_bridge_detach() in driver code.
--
2.51.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 4/6] drm/bridge: add warning for bridges attached without being added
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
` (2 preceding siblings ...)
2025-10-28 10:15 ` [PATCH v3 3/6] drm/bridge: document that adding a bridge is mandatory before attach Luca Ceresoli
@ 2025-10-28 10:15 ` Luca Ceresoli
2025-10-29 8:43 ` Maxime Ripard
2025-10-28 10:15 ` [PATCH v3 5/6] drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add() Luca Ceresoli
` (3 subsequent siblings)
7 siblings, 1 reply; 13+ messages in thread
From: Luca Ceresoli @ 2025-10-28 10:15 UTC (permalink / raw)
To: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Raphael Gallais-Pou, Andy Yan
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel, Luca Ceresoli
DRM bridges must be added before they are attached. Add a warning to catch
violations.
The warning is based on the bridge not being part of any list, so it will
trigger if the bridge is being attached without ever having been added.
It won't catch cases of bridges attached after having been added and then
removed, because in that case the bridge will be in
bridge_lingering_list. However such a case is both more demanding to detect
and less likely to happen, so it can be left unchecked, at least for now.
Suggested-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/all/20250709-sophisticated-loon-of-rain-6ccdd8@houat/
Reviewed-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changes in v3:
- added 'Suggested-by: Maxime Ripard' which was missing in v1 and v2 by
mistake
---
drivers/gpu/drm/drm_bridge.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
index 1246a52f8767b52c5f10139aa897824b3c2f28da..6dba601a056bb3cff8b8dd5b1ec46299235b2d85 100644
--- a/drivers/gpu/drm/drm_bridge.c
+++ b/drivers/gpu/drm/drm_bridge.c
@@ -441,6 +441,9 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
if (!encoder || !bridge)
return -EINVAL;
+ if (list_empty(&bridge->list))
+ DRM_WARN("Missing drm_bridge_add() before attach\n");
+
drm_bridge_get(bridge);
if (previous && (!previous->dev || previous->encoder != encoder)) {
--
2.51.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 5/6] drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add()
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
` (3 preceding siblings ...)
2025-10-28 10:15 ` [PATCH v3 4/6] drm/bridge: add warning for bridges attached without being added Luca Ceresoli
@ 2025-10-28 10:15 ` Luca Ceresoli
2025-10-29 8:44 ` Maxime Ripard
2025-10-28 10:15 ` [PATCH v3 6/6] drm/bridge: synopsys: dw-dp: add bridge before attaching Luca Ceresoli
` (2 subsequent siblings)
7 siblings, 1 reply; 13+ messages in thread
From: Luca Ceresoli @ 2025-10-28 10:15 UTC (permalink / raw)
To: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Raphael Gallais-Pou, Andy Yan
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel, Luca Ceresoli
The correct sequence for bridge initialization is:
1. devm_drm_bridge_alloc()
2. drm_bridge_add()
3. drm_bridge_attach()
For bridges missing either 1 or 2 there are warnings in place already,
presenting an explanatory error message.
Bridges missing both 1 and 2 would still face a poorly understandable
message, as reported in a recent regression report [0]:
WARNING: [...] at [...]/lib/refcount.c:25 drm_bridge_attach+0x2c/0x1dc
...
Call trace:
...
drm_bridge_attach
...
Add a new warning to ensure an understandable message is logged in such
cases. Use the same message and warning message already in place in
drm_bridge_add().
[0] https://lore.kernel.org/all/hlf4wdopapxnh4rekl5s3kvoi6egaga3lrjfbx6r223ar3txri@3ik53xw5idyh/
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
This patch was added in v2 after having received regression report [0].
---
drivers/gpu/drm/drm_bridge.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
index 6dba601a056bb3cff8b8dd5b1ec46299235b2d85..8f355df883d8ac8de9d361ec302f4ccbf3bca0d6 100644
--- a/drivers/gpu/drm/drm_bridge.c
+++ b/drivers/gpu/drm/drm_bridge.c
@@ -441,6 +441,9 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
if (!encoder || !bridge)
return -EINVAL;
+ if (!bridge->container)
+ DRM_WARN("DRM bridge corrupted or not allocated by devm_drm_bridge_alloc()\n");
+
if (list_empty(&bridge->list))
DRM_WARN("Missing drm_bridge_add() before attach\n");
--
2.51.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 6/6] drm/bridge: synopsys: dw-dp: add bridge before attaching
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
` (4 preceding siblings ...)
2025-10-28 10:15 ` [PATCH v3 5/6] drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add() Luca Ceresoli
@ 2025-10-28 10:15 ` Luca Ceresoli
2025-11-01 17:26 ` Raphaël Gallais-Pou
2025-10-28 10:31 ` [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
2025-11-03 12:23 ` Luca Ceresoli
7 siblings, 1 reply; 13+ messages in thread
From: Luca Ceresoli @ 2025-10-28 10:15 UTC (permalink / raw)
To: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Raphael Gallais-Pou, Andy Yan
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel, Luca Ceresoli
DRM bridges should be always added to the global bridge list before being
attached.
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
This patch was added in v3 after searching for any remaining bridges not
using drm_bridge_add().
---
drivers/gpu/drm/bridge/synopsys/dw-dp.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-dp.c b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
index 9bbfe8da3de0264acbf8725d54f2f9627662e595..82aaf74e1bc070603bdda0be3a1c6dc631ff00da 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-dp.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
@@ -2049,6 +2049,8 @@ struct dw_dp *dw_dp_bind(struct device *dev, struct drm_encoder *encoder,
bridge->type = DRM_MODE_CONNECTOR_DisplayPort;
bridge->ycbcr_420_allowed = true;
+ devm_drm_bridge_add(dev, bridge);
+
dp->aux.dev = dev;
dp->aux.drm_dev = encoder->dev;
dp->aux.name = dev_name(dev);
--
2.51.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach()
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
` (5 preceding siblings ...)
2025-10-28 10:15 ` [PATCH v3 6/6] drm/bridge: synopsys: dw-dp: add bridge before attaching Luca Ceresoli
@ 2025-10-28 10:31 ` Luca Ceresoli
2025-11-03 12:23 ` Luca Ceresoli
7 siblings, 0 replies; 13+ messages in thread
From: Luca Ceresoli @ 2025-10-28 10:31 UTC (permalink / raw)
To: Luca Ceresoli, Alain Volmat, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, Raphael Gallais-Pou, Andy Yan
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel
Hello,
On Tue Oct 28, 2025 at 11:15 AM CET, Luca Ceresoli wrote:
> Changes in v3:
> - Searched for any remaining drivers not calling drm_bridge_add(); found 1,
> added patch 6 to convert it
Just a note to mention that the leftover driver, fixed by the newly added
patch 6, was added very recently. Patches 3-5 would help a lot in avoiding
more cases to sneak in.
Luca
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 3/6] drm/bridge: document that adding a bridge is mandatory before attach
2025-10-28 10:15 ` [PATCH v3 3/6] drm/bridge: document that adding a bridge is mandatory before attach Luca Ceresoli
@ 2025-10-29 8:43 ` Maxime Ripard
0 siblings, 0 replies; 13+ messages in thread
From: Maxime Ripard @ 2025-10-29 8:43 UTC (permalink / raw)
To: Luca Ceresoli
Cc: dri-devel, linux-kernel, Alain Volmat, Andrzej Hajda, Andy Yan,
David Airlie, Hui Pu, Jernej Skrabec, Jonas Karlman,
Laurent Pinchart, Maarten Lankhorst, Maxime Ripard,
Neil Armstrong, Raphael Gallais-Pou, Robert Foss, Simona Vetter,
Thomas Petazzoni, Thomas Zimmermann
On Tue, 28 Oct 2025 11:15:44 +0100, Luca Ceresoli wrote:
> At the moment it's not documented that you need to add a bridge before
> attaching it. Clarify that.
>
> Suggested-by: Maxime Ripard <mripard@kernel.org>
> Link: https://lore.kernel.org/all/20250709-sophisticated-loon-of-rain-6ccdd8@houat/
>
> [ ... ]
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Thanks!
Maxime
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 4/6] drm/bridge: add warning for bridges attached without being added
2025-10-28 10:15 ` [PATCH v3 4/6] drm/bridge: add warning for bridges attached without being added Luca Ceresoli
@ 2025-10-29 8:43 ` Maxime Ripard
0 siblings, 0 replies; 13+ messages in thread
From: Maxime Ripard @ 2025-10-29 8:43 UTC (permalink / raw)
To: Luca Ceresoli
Cc: dri-devel, linux-kernel, Alain Volmat, Andrzej Hajda, Andy Yan,
David Airlie, Hui Pu, Jernej Skrabec, Jonas Karlman,
Laurent Pinchart, Maarten Lankhorst, Maxime Ripard,
Neil Armstrong, Raphael Gallais-Pou, Robert Foss, Simona Vetter,
Thomas Petazzoni, Thomas Zimmermann
On Tue, 28 Oct 2025 11:15:45 +0100, Luca Ceresoli wrote:
> DRM bridges must be added before they are attached. Add a warning to catch
> violations.
>
> The warning is based on the bridge not being part of any list, so it will
> trigger if the bridge is being attached without ever having been added.
>
> [ ... ]
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Thanks!
Maxime
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 5/6] drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add()
2025-10-28 10:15 ` [PATCH v3 5/6] drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add() Luca Ceresoli
@ 2025-10-29 8:44 ` Maxime Ripard
0 siblings, 0 replies; 13+ messages in thread
From: Maxime Ripard @ 2025-10-29 8:44 UTC (permalink / raw)
To: Luca Ceresoli
Cc: dri-devel, linux-kernel, Alain Volmat, Andrzej Hajda, Andy Yan,
David Airlie, Hui Pu, Jernej Skrabec, Jonas Karlman,
Laurent Pinchart, Maarten Lankhorst, Maxime Ripard,
Neil Armstrong, Raphael Gallais-Pou, Robert Foss, Simona Vetter,
Thomas Petazzoni, Thomas Zimmermann
On Tue, 28 Oct 2025 11:15:46 +0100, Luca Ceresoli wrote:
> The correct sequence for bridge initialization is:
>
> 1. devm_drm_bridge_alloc()
> 2. drm_bridge_add()
> 3. drm_bridge_attach()
>
> [ ... ]
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Thanks!
Maxime
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 6/6] drm/bridge: synopsys: dw-dp: add bridge before attaching
2025-10-28 10:15 ` [PATCH v3 6/6] drm/bridge: synopsys: dw-dp: add bridge before attaching Luca Ceresoli
@ 2025-11-01 17:26 ` Raphaël Gallais-Pou
0 siblings, 0 replies; 13+ messages in thread
From: Raphaël Gallais-Pou @ 2025-11-01 17:26 UTC (permalink / raw)
To: Luca Ceresoli
Cc: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Andy Yan, Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel
Le Tue, Oct 28, 2025 at 11:15:47AM +0100, Luca Ceresoli a écrit :
> DRM bridges should be always added to the global bridge list before being
> attached.
>
> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
>
> ---
>
> This patch was added in v3 after searching for any remaining bridges not
> using drm_bridge_add().
> ---
Hi Luca,
Reviewed-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
Best regards,
Raphaël
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach()
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
` (6 preceding siblings ...)
2025-10-28 10:31 ` [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
@ 2025-11-03 12:23 ` Luca Ceresoli
7 siblings, 0 replies; 13+ messages in thread
From: Luca Ceresoli @ 2025-11-03 12:23 UTC (permalink / raw)
To: Alain Volmat, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Raphael Gallais-Pou, Andy Yan, Luca Ceresoli
Cc: Hui Pu, Thomas Petazzoni, dri-devel, linux-kernel
On Tue, 28 Oct 2025 11:15:41 +0100, Luca Ceresoli wrote:
> This small series enforces that DRM bridges must be added before they are
> attached as discussed in [1].
>
> This is part of the work towards removal of bridges from a still existing
> DRM pipeline without use-after-free. The grand plan was discussed in [0].
> Here's the work breakdown (➜ marks the current series):
>
> [...]
Applied, thanks!
[1/6] drm/sti: hda: add bridge before attaching
commit: d28726efc637c5e76e23156b0c2418d37ef45b8e
[2/6] drm/sti: hdmi: add bridge before attaching
commit: ebad7a8f3db6c43c29dacbccb1d7615563f4e80a
[3/6] drm/bridge: document that adding a bridge is mandatory before attach
commit: f8b460262a28060be932078e2b8d9fb8bf99dcf6
[4/6] drm/bridge: add warning for bridges attached without being added
commit: 76f1a9711b837f90fba91d00e33549ed1364bea2
[5/6] drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add()
commit: 9347f2fbb0183b04070cd7dfde080bfcc54c0f7c
[6/6] drm/bridge: synopsys: dw-dp: add bridge before attaching
commit: b726970486d81ed3eea09cf9f80f39fe1928a741
Best regards,
--
Luca Ceresoli <luca.ceresoli@bootlin.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2025-11-03 12:24 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-28 10:15 [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 1/6] drm/sti: hda: add bridge before attaching Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 2/6] drm/sti: hdmi: " Luca Ceresoli
2025-10-28 10:15 ` [PATCH v3 3/6] drm/bridge: document that adding a bridge is mandatory before attach Luca Ceresoli
2025-10-29 8:43 ` Maxime Ripard
2025-10-28 10:15 ` [PATCH v3 4/6] drm/bridge: add warning for bridges attached without being added Luca Ceresoli
2025-10-29 8:43 ` Maxime Ripard
2025-10-28 10:15 ` [PATCH v3 5/6] drm/bridge: add warning for bridges using neither devm_drm_bridge_alloc() nor drm_bridge_add() Luca Ceresoli
2025-10-29 8:44 ` Maxime Ripard
2025-10-28 10:15 ` [PATCH v3 6/6] drm/bridge: synopsys: dw-dp: add bridge before attaching Luca Ceresoli
2025-11-01 17:26 ` Raphaël Gallais-Pou
2025-10-28 10:31 ` [PATCH v3 0/6] drm/bridge: enforce drm_bridge_add() before drm_bridge_attach() Luca Ceresoli
2025-11-03 12:23 ` Luca Ceresoli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).