| From 09183299d0212bb4f781446b971e627d02770c27 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 15 Jun 2020 09:58:10 +0200 |
| Subject: drm: encoder_slave: fix refcouting error for modules |
| |
| From: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| |
| [ Upstream commit f78d4032de60f50fd4afaa0fb68ea03b985f820a ] |
| |
| module_put() balances try_module_get(), not request_module(). Fix the |
| error path to match that. |
| |
| Fixes: 2066facca4c7 ("drm/kms: slave encoder interface.") |
| Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> |
| Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Signed-off-by: Wolfram Sang <wsa@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/drm_encoder_slave.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/drm_encoder_slave.c b/drivers/gpu/drm/drm_encoder_slave.c |
| index cf804389f5eca..d50a7884e69e1 100644 |
| --- a/drivers/gpu/drm/drm_encoder_slave.c |
| +++ b/drivers/gpu/drm/drm_encoder_slave.c |
| @@ -84,7 +84,7 @@ int drm_i2c_encoder_init(struct drm_device *dev, |
| |
| err = encoder_drv->encoder_init(client, dev, encoder); |
| if (err) |
| - goto fail_unregister; |
| + goto fail_module_put; |
| |
| if (info->platform_data) |
| encoder->slave_funcs->set_config(&encoder->base, |
| @@ -92,9 +92,10 @@ int drm_i2c_encoder_init(struct drm_device *dev, |
| |
| return 0; |
| |
| +fail_module_put: |
| + module_put(module); |
| fail_unregister: |
| i2c_unregister_device(client); |
| - module_put(module); |
| fail: |
| return err; |
| } |
| -- |
| 2.25.1 |
| |