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

Commit b91796e8 authored by Sudip Mukherjee's avatar Sudip Mukherjee Committed by Greg Kroah-Hartman
Browse files

staging: i4l: icn: use memdup_user



Its better to use memdup_user which does the same thing which this
code has implemented. Also removed a related warning as we will be
warned if allocation fails.

Suggested-by: default avatarFengguang Wu <fengguang.wu@intel.com>
Signed-off-by: default avatarSudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3b1d7533
Loading
Loading
Loading
Loading
+4 −11
Original line number Diff line number Diff line
@@ -810,16 +810,10 @@ icn_loadboot(u_char __user *buffer, icn_card *card)
#ifdef BOOT_DEBUG
	printk(KERN_DEBUG "icn_loadboot called, buffaddr=%08lx\n", (ulong) buffer);
#endif
	codebuf = kmalloc(ICN_CODE_STAGE1, GFP_KERNEL);
	if (!codebuf) {
		printk(KERN_WARNING "icn: Could not allocate code buffer\n");
		ret = -ENOMEM;
		goto out;
	}
	if (copy_from_user(codebuf, buffer, ICN_CODE_STAGE1)) {
		ret = -EFAULT;
		goto out_kfree;
	}
	codebuf = memdup_user(buffer, ICN_CODE_STAGE1);
	if (IS_ERR(codebuf))
		return PTR_ERR(codebuf);

	if (!card->rvalid) {
		if (!request_region(card->port, ICN_PORTLEN, card->regname)) {
			printk(KERN_WARNING
@@ -902,7 +896,6 @@ icn_loadboot(u_char __user *buffer, icn_card *card)

out_kfree:
	kfree(codebuf);
out:
	return ret;
}