drm/tegra: Switch over to vmemdup_user()
authorQing Wang <wangqing@vivo.com>
Mon, 18 Oct 2021 11:31:26 +0000 (04:31 -0700)
committerThierry Reding <treding@nvidia.com>
Fri, 25 Nov 2022 15:14:58 +0000 (16:14 +0100)
This patch fixes the following Coccinelle warning:

drivers/gpu/drm/tegra/submit.c:173: WARNING opportunity for vmemdup_user

Use vmemdup_user() rather than duplicating its implementation.
This is a little bit restricted to reduce false positives.

Signed-off-by: Qing Wang <wangqing@vivo.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/submit.c

index b24738b..84041fc 100644 (file)
@@ -169,14 +169,9 @@ static void *alloc_copy_user_array(void __user *from, size_t count, size_t size)
        if (copy_len > 0x4000)
                return ERR_PTR(-E2BIG);
 
-       data = kvmalloc(copy_len, GFP_KERNEL);
-       if (!data)
-               return ERR_PTR(-ENOMEM);
-
-       if (copy_from_user(data, from, copy_len)) {
-               kvfree(data);
-               return ERR_PTR(-EFAULT);
-       }
+       data = vmemdup_user(from, copy_len);
+       if (IS_ERR(data))
+               return ERR_CAST(data);
 
        return data;
 }