diff
< 	kern_buf = memdup_user(buf, nbytes);
---
> 	kern_buf = kmalloc(nbytes, GFP_KERNEL);
> 	if (!kern_buf)
> 		return -ENOMEM;
> 	if (copy_from_user(kern_buf, buf, nbytes)) {
> 		kfree(kern_buf);
> 		return -EFAULT;
> 	}
