Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / ide / ide-taskfile.c
index 67fb73559fd582e0bbd477500636c315834b7764..34b9872f35d1238b623ce00373e2f040dd5bd248 100644 (file)
@@ -480,13 +480,9 @@ int ide_taskfile_ioctl(ide_drive_t *drive, unsigned long arg)
        u16 nsect               = 0;
        char __user *buf = (char __user *)arg;
 
-       req_task = kzalloc(tasksize, GFP_KERNEL);
-       if (req_task == NULL)
-               return -ENOMEM;
-       if (copy_from_user(req_task, buf, tasksize)) {
-               kfree(req_task);
-               return -EFAULT;
-       }
+       req_task = memdup_user(buf, tasksize);
+       if (IS_ERR(req_task))
+               return PTR_ERR(req_task);
 
        taskout = req_task->out_size;
        taskin  = req_task->in_size;