kmemdup has implemented the function that kmalloc() + memcpy(). We prefer to kmemdup rather than code opened implementation. Signed-off-by: zhong jiang <zhongjiang@xxxxxxxxxx> --- drivers/media/dvb-frontends/lgdt3306a.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/media/dvb-frontends/lgdt3306a.c b/drivers/media/dvb-frontends/lgdt3306a.c index 0e1f5da..abec2e5 100644 --- a/drivers/media/dvb-frontends/lgdt3306a.c +++ b/drivers/media/dvb-frontends/lgdt3306a.c @@ -2205,15 +2205,13 @@ static int lgdt3306a_probe(struct i2c_client *client, struct dvb_frontend *fe; int ret; - config = kzalloc(sizeof(struct lgdt3306a_config), GFP_KERNEL); + onfig = kmemdup(client->dev.platform_data, + sizeof(struct lgdt3306a_config), GFP_KERNEL); if (config == NULL) { ret = -ENOMEM; goto fail; } - memcpy(config, client->dev.platform_data, - sizeof(struct lgdt3306a_config)); - config->i2c_addr = client->addr; fe = lgdt3306a_attach(config, client->adapter); if (fe == NULL) { -- 1.7.12.4