Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6af820e authored by Fuqian Huang's avatar Fuqian Huang Committed by Mauro Carvalho Chehab
Browse files

media: media/dvb: Use kmemdup rather than duplicating its implementation



kmemdup is introduced to duplicate a region of memory in a neat way.
Rather than kmalloc/kzalloc + memcpy, which the programmer needs to
write the size twice (sometimes lead to mistakes), kmemdup improves
readability, leads to smaller code and also reduce the chances of mistakes.
Suggestion to use kmemdup rather than using kmalloc/kzalloc + memcpy.

Signed-off-by: default avatarFuqian Huang <huangfq.daxian@gmail.com>
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 48059784
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -476,7 +476,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
		return -ENOMEM;
	}

	dvbdevfops = kzalloc(sizeof(struct file_operations), GFP_KERNEL);
	dvbdevfops = kmemdup(template->fops, sizeof(*dvbdevfops), GFP_KERNEL);

	if (!dvbdevfops){
		kfree (dvbdev);
@@ -492,7 +492,6 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
	dvbdev->fops = dvbdevfops;
	init_waitqueue_head (&dvbdev->wait_queue);

	memcpy(dvbdevfops, template->fops, sizeof(struct file_operations));
	dvbdevfops->owner = adap->module;

	list_add_tail (&dvbdev->list_head, &adap->device_list);
+2 −3
Original line number Diff line number Diff line
@@ -12287,7 +12287,8 @@ struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c)
	if (state == NULL)
		goto error;

	demod = kmalloc(sizeof(struct drx_demod_instance), GFP_KERNEL);
	demod = kmemdup(&drxj_default_demod_g,
			sizeof(struct drx_demod_instance), GFP_KERNEL);
	if (demod == NULL)
		goto error;

@@ -12311,8 +12312,6 @@ struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c)
	state->demod = demod;

	/* setup the demod data */
	memcpy(demod, &drxj_default_demod_g, sizeof(struct drx_demod_instance));

	demod->my_i2c_dev_addr = demod_addr;
	demod->my_common_attr = demod_comm_attr;
	demod->my_i2c_dev_addr->user_data = state;