diff
<     buffer = vmemdup_user(buf, lbuf);
---
>     buffer = kmalloc(lbuf, GFP_KERNEL);
>     if (!buffer) {
>         return -ENOMEM;
>     }
>     if (copy_from_user(buffer, buf, lbuf)) {
>         kfree(buffer);
>         return -EFAULT;
>     }
