drm_bridge_clear_and_put() is simpler to write and it prevents any potential future use-after-free.
Signed-off-by: Luca Ceresoli <[email protected]> --- drivers/gpu/drm/bridge/samsung-dsim.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 1d85e706c74b..568fc0f5b416 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -1980,8 +1980,7 @@ static int samsung_dsim_host_attach(struct mipi_dsi_host *host, return 0; err_release_next_bridge: - drm_bridge_put(dsi->bridge.next_bridge); - dsi->bridge.next_bridge = NULL; + drm_bridge_clear_and_put(&dsi->bridge.next_bridge); return ret; } @@ -2002,8 +2001,7 @@ static int samsung_dsim_host_detach(struct mipi_dsi_host *host, if (pdata->host_ops && pdata->host_ops->detach) pdata->host_ops->detach(dsi, device); - drm_bridge_put(dsi->bridge.next_bridge); - dsi->bridge.next_bridge = NULL; + drm_bridge_clear_and_put(&dsi->bridge.next_bridge); samsung_dsim_unregister_te_irq(dsi); -- 2.52.0
