When the creation of the second i2c client was failing, the private
buffer was not freed.
This bug was introduced by the commit 6ae668cc19e8
'drm/i2c: tda998x: check the CEC device creation'

Signed-off-by: Jean-Francois Moine <moinejf at free.fr>
---
 drivers/gpu/drm/i2c/tda998x_drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c 
b/drivers/gpu/drm/i2c/tda998x_drv.c
index fa18cf3..faa77f5 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -1151,8 +1151,10 @@ tda998x_encoder_init(struct i2c_client *client,

        priv->current_page = 0xff;
        priv->cec = i2c_new_dummy(client->adapter, 0x34);
-       if (!priv->cec)
+       if (!priv->cec) {
+               kfree(priv);
                return -ENODEV;
+       }
        priv->dpms = DRM_MODE_DPMS_OFF;

        encoder_slave->slave_priv = priv;
-- 
1.9.0.rc3

Reply via email to