Messages in this thread Patch in this message |  | | From | Aditya Pakki <> | Subject | [PATCH] drm/bridge: fix reference count leaks due to pm_runtime_get_sync() | Date | Sat, 13 Jun 2020 21:40:05 -0500 |
| |
On calling pm_runtime_get_sync() the reference count of the device is incremented. In case of failure, decrement the reference count before returning the error.
Signed-off-by: Aditya Pakki <pakki001@umn.edu> --- drivers/gpu/drm/bridge/cdns-dsi.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/cdns-dsi.c b/drivers/gpu/drm/bridge/cdns-dsi.c index 69c3892caee5..583cb8547106 100644 --- a/drivers/gpu/drm/bridge/cdns-dsi.c +++ b/drivers/gpu/drm/bridge/cdns-dsi.c @@ -788,8 +788,10 @@ static void cdns_dsi_bridge_enable(struct drm_bridge *bridge) u32 tmp, reg_wakeup, div; int nlanes; - if (WARN_ON(pm_runtime_get_sync(dsi->base.dev) < 0)) + if (WARN_ON(pm_runtime_get_sync(dsi->base.dev) < 0)) { + pm_runtime_put(dsi->base.dev); return; + } mode = &bridge->encoder->crtc->state->adjusted_mode; nlanes = output->dev->lanes; @@ -1028,8 +1030,10 @@ static ssize_t cdns_dsi_transfer(struct mipi_dsi_host *host, int ret, i, tx_len, rx_len; ret = pm_runtime_get_sync(host->dev); - if (ret < 0) + if (ret < 0) { + pm_runtime_put(host->dev); return ret; + } cdns_dsi_init_link(dsi); -- 2.25.1
|  |