On overflow struct_size() would return SIZE_MAX.  But kzalloc() (and
friends) check this already, so we can just remove the check.

On the other hand, we should be using the overflow helpers to calculate
the cmd array size.

Reported-by: Sashiko <[email protected]>
Signed-off-by: Rob Clark <[email protected]>
---
 drivers/gpu/drm/msm/msm_gem_submit.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c 
b/drivers/gpu/drm/msm/msm_gem_submit.c
index 6b0bee6c39bc..5862db05297a 100644
--- a/drivers/gpu/drm/msm/msm_gem_submit.c
+++ b/drivers/gpu/drm/msm/msm_gem_submit.c
@@ -36,14 +36,11 @@ static struct msm_gem_submit *submit_create(struct 
drm_device *dev,
 {
        static atomic_t ident = ATOMIC_INIT(0);
        struct msm_gem_submit *submit;
-       uint64_t sz;
+       size_t sz;
        int ret;
 
-       sz = struct_size(submit, bos, nr_bos) +
-                       ((u64)nr_cmds * sizeof(submit->cmd[0]));
-
-       if (sz > SIZE_MAX)
-               return ERR_PTR(-ENOMEM);
+       sz = size_add(struct_size(submit, bos, nr_bos),
+                     array_size(sizeof(submit->cmd[0]), nr_cmds));
 
        submit = kzalloc(sz, GFP_KERNEL | __GFP_NOWARN);
        if (!submit)
-- 
2.55.0

Reply via email to