2021-12-27 09:25:30

by Miaoqian Lin

[permalink] [raw]
Subject: [PATCH] drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev

rc_dev is allocated by rc_allocate_device(), and doesn't assigned to
ctx->rc_dev before calling rc_free_device(ctx->rc_dev).
So it should call rc_free_device(rc_dev);

Fixes: e25f1f7 ("drm/bridge/sii8620: add remote control support")
Signed-off-by: Miaoqian Lin <[email protected]>
---
drivers/gpu/drm/bridge/sil-sii8620.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c
index 843265d7f1b1..ec7745c31da0 100644
--- a/drivers/gpu/drm/bridge/sil-sii8620.c
+++ b/drivers/gpu/drm/bridge/sil-sii8620.c
@@ -2120,7 +2120,7 @@ static void sii8620_init_rcp_input_dev(struct sii8620 *ctx)
if (ret) {
dev_err(ctx->dev, "Failed to register RC device\n");
ctx->error = ret;
- rc_free_device(ctx->rc_dev);
+ rc_free_device(rc_dev);
return;
}
ctx->rc_dev = rc_dev;
--
2.17.1



2022-01-04 13:13:20

by Robert Foss

[permalink] [raw]
Subject: Re: [PATCH] drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev

On Mon, 27 Dec 2021 at 10:25, Miaoqian Lin <[email protected]> wrote:
>
> rc_dev is allocated by rc_allocate_device(), and doesn't assigned to
> ctx->rc_dev before calling rc_free_device(ctx->rc_dev).
> So it should call rc_free_device(rc_dev);
>
> Fixes: e25f1f7 ("drm/bridge/sii8620: add remote control support")
> Signed-off-by: Miaoqian Lin <[email protected]>
> ---
> drivers/gpu/drm/bridge/sil-sii8620.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c
> index 843265d7f1b1..ec7745c31da0 100644
> --- a/drivers/gpu/drm/bridge/sil-sii8620.c
> +++ b/drivers/gpu/drm/bridge/sil-sii8620.c
> @@ -2120,7 +2120,7 @@ static void sii8620_init_rcp_input_dev(struct sii8620 *ctx)
> if (ret) {
> dev_err(ctx->dev, "Failed to register RC device\n");
> ctx->error = ret;
> - rc_free_device(ctx->rc_dev);
> + rc_free_device(rc_dev);
> return;
> }
> ctx->rc_dev = rc_dev;
> --

Reviewed-by: Robert Foss <[email protected]>