]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/infiniband/core/ucm.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / infiniband / core / ucm.c
index 46474842cfe9a8cd92bebf77170ae7ec02048bb2..08f948df8fa98aa933406172ee9e390ac3d3bc4e 100644 (file)
@@ -706,14 +706,9 @@ static int ib_ucm_alloc_data(const void **dest, u64 src, u32 len)
        if (!len)
                return 0;
 
-       data = kmalloc(len, GFP_KERNEL);
-       if (!data)
-               return -ENOMEM;
-
-       if (copy_from_user(data, (void __user *)(unsigned long)src, len)) {
-               kfree(data);
-               return -EFAULT;
-       }
+       data = memdup_user((void __user *)(unsigned long)src, len);
+       if (IS_ERR(data))
+               return PTR_ERR(data);
 
        *dest = data;
        return 0;